| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c" |
| // RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o |
| // RUN: c_compiler -c %s -I "common" -o %t3.o |
| // RUN: linker -o %t2%exeext %t1.o %t2.o %t3.o |
| // RUN: runtool %t2%exeext | checker "TEST PASSED" |
| #include "testsuite.h" |
| #ifdef __cplusplus |
| namespace bbb { |
| struct AA0 { |
| int pa; |
| virtual void foo(); // _ZN3bbb3AA03fooEv |
| virtual void bar(); // _ZN3bbb3AA03barEv |
| ~AA0(); // tgen |
| AA0(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb3AA0E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::AA0 ::foo(){vfunc_called(this, "_ZN3bbb3AA03fooEv");} |
| void bbb::AA0 ::bar(){vfunc_called(this, "_ZN3bbb3AA03barEv");} |
| bbb::AA0 ::~AA0(){ note_dtor("_ZN3bbb3AA0E", this);} // tgen |
| bbb::AA0 ::AA0(){ note_ctor("_ZN3bbb3AA0E", this);} // tgen |
| } |
| static void Test__ZN3bbb3AA0E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3AA0E, buf); |
| ::bbb::AA0 *dp, &lv = *(dp=new (buf) ::bbb::AA0()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3AA0E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3AA0E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3AA0E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3AA0E); |
| dp->::bbb::AA0::~AA0(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3AA0E(Test__ZN3bbb3AA0E, "_ZN3bbb3AA0E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3AA0C1Ev(); |
| extern void _ZN3bbb3AA0D1Ev(); |
| Name_Map name_map__ZN3bbb3AA0E[] = { |
| NSPAIR(_ZN3bbb3AA0C1Ev), |
| NSPAIR(_ZN3bbb3AA0D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern void _ZN3bbb3AA03fooEv(); |
| extern void _ZN3bbb3AA03barEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3AA0E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3AA0E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3AA03fooEv, |
| (VTBL_ENTRY)&_ZN3bbb3AA03barEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| Class_Descriptor cd__ZN3bbb3AA0E = { "_ZN3bbb3AA0E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3AA0E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3AA0E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3AA0E),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 |
| namespace bbb { |
| struct BB0 { |
| int pa; |
| virtual void foo(); // _ZN3bbb3BB03fooEv |
| virtual void bar(); // _ZN3bbb3BB03barEv |
| ~BB0(); // tgen |
| BB0(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb3BB0E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::BB0 ::foo(){vfunc_called(this, "_ZN3bbb3BB03fooEv");} |
| void bbb::BB0 ::bar(){vfunc_called(this, "_ZN3bbb3BB03barEv");} |
| bbb::BB0 ::~BB0(){ note_dtor("_ZN3bbb3BB0E", this);} // tgen |
| bbb::BB0 ::BB0(){ note_ctor("_ZN3bbb3BB0E", this);} // tgen |
| } |
| static void Test__ZN3bbb3BB0E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3BB0E, buf); |
| ::bbb::BB0 *dp, &lv = *(dp=new (buf) ::bbb::BB0()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3BB0E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3BB0E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3BB0E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3BB0E); |
| dp->::bbb::BB0::~BB0(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3BB0E(Test__ZN3bbb3BB0E, "_ZN3bbb3BB0E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3BB0C1Ev(); |
| extern void _ZN3bbb3BB0D1Ev(); |
| Name_Map name_map__ZN3bbb3BB0E[] = { |
| NSPAIR(_ZN3bbb3BB0C1Ev), |
| NSPAIR(_ZN3bbb3BB0D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern void _ZN3bbb3BB03fooEv(); |
| extern void _ZN3bbb3BB03barEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3BB0E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3BB0E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3BB03fooEv, |
| (VTBL_ENTRY)&_ZN3bbb3BB03barEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| Class_Descriptor cd__ZN3bbb3BB0E = { "_ZN3bbb3BB0E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3BB0E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3BB0E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3BB0E),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 |
| namespace bbb { |
| struct CC0 { |
| int pa; |
| virtual void foo(); // _ZN3bbb3CC03fooEv |
| virtual void bar(); // _ZN3bbb3CC03barEv |
| ~CC0(); // tgen |
| CC0(); // tgen |
| }; |
| //SIG(1 _ZN3bbb3CC0E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::CC0 ::foo(){vfunc_called(this, "_ZN3bbb3CC03fooEv");} |
| void bbb::CC0 ::bar(){vfunc_called(this, "_ZN3bbb3CC03barEv");} |
| bbb::CC0 ::~CC0(){ note_dtor("_ZN3bbb3CC0E", this);} // tgen |
| bbb::CC0 ::CC0(){ note_ctor("_ZN3bbb3CC0E", this);} // tgen |
| } |
| static void Test__ZN3bbb3CC0E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3CC0E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3CC0E, buf); |
| ::bbb::CC0 *dp, &lv = *(dp=new (buf) ::bbb::CC0()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3CC0E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3CC0E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3CC0E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3CC0E); |
| dp->::bbb::CC0::~CC0(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3CC0E(Test__ZN3bbb3CC0E, "_ZN3bbb3CC0E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3CC0C1Ev(); |
| extern void _ZN3bbb3CC0D1Ev(); |
| Name_Map name_map__ZN3bbb3CC0E[] = { |
| NSPAIR(_ZN3bbb3CC0C1Ev), |
| NSPAIR(_ZN3bbb3CC0D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3CC0E[]; |
| extern void _ZN3bbb3CC03fooEv(); |
| extern void _ZN3bbb3CC03barEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3CC0E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3CC0E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3CC03fooEv, |
| (VTBL_ENTRY)&_ZN3bbb3CC03barEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3CC0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3CC0E[]; |
| Class_Descriptor cd__ZN3bbb3CC0E = { "_ZN3bbb3CC0E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3CC0E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3CC0E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3CC0E),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 |
| namespace bbb { |
| struct DD0 { |
| int pa; |
| virtual void foo(); // _ZN3bbb3DD03fooEv |
| virtual void bar(); // _ZN3bbb3DD03barEv |
| ~DD0(); // tgen |
| DD0(); // tgen |
| }; |
| //SIG(1 _ZN3bbb3DD0E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::DD0 ::foo(){vfunc_called(this, "_ZN3bbb3DD03fooEv");} |
| void bbb::DD0 ::bar(){vfunc_called(this, "_ZN3bbb3DD03barEv");} |
| bbb::DD0 ::~DD0(){ note_dtor("_ZN3bbb3DD0E", this);} // tgen |
| bbb::DD0 ::DD0(){ note_ctor("_ZN3bbb3DD0E", this);} // tgen |
| } |
| static void Test__ZN3bbb3DD0E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3DD0E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3DD0E, buf); |
| ::bbb::DD0 *dp, &lv = *(dp=new (buf) ::bbb::DD0()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3DD0E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3DD0E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3DD0E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3DD0E); |
| dp->::bbb::DD0::~DD0(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3DD0E(Test__ZN3bbb3DD0E, "_ZN3bbb3DD0E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3DD0C1Ev(); |
| extern void _ZN3bbb3DD0D1Ev(); |
| Name_Map name_map__ZN3bbb3DD0E[] = { |
| NSPAIR(_ZN3bbb3DD0C1Ev), |
| NSPAIR(_ZN3bbb3DD0D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3DD0E[]; |
| extern void _ZN3bbb3DD03fooEv(); |
| extern void _ZN3bbb3DD03barEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3DD0E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3DD0E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3DD03fooEv, |
| (VTBL_ENTRY)&_ZN3bbb3DD03barEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3DD0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3DD0E[]; |
| Class_Descriptor cd__ZN3bbb3DD0E = { "_ZN3bbb3DD0E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3DD0E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3DD0E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3DD0E),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 |
| namespace bbb { |
| struct AA1 { |
| int pa; |
| virtual void bar(); // _ZN3bbb3AA13barEv |
| virtual void foo(); // _ZN3bbb3AA13fooEv |
| ~AA1(); // tgen |
| AA1(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb3AA1E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::AA1 ::bar(){vfunc_called(this, "_ZN3bbb3AA13barEv");} |
| void bbb::AA1 ::foo(){vfunc_called(this, "_ZN3bbb3AA13fooEv");} |
| bbb::AA1 ::~AA1(){ note_dtor("_ZN3bbb3AA1E", this);} // tgen |
| bbb::AA1 ::AA1(){ note_ctor("_ZN3bbb3AA1E", this);} // tgen |
| } |
| static void Test__ZN3bbb3AA1E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3AA1E, buf); |
| ::bbb::AA1 *dp, &lv = *(dp=new (buf) ::bbb::AA1()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3AA1E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3AA1E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3AA1E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3AA1E); |
| dp->::bbb::AA1::~AA1(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3AA1E(Test__ZN3bbb3AA1E, "_ZN3bbb3AA1E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3AA1C1Ev(); |
| extern void _ZN3bbb3AA1D1Ev(); |
| Name_Map name_map__ZN3bbb3AA1E[] = { |
| NSPAIR(_ZN3bbb3AA1C1Ev), |
| NSPAIR(_ZN3bbb3AA1D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern void _ZN3bbb3AA13barEv(); |
| extern void _ZN3bbb3AA13fooEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3AA1E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3AA1E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3AA13barEv, |
| (VTBL_ENTRY)&_ZN3bbb3AA13fooEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| Class_Descriptor cd__ZN3bbb3AA1E = { "_ZN3bbb3AA1E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3AA1E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3AA1E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3AA1E),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 |
| namespace bbb { |
| struct BB1 { |
| int pa; |
| virtual void bar(); // _ZN3bbb3BB13barEv |
| virtual void foo(); // _ZN3bbb3BB13fooEv |
| ~BB1(); // tgen |
| BB1(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb3BB1E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::BB1 ::bar(){vfunc_called(this, "_ZN3bbb3BB13barEv");} |
| void bbb::BB1 ::foo(){vfunc_called(this, "_ZN3bbb3BB13fooEv");} |
| bbb::BB1 ::~BB1(){ note_dtor("_ZN3bbb3BB1E", this);} // tgen |
| bbb::BB1 ::BB1(){ note_ctor("_ZN3bbb3BB1E", this);} // tgen |
| } |
| static void Test__ZN3bbb3BB1E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3BB1E, buf); |
| ::bbb::BB1 *dp, &lv = *(dp=new (buf) ::bbb::BB1()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3BB1E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3BB1E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3BB1E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3BB1E); |
| dp->::bbb::BB1::~BB1(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3BB1E(Test__ZN3bbb3BB1E, "_ZN3bbb3BB1E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3BB1C1Ev(); |
| extern void _ZN3bbb3BB1D1Ev(); |
| Name_Map name_map__ZN3bbb3BB1E[] = { |
| NSPAIR(_ZN3bbb3BB1C1Ev), |
| NSPAIR(_ZN3bbb3BB1D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern void _ZN3bbb3BB13barEv(); |
| extern void _ZN3bbb3BB13fooEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3BB1E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3BB1E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3BB13barEv, |
| (VTBL_ENTRY)&_ZN3bbb3BB13fooEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| Class_Descriptor cd__ZN3bbb3BB1E = { "_ZN3bbb3BB1E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3BB1E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3BB1E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3BB1E),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 |
| namespace bbb { |
| struct CC1 { |
| int pa; |
| virtual void bar(); // _ZN3bbb3CC13barEv |
| virtual void foo(); // _ZN3bbb3CC13fooEv |
| ~CC1(); // tgen |
| CC1(); // tgen |
| }; |
| //SIG(1 _ZN3bbb3CC1E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::CC1 ::bar(){vfunc_called(this, "_ZN3bbb3CC13barEv");} |
| void bbb::CC1 ::foo(){vfunc_called(this, "_ZN3bbb3CC13fooEv");} |
| bbb::CC1 ::~CC1(){ note_dtor("_ZN3bbb3CC1E", this);} // tgen |
| bbb::CC1 ::CC1(){ note_ctor("_ZN3bbb3CC1E", this);} // tgen |
| } |
| static void Test__ZN3bbb3CC1E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3CC1E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3CC1E, buf); |
| ::bbb::CC1 *dp, &lv = *(dp=new (buf) ::bbb::CC1()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3CC1E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3CC1E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3CC1E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3CC1E); |
| dp->::bbb::CC1::~CC1(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3CC1E(Test__ZN3bbb3CC1E, "_ZN3bbb3CC1E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3CC1C1Ev(); |
| extern void _ZN3bbb3CC1D1Ev(); |
| Name_Map name_map__ZN3bbb3CC1E[] = { |
| NSPAIR(_ZN3bbb3CC1C1Ev), |
| NSPAIR(_ZN3bbb3CC1D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3CC1E[]; |
| extern void _ZN3bbb3CC13barEv(); |
| extern void _ZN3bbb3CC13fooEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3CC1E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3CC1E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3CC13barEv, |
| (VTBL_ENTRY)&_ZN3bbb3CC13fooEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3CC1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3CC1E[]; |
| Class_Descriptor cd__ZN3bbb3CC1E = { "_ZN3bbb3CC1E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3CC1E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3CC1E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3CC1E),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 |
| namespace bbb { |
| struct DD1 { |
| int pa; |
| virtual void bar(); // _ZN3bbb3DD13barEv |
| virtual void foo(); // _ZN3bbb3DD13fooEv |
| ~DD1(); // tgen |
| DD1(); // tgen |
| }; |
| //SIG(1 _ZN3bbb3DD1E) C1{ v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::DD1 ::bar(){vfunc_called(this, "_ZN3bbb3DD13barEv");} |
| void bbb::DD1 ::foo(){vfunc_called(this, "_ZN3bbb3DD13fooEv");} |
| bbb::DD1 ::~DD1(){ note_dtor("_ZN3bbb3DD1E", this);} // tgen |
| bbb::DD1 ::DD1(){ note_ctor("_ZN3bbb3DD1E", this);} // tgen |
| } |
| static void Test__ZN3bbb3DD1E() |
| { |
| extern Class_Descriptor cd__ZN3bbb3DD1E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[3]; |
| init_test(&cd__ZN3bbb3DD1E, buf); |
| ::bbb::DD1 *dp, &lv = *(dp=new (buf) ::bbb::DD1()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(16,8), "sizeof(_ZN3bbb3DD1E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb3DD1E)"); |
| check_field_offset(lv, pa, ABISELECT(8,4), "_ZN3bbb3DD1E.pa"); |
| test_class_info(&lv, &cd__ZN3bbb3DD1E); |
| dp->::bbb::DD1::~DD1(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb3DD1E(Test__ZN3bbb3DD1E, "_ZN3bbb3DD1E", ABISELECT(16,8)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb3DD1C1Ev(); |
| extern void _ZN3bbb3DD1D1Ev(); |
| Name_Map name_map__ZN3bbb3DD1E[] = { |
| NSPAIR(_ZN3bbb3DD1C1Ev), |
| NSPAIR(_ZN3bbb3DD1D1Ev), |
| {0,0} |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3DD1E[]; |
| extern void _ZN3bbb3DD13barEv(); |
| extern void _ZN3bbb3DD13fooEv(); |
| static VTBL_ENTRY vtc__ZN3bbb3DD1E[] = { |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb3DD1E[0]), |
| (VTBL_ENTRY)&_ZN3bbb3DD13barEv, |
| (VTBL_ENTRY)&_ZN3bbb3DD13fooEv, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb3DD1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3DD1E[]; |
| Class_Descriptor cd__ZN3bbb3DD1E = { "_ZN3bbb3DD1E", // class name |
| 0,0,//no base classes |
| &(vtc__ZN3bbb3DD1E[0]), // expected_vtbl_contents |
| 0, //no vtt |
| ABISELECT(16,8), // object size |
| NSPAIRA(_ZTIN3bbb3DD1E),ABISELECT(16,8), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb3DD1E),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 |
| namespace bbb { |
| struct EE000 : virtual ::bbb::AA0 , ::bbb::BB0 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5EE0003fooEv |
| virtual void bar(); // _ZN3bbb5EE0003barEv |
| ~EE000(); // tgen |
| EE000(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE000E) C1{ VBC2{ v1 v2 Fi} BC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE000 ::foo(){vfunc_called(this, "_ZN3bbb5EE0003fooEv");} |
| void bbb::EE000 ::bar(){vfunc_called(this, "_ZN3bbb5EE0003barEv");} |
| bbb::EE000 ::~EE000(){ note_dtor("_ZN3bbb5EE000E", this);} // tgen |
| bbb::EE000 ::EE000(){ note_ctor("_ZN3bbb5EE000E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE000E, buf); |
| ::bbb::EE000 *dp, &lv = *(dp=new (buf) ::bbb::EE000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), ABISELECT(16,12), "_ZN3bbb5EE000E"); |
| check_base_class_offset(lv, (::bbb::BB0*), 0, "_ZN3bbb5EE000E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE000E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE000E); |
| dp->::bbb::EE000::~EE000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE000E(Test__ZN3bbb5EE000E, "_ZN3bbb5EE000E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE000C1Ev(); |
| extern void _ZN3bbb5EE000D1Ev(); |
| Name_Map name_map__ZN3bbb5EE000E[] = { |
| NSPAIR(_ZN3bbb5EE000C1Ev), |
| NSPAIR(_ZN3bbb5EE000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5EE000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(16,12), //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__ZN3bbb3BB0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE000E[] = { |
| {&(_ZTVN3bbb5EE000E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE000E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| static VTBL_ENTRY alt_thunk_names1[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE000E = { "_ZN3bbb5EE000E", // class name |
| bases__ZN3bbb5EE000E, 2, |
| &(vtc__ZN3bbb5EE000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE000E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE000E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE000E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names1, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF000 : ::bbb::AA0 , virtual ::bbb::BB0 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5FF0003fooEv |
| virtual void bar(); // _ZN3bbb5FF0003barEv |
| ~FF000(); // tgen |
| FF000(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF000E) C1{ BC2{ v1 v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF000 ::foo(){vfunc_called(this, "_ZN3bbb5FF0003fooEv");} |
| void bbb::FF000 ::bar(){vfunc_called(this, "_ZN3bbb5FF0003barEv");} |
| bbb::FF000 ::~FF000(){ note_dtor("_ZN3bbb5FF000E", this);} // tgen |
| bbb::FF000 ::FF000(){ note_ctor("_ZN3bbb5FF000E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF000E, buf); |
| ::bbb::FF000 *dp, &lv = *(dp=new (buf) ::bbb::FF000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), 0, "_ZN3bbb5FF000E"); |
| check_base_class_offset(lv, (::bbb::BB0*), ABISELECT(16,12), "_ZN3bbb5FF000E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF000E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF000E); |
| dp->::bbb::FF000::~FF000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF000E(Test__ZN3bbb5FF000E, "_ZN3bbb5FF000E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF000C1Ev(); |
| extern void _ZN3bbb5FF000D1Ev(); |
| Name_Map name_map__ZN3bbb5FF000E[] = { |
| NSPAIR(_ZN3bbb5FF000C1Ev), |
| NSPAIR(_ZN3bbb5FF000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5FF000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(16,12), //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 _ZTIN3bbb5FF000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0003fooEv,_ZThn12_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0003barEv,_ZThn12_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF000E[] = { |
| {&(_ZTVN3bbb5FF000E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF000E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static VTBL_ENTRY alt_thunk_names2[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0003barEv,_ZThn12_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0003fooEv,_ZThn12_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF000E = { "_ZN3bbb5FF000E", // class name |
| bases__ZN3bbb5FF000E, 2, |
| &(vtc__ZN3bbb5FF000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF000E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF000E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF000E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names2, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE001 : virtual ::bbb::AA0 , ::bbb::BB0 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5EE0013barEv |
| virtual void foo(); // _ZN3bbb5EE0013fooEv |
| ~EE001(); // tgen |
| EE001(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE001E) C1{ VBC2{ v2 v1 Fi} BC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE001 ::bar(){vfunc_called(this, "_ZN3bbb5EE0013barEv");} |
| void bbb::EE001 ::foo(){vfunc_called(this, "_ZN3bbb5EE0013fooEv");} |
| bbb::EE001 ::~EE001(){ note_dtor("_ZN3bbb5EE001E", this);} // tgen |
| bbb::EE001 ::EE001(){ note_ctor("_ZN3bbb5EE001E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE001E, buf); |
| ::bbb::EE001 *dp, &lv = *(dp=new (buf) ::bbb::EE001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), ABISELECT(16,12), "_ZN3bbb5EE001E"); |
| check_base_class_offset(lv, (::bbb::BB0*), 0, "_ZN3bbb5EE001E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE001E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE001E); |
| dp->::bbb::EE001::~EE001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE001E(Test__ZN3bbb5EE001E, "_ZN3bbb5EE001E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE001C1Ev(); |
| extern void _ZN3bbb5EE001D1Ev(); |
| Name_Map name_map__ZN3bbb5EE001E[] = { |
| NSPAIR(_ZN3bbb5EE001C1Ev), |
| NSPAIR(_ZN3bbb5EE001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5EE001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(16,12), //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__ZN3bbb3BB0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE001E[] = { |
| {&(_ZTVN3bbb5EE001E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE001E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| static VTBL_ENTRY alt_thunk_names3[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE001E = { "_ZN3bbb5EE001E", // class name |
| bases__ZN3bbb5EE001E, 2, |
| &(vtc__ZN3bbb5EE001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE001E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE001E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE001E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names3, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF001 : ::bbb::AA0 , virtual ::bbb::BB0 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5FF0013barEv |
| virtual void foo(); // _ZN3bbb5FF0013fooEv |
| ~FF001(); // tgen |
| FF001(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF001E) C1{ BC2{ v2 v1 Fi} VBC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF001 ::bar(){vfunc_called(this, "_ZN3bbb5FF0013barEv");} |
| void bbb::FF001 ::foo(){vfunc_called(this, "_ZN3bbb5FF0013fooEv");} |
| bbb::FF001 ::~FF001(){ note_dtor("_ZN3bbb5FF001E", this);} // tgen |
| bbb::FF001 ::FF001(){ note_ctor("_ZN3bbb5FF001E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF001E, buf); |
| ::bbb::FF001 *dp, &lv = *(dp=new (buf) ::bbb::FF001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), 0, "_ZN3bbb5FF001E"); |
| check_base_class_offset(lv, (::bbb::BB0*), ABISELECT(16,12), "_ZN3bbb5FF001E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF001E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF001E); |
| dp->::bbb::FF001::~FF001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF001E(Test__ZN3bbb5FF001E, "_ZN3bbb5FF001E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF001C1Ev(); |
| extern void _ZN3bbb5FF001D1Ev(); |
| Name_Map name_map__ZN3bbb5FF001E[] = { |
| NSPAIR(_ZN3bbb5FF001C1Ev), |
| NSPAIR(_ZN3bbb5FF001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5FF001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(16,12), //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 _ZTIN3bbb5FF001E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0013fooEv,_ZThn12_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0013barEv,_ZThn12_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF001E[] = { |
| {&(_ZTVN3bbb5FF001E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF001E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static VTBL_ENTRY alt_thunk_names4[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0013barEv,_ZThn12_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0013fooEv,_ZThn12_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF001E = { "_ZN3bbb5FF001E", // class name |
| bases__ZN3bbb5FF001E, 2, |
| &(vtc__ZN3bbb5FF001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF001E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF001E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF001E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names4, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE010 : virtual ::bbb::AA0 , ::bbb::BB1 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5EE0103fooEv |
| virtual void bar(); // _ZN3bbb5EE0103barEv |
| ~EE010(); // tgen |
| EE010(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE010E) C1{ VBC2{ v1 v2 Fi} BC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE010 ::foo(){vfunc_called(this, "_ZN3bbb5EE0103fooEv");} |
| void bbb::EE010 ::bar(){vfunc_called(this, "_ZN3bbb5EE0103barEv");} |
| bbb::EE010 ::~EE010(){ note_dtor("_ZN3bbb5EE010E", this);} // tgen |
| bbb::EE010 ::EE010(){ note_ctor("_ZN3bbb5EE010E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE010E, buf); |
| ::bbb::EE010 *dp, &lv = *(dp=new (buf) ::bbb::EE010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), ABISELECT(16,12), "_ZN3bbb5EE010E"); |
| check_base_class_offset(lv, (::bbb::BB1*), 0, "_ZN3bbb5EE010E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE010E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE010E); |
| dp->::bbb::EE010::~EE010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE010E(Test__ZN3bbb5EE010E, "_ZN3bbb5EE010E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE010C1Ev(); |
| extern void _ZN3bbb5EE010D1Ev(); |
| Name_Map name_map__ZN3bbb5EE010E[] = { |
| NSPAIR(_ZN3bbb5EE010C1Ev), |
| NSPAIR(_ZN3bbb5EE010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5EE010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(16,12), //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__ZN3bbb3BB1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE010E[] = { |
| {&(_ZTVN3bbb5EE010E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE010E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| static VTBL_ENTRY alt_thunk_names5[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE010E = { "_ZN3bbb5EE010E", // class name |
| bases__ZN3bbb5EE010E, 2, |
| &(vtc__ZN3bbb5EE010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE010E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE010E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE010E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names5, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF010 : ::bbb::AA0 , virtual ::bbb::BB1 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5FF0103fooEv |
| virtual void bar(); // _ZN3bbb5FF0103barEv |
| ~FF010(); // tgen |
| FF010(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF010E) C1{ BC2{ v1 v2 Fi} VBC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF010 ::foo(){vfunc_called(this, "_ZN3bbb5FF0103fooEv");} |
| void bbb::FF010 ::bar(){vfunc_called(this, "_ZN3bbb5FF0103barEv");} |
| bbb::FF010 ::~FF010(){ note_dtor("_ZN3bbb5FF010E", this);} // tgen |
| bbb::FF010 ::FF010(){ note_ctor("_ZN3bbb5FF010E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF010E, buf); |
| ::bbb::FF010 *dp, &lv = *(dp=new (buf) ::bbb::FF010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), 0, "_ZN3bbb5FF010E"); |
| check_base_class_offset(lv, (::bbb::BB1*), ABISELECT(16,12), "_ZN3bbb5FF010E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF010E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF010E); |
| dp->::bbb::FF010::~FF010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF010E(Test__ZN3bbb5FF010E, "_ZN3bbb5FF010E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF010C1Ev(); |
| extern void _ZN3bbb5FF010D1Ev(); |
| Name_Map name_map__ZN3bbb5FF010E[] = { |
| NSPAIR(_ZN3bbb5FF010C1Ev), |
| NSPAIR(_ZN3bbb5FF010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5FF010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(16,12), //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 _ZTIN3bbb5FF010E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0103barEv,_ZThn12_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0103fooEv,_ZThn12_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF010E[] = { |
| {&(_ZTVN3bbb5FF010E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF010E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static VTBL_ENTRY alt_thunk_names6[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0103fooEv,_ZThn12_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0103barEv,_ZThn12_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF010E = { "_ZN3bbb5FF010E", // class name |
| bases__ZN3bbb5FF010E, 2, |
| &(vtc__ZN3bbb5FF010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF010E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF010E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF010E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names6, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE011 : virtual ::bbb::AA0 , ::bbb::BB1 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5EE0113barEv |
| virtual void foo(); // _ZN3bbb5EE0113fooEv |
| ~EE011(); // tgen |
| EE011(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE011E) C1{ VBC2{ v2 v1 Fi} BC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE011 ::bar(){vfunc_called(this, "_ZN3bbb5EE0113barEv");} |
| void bbb::EE011 ::foo(){vfunc_called(this, "_ZN3bbb5EE0113fooEv");} |
| bbb::EE011 ::~EE011(){ note_dtor("_ZN3bbb5EE011E", this);} // tgen |
| bbb::EE011 ::EE011(){ note_ctor("_ZN3bbb5EE011E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE011E, buf); |
| ::bbb::EE011 *dp, &lv = *(dp=new (buf) ::bbb::EE011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), ABISELECT(16,12), "_ZN3bbb5EE011E"); |
| check_base_class_offset(lv, (::bbb::BB1*), 0, "_ZN3bbb5EE011E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE011E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE011E); |
| dp->::bbb::EE011::~EE011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE011E(Test__ZN3bbb5EE011E, "_ZN3bbb5EE011E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE011C1Ev(); |
| extern void _ZN3bbb5EE011D1Ev(); |
| Name_Map name_map__ZN3bbb5EE011E[] = { |
| NSPAIR(_ZN3bbb5EE011C1Ev), |
| NSPAIR(_ZN3bbb5EE011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5EE011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(16,12), //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__ZN3bbb3BB1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE011E[] = { |
| {&(_ZTVN3bbb5EE011E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE011E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| static VTBL_ENTRY alt_thunk_names7[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE011E = { "_ZN3bbb5EE011E", // class name |
| bases__ZN3bbb5EE011E, 2, |
| &(vtc__ZN3bbb5EE011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE011E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE011E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE011E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names7, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF011 : ::bbb::AA0 , virtual ::bbb::BB1 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5FF0113barEv |
| virtual void foo(); // _ZN3bbb5FF0113fooEv |
| ~FF011(); // tgen |
| FF011(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF011E) C1{ BC2{ v2 v1 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF011 ::bar(){vfunc_called(this, "_ZN3bbb5FF0113barEv");} |
| void bbb::FF011 ::foo(){vfunc_called(this, "_ZN3bbb5FF0113fooEv");} |
| bbb::FF011 ::~FF011(){ note_dtor("_ZN3bbb5FF011E", this);} // tgen |
| bbb::FF011 ::FF011(){ note_ctor("_ZN3bbb5FF011E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF011E, buf); |
| ::bbb::FF011 *dp, &lv = *(dp=new (buf) ::bbb::FF011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*), 0, "_ZN3bbb5FF011E"); |
| check_base_class_offset(lv, (::bbb::BB1*), ABISELECT(16,12), "_ZN3bbb5FF011E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF011E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF011E); |
| dp->::bbb::FF011::~FF011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF011E(Test__ZN3bbb5FF011E, "_ZN3bbb5FF011E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF011C1Ev(); |
| extern void _ZN3bbb5FF011D1Ev(); |
| Name_Map name_map__ZN3bbb5FF011E[] = { |
| NSPAIR(_ZN3bbb5FF011C1Ev), |
| NSPAIR(_ZN3bbb5FF011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5FF011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(16,12), //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 _ZTIN3bbb5FF011E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0113barEv,_ZThn12_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF0113fooEv,_ZThn12_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF011E[] = { |
| {&(_ZTVN3bbb5FF011E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF011E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static VTBL_ENTRY alt_thunk_names8[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0113fooEv,_ZThn12_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF0113barEv,_ZThn12_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF011E = { "_ZN3bbb5FF011E", // class name |
| bases__ZN3bbb5FF011E, 2, |
| &(vtc__ZN3bbb5FF011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF011E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF011E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF011E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names8, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE100 : virtual ::bbb::AA1 , ::bbb::BB0 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5EE1003fooEv |
| virtual void bar(); // _ZN3bbb5EE1003barEv |
| ~EE100(); // tgen |
| EE100(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE100E) C1{ VBC2{ v2 v1 Fi} BC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE100 ::foo(){vfunc_called(this, "_ZN3bbb5EE1003fooEv");} |
| void bbb::EE100 ::bar(){vfunc_called(this, "_ZN3bbb5EE1003barEv");} |
| bbb::EE100 ::~EE100(){ note_dtor("_ZN3bbb5EE100E", this);} // tgen |
| bbb::EE100 ::EE100(){ note_ctor("_ZN3bbb5EE100E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE100E, buf); |
| ::bbb::EE100 *dp, &lv = *(dp=new (buf) ::bbb::EE100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), ABISELECT(16,12), "_ZN3bbb5EE100E"); |
| check_base_class_offset(lv, (::bbb::BB0*), 0, "_ZN3bbb5EE100E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE100E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE100E); |
| dp->::bbb::EE100::~EE100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE100E(Test__ZN3bbb5EE100E, "_ZN3bbb5EE100E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE100C1Ev(); |
| extern void _ZN3bbb5EE100D1Ev(); |
| Name_Map name_map__ZN3bbb5EE100E[] = { |
| NSPAIR(_ZN3bbb5EE100C1Ev), |
| NSPAIR(_ZN3bbb5EE100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5EE100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(16,12), //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__ZN3bbb3BB0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE100E[] = { |
| {&(_ZTVN3bbb5EE100E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE100E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| static VTBL_ENTRY alt_thunk_names9[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE100E = { "_ZN3bbb5EE100E", // class name |
| bases__ZN3bbb5EE100E, 2, |
| &(vtc__ZN3bbb5EE100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE100E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE100E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE100E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names9, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF100 : ::bbb::AA1 , virtual ::bbb::BB0 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5FF1003fooEv |
| virtual void bar(); // _ZN3bbb5FF1003barEv |
| ~FF100(); // tgen |
| FF100(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF100E) C1{ BC2{ v2 v1 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF100 ::foo(){vfunc_called(this, "_ZN3bbb5FF1003fooEv");} |
| void bbb::FF100 ::bar(){vfunc_called(this, "_ZN3bbb5FF1003barEv");} |
| bbb::FF100 ::~FF100(){ note_dtor("_ZN3bbb5FF100E", this);} // tgen |
| bbb::FF100 ::FF100(){ note_ctor("_ZN3bbb5FF100E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF100E, buf); |
| ::bbb::FF100 *dp, &lv = *(dp=new (buf) ::bbb::FF100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), 0, "_ZN3bbb5FF100E"); |
| check_base_class_offset(lv, (::bbb::BB0*), ABISELECT(16,12), "_ZN3bbb5FF100E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF100E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF100E); |
| dp->::bbb::FF100::~FF100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF100E(Test__ZN3bbb5FF100E, "_ZN3bbb5FF100E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF100C1Ev(); |
| extern void _ZN3bbb5FF100D1Ev(); |
| Name_Map name_map__ZN3bbb5FF100E[] = { |
| NSPAIR(_ZN3bbb5FF100C1Ev), |
| NSPAIR(_ZN3bbb5FF100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5FF100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(16,12), //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 _ZTIN3bbb5FF100E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1003fooEv,_ZThn12_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1003barEv,_ZThn12_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF100E[] = { |
| {&(_ZTVN3bbb5FF100E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF100E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static VTBL_ENTRY alt_thunk_names10[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1003barEv,_ZThn12_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1003fooEv,_ZThn12_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF100E = { "_ZN3bbb5FF100E", // class name |
| bases__ZN3bbb5FF100E, 2, |
| &(vtc__ZN3bbb5FF100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF100E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF100E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF100E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names10, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE101 : virtual ::bbb::AA1 , ::bbb::BB0 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5EE1013barEv |
| virtual void foo(); // _ZN3bbb5EE1013fooEv |
| ~EE101(); // tgen |
| EE101(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE101E) C1{ VBC2{ v1 v2 Fi} BC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE101 ::bar(){vfunc_called(this, "_ZN3bbb5EE1013barEv");} |
| void bbb::EE101 ::foo(){vfunc_called(this, "_ZN3bbb5EE1013fooEv");} |
| bbb::EE101 ::~EE101(){ note_dtor("_ZN3bbb5EE101E", this);} // tgen |
| bbb::EE101 ::EE101(){ note_ctor("_ZN3bbb5EE101E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE101E, buf); |
| ::bbb::EE101 *dp, &lv = *(dp=new (buf) ::bbb::EE101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), ABISELECT(16,12), "_ZN3bbb5EE101E"); |
| check_base_class_offset(lv, (::bbb::BB0*), 0, "_ZN3bbb5EE101E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE101E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE101E); |
| dp->::bbb::EE101::~EE101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE101E(Test__ZN3bbb5EE101E, "_ZN3bbb5EE101E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE101C1Ev(); |
| extern void _ZN3bbb5EE101D1Ev(); |
| Name_Map name_map__ZN3bbb5EE101E[] = { |
| NSPAIR(_ZN3bbb5EE101C1Ev), |
| NSPAIR(_ZN3bbb5EE101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5EE101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(16,12), //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__ZN3bbb3BB0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE101E[] = { |
| {&(_ZTVN3bbb5EE101E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE101E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| static VTBL_ENTRY alt_thunk_names11[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE101E = { "_ZN3bbb5EE101E", // class name |
| bases__ZN3bbb5EE101E, 2, |
| &(vtc__ZN3bbb5EE101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE101E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE101E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE101E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names11, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF101 : ::bbb::AA1 , virtual ::bbb::BB0 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5FF1013barEv |
| virtual void foo(); // _ZN3bbb5FF1013fooEv |
| ~FF101(); // tgen |
| FF101(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF101E) C1{ BC2{ v1 v2 Fi} VBC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF101 ::bar(){vfunc_called(this, "_ZN3bbb5FF1013barEv");} |
| void bbb::FF101 ::foo(){vfunc_called(this, "_ZN3bbb5FF1013fooEv");} |
| bbb::FF101 ::~FF101(){ note_dtor("_ZN3bbb5FF101E", this);} // tgen |
| bbb::FF101 ::FF101(){ note_ctor("_ZN3bbb5FF101E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF101E, buf); |
| ::bbb::FF101 *dp, &lv = *(dp=new (buf) ::bbb::FF101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), 0, "_ZN3bbb5FF101E"); |
| check_base_class_offset(lv, (::bbb::BB0*), ABISELECT(16,12), "_ZN3bbb5FF101E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF101E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF101E); |
| dp->::bbb::FF101::~FF101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF101E(Test__ZN3bbb5FF101E, "_ZN3bbb5FF101E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF101C1Ev(); |
| extern void _ZN3bbb5FF101D1Ev(); |
| Name_Map name_map__ZN3bbb5FF101E[] = { |
| NSPAIR(_ZN3bbb5FF101C1Ev), |
| NSPAIR(_ZN3bbb5FF101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| static Base_Class bases__ZN3bbb5FF101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(16,12), //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 _ZTIN3bbb5FF101E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1013fooEv,_ZThn12_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1013barEv,_ZThn12_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF101E[] = { |
| {&(_ZTVN3bbb5FF101E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF101E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static VTBL_ENTRY alt_thunk_names12[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1013barEv,_ZThn12_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1013fooEv,_ZThn12_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF101E = { "_ZN3bbb5FF101E", // class name |
| bases__ZN3bbb5FF101E, 2, |
| &(vtc__ZN3bbb5FF101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF101E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF101E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF101E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names12, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE110 : virtual ::bbb::AA1 , ::bbb::BB1 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5EE1103fooEv |
| virtual void bar(); // _ZN3bbb5EE1103barEv |
| ~EE110(); // tgen |
| EE110(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE110E) C1{ VBC2{ v2 v1 Fi} BC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE110 ::foo(){vfunc_called(this, "_ZN3bbb5EE1103fooEv");} |
| void bbb::EE110 ::bar(){vfunc_called(this, "_ZN3bbb5EE1103barEv");} |
| bbb::EE110 ::~EE110(){ note_dtor("_ZN3bbb5EE110E", this);} // tgen |
| bbb::EE110 ::EE110(){ note_ctor("_ZN3bbb5EE110E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE110E, buf); |
| ::bbb::EE110 *dp, &lv = *(dp=new (buf) ::bbb::EE110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), ABISELECT(16,12), "_ZN3bbb5EE110E"); |
| check_base_class_offset(lv, (::bbb::BB1*), 0, "_ZN3bbb5EE110E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE110E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE110E); |
| dp->::bbb::EE110::~EE110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE110E(Test__ZN3bbb5EE110E, "_ZN3bbb5EE110E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE110C1Ev(); |
| extern void _ZN3bbb5EE110D1Ev(); |
| Name_Map name_map__ZN3bbb5EE110E[] = { |
| NSPAIR(_ZN3bbb5EE110C1Ev), |
| NSPAIR(_ZN3bbb5EE110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5EE110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(16,12), //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__ZN3bbb3BB1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE110E[] = { |
| {&(_ZTVN3bbb5EE110E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE110E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| static VTBL_ENTRY alt_thunk_names13[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE110E = { "_ZN3bbb5EE110E", // class name |
| bases__ZN3bbb5EE110E, 2, |
| &(vtc__ZN3bbb5EE110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE110E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE110E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE110E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names13, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF110 : ::bbb::AA1 , virtual ::bbb::BB1 { |
| int pe; |
| virtual void foo(); // _ZN3bbb5FF1103fooEv |
| virtual void bar(); // _ZN3bbb5FF1103barEv |
| ~FF110(); // tgen |
| FF110(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF110E) C1{ BC2{ v2 v1 Fi} VBC3{ v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF110 ::foo(){vfunc_called(this, "_ZN3bbb5FF1103fooEv");} |
| void bbb::FF110 ::bar(){vfunc_called(this, "_ZN3bbb5FF1103barEv");} |
| bbb::FF110 ::~FF110(){ note_dtor("_ZN3bbb5FF110E", this);} // tgen |
| bbb::FF110 ::FF110(){ note_ctor("_ZN3bbb5FF110E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF110E, buf); |
| ::bbb::FF110 *dp, &lv = *(dp=new (buf) ::bbb::FF110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), 0, "_ZN3bbb5FF110E"); |
| check_base_class_offset(lv, (::bbb::BB1*), ABISELECT(16,12), "_ZN3bbb5FF110E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF110E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF110E); |
| dp->::bbb::FF110::~FF110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF110E(Test__ZN3bbb5FF110E, "_ZN3bbb5FF110E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF110C1Ev(); |
| extern void _ZN3bbb5FF110D1Ev(); |
| Name_Map name_map__ZN3bbb5FF110E[] = { |
| NSPAIR(_ZN3bbb5FF110C1Ev), |
| NSPAIR(_ZN3bbb5FF110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5FF110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(16,12), //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 _ZTIN3bbb5FF110E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1103barEv,_ZThn12_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1103fooEv,_ZThn12_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF110E[] = { |
| {&(_ZTVN3bbb5FF110E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF110E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static VTBL_ENTRY alt_thunk_names14[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1103fooEv,_ZThn12_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1103barEv,_ZThn12_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF110E = { "_ZN3bbb5FF110E", // class name |
| bases__ZN3bbb5FF110E, 2, |
| &(vtc__ZN3bbb5FF110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF110E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF110E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF110E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names14, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct EE111 : virtual ::bbb::AA1 , ::bbb::BB1 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5EE1113barEv |
| virtual void foo(); // _ZN3bbb5EE1113fooEv |
| ~EE111(); // tgen |
| EE111(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5EE111E) C1{ VBC2{ v1 v2 Fi} BC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::EE111 ::bar(){vfunc_called(this, "_ZN3bbb5EE1113barEv");} |
| void bbb::EE111 ::foo(){vfunc_called(this, "_ZN3bbb5EE1113fooEv");} |
| bbb::EE111 ::~EE111(){ note_dtor("_ZN3bbb5EE111E", this);} // tgen |
| bbb::EE111 ::EE111(){ note_ctor("_ZN3bbb5EE111E", this);} // tgen |
| } |
| static void Test__ZN3bbb5EE111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5EE111E, buf); |
| ::bbb::EE111 *dp, &lv = *(dp=new (buf) ::bbb::EE111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5EE111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5EE111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), ABISELECT(16,12), "_ZN3bbb5EE111E"); |
| check_base_class_offset(lv, (::bbb::BB1*), 0, "_ZN3bbb5EE111E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5EE111E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5EE111E); |
| dp->::bbb::EE111::~EE111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5EE111E(Test__ZN3bbb5EE111E, "_ZN3bbb5EE111E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5EE111C1Ev(); |
| extern void _ZN3bbb5EE111D1Ev(); |
| Name_Map name_map__ZN3bbb5EE111E[] = { |
| NSPAIR(_ZN3bbb5EE111C1Ev), |
| NSPAIR(_ZN3bbb5EE111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5EE111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(16,12), //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__ZN3bbb3BB1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5EE111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| static VTT_ENTRY vtt__ZN3bbb5EE111E[] = { |
| {&(_ZTVN3bbb5EE111E[3]), 3,11}, |
| {&(_ZTVN3bbb5EE111E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| static VTBL_ENTRY alt_thunk_names15[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5EE111E = { "_ZN3bbb5EE111E", // class name |
| bases__ZN3bbb5EE111E, 2, |
| &(vtc__ZN3bbb5EE111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5EE111E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5EE111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5EE111E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5EE111E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names15, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct FF111 : ::bbb::AA1 , virtual ::bbb::BB1 { |
| int pe; |
| virtual void bar(); // _ZN3bbb5FF1113barEv |
| virtual void foo(); // _ZN3bbb5FF1113fooEv |
| ~FF111(); // tgen |
| FF111(); // tgen |
| }; |
| //SIG(-1 _ZN3bbb5FF111E) C1{ BC2{ v1 v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::FF111 ::bar(){vfunc_called(this, "_ZN3bbb5FF1113barEv");} |
| void bbb::FF111 ::foo(){vfunc_called(this, "_ZN3bbb5FF1113fooEv");} |
| bbb::FF111 ::~FF111(){ note_dtor("_ZN3bbb5FF111E", this);} // tgen |
| bbb::FF111 ::FF111(){ note_ctor("_ZN3bbb5FF111E", this);} // tgen |
| } |
| static void Test__ZN3bbb5FF111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(5,6)]; |
| init_test(&cd__ZN3bbb5FF111E, buf); |
| ::bbb::FF111 *dp, &lv = *(dp=new (buf) ::bbb::FF111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(32,20), "sizeof(_ZN3bbb5FF111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb5FF111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*), 0, "_ZN3bbb5FF111E"); |
| check_base_class_offset(lv, (::bbb::BB1*), ABISELECT(16,12), "_ZN3bbb5FF111E"); |
| check_field_offset(lv, pe, ABISELECT(12,8), "_ZN3bbb5FF111E.pe"); |
| test_class_info(&lv, &cd__ZN3bbb5FF111E); |
| dp->::bbb::FF111::~FF111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb5FF111E(Test__ZN3bbb5FF111E, "_ZN3bbb5FF111E", ABISELECT(32,20)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb5FF111C1Ev(); |
| extern void _ZN3bbb5FF111D1Ev(); |
| Name_Map name_map__ZN3bbb5FF111E[] = { |
| NSPAIR(_ZN3bbb5FF111C1Ev), |
| NSPAIR(_ZN3bbb5FF111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| static Base_Class bases__ZN3bbb5FF111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(16,12), //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 _ZTIN3bbb5FF111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1113barEv,_ZThn12_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5FF1113fooEv,_ZThn12_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb5FF111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| static VTT_ENTRY vtt__ZN3bbb5FF111E[] = { |
| {&(_ZTVN3bbb5FF111E[3]), 3,11}, |
| {&(_ZTVN3bbb5FF111E[9]), 9,11}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static VTBL_ENTRY alt_thunk_names16[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1113fooEv,_ZThn12_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5FF1113barEv,_ZThn12_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb5FF111E = { "_ZN3bbb5FF111E", // class name |
| bases__ZN3bbb5FF111E, 2, |
| &(vtc__ZN3bbb5FF111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb5FF111E[0]), // expected_vtt_contents |
| ABISELECT(32,20), // object size |
| NSPAIRA(_ZTIN3bbb5FF111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb5FF111E),11, //virtual function table var |
| 3, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb5FF111E),2, //virtual table table var |
| 2, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names16, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000000 : virtual ::bbb::EE000 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00000003fooEv |
| virtual void bar(); // _ZN3bbb9GG00000003barEv |
| ~GG0000000(); // tgen |
| GG0000000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000000 ::foo(){vfunc_called(this, "_ZN3bbb9GG00000003fooEv");} |
| void bbb::GG0000000 ::bar(){vfunc_called(this, "_ZN3bbb9GG00000003barEv");} |
| bbb::GG0000000 ::~GG0000000(){ note_dtor("_ZN3bbb9GG0000000E", this);} // tgen |
| bbb::GG0000000 ::GG0000000(){ note_ctor("_ZN3bbb9GG0000000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000000E, buf); |
| ::bbb::GG0000000 *dp, &lv = *(dp=new (buf) ::bbb::GG0000000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000000E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0000000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0000000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0000000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000000E); |
| dp->::bbb::GG0000000::~GG0000000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000000E(Test__ZN3bbb9GG0000000E, "_ZN3bbb9GG0000000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000000C1Ev(); |
| extern void _ZN3bbb9GG0000000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000000E[] = { |
| NSPAIR(_ZN3bbb9GG0000000C1Ev), |
| NSPAIR(_ZN3bbb9GG0000000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0000000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000000E[]; |
| extern void _ZN3bbb9GG00000003fooEv(); |
| extern void _ZN3bbb9GG00000003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000003fooEv,_ZTv0_n16_N3bbb9GG00000003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000003fooEv,_ZThn16_N3bbb9GG00000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00000003barEv,_ZTv0_n20_N3bbb9GG00000003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000003barEv,_ZThn16_N3bbb9GG00000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000003fooEv,_ZTv0_n12_N3bbb9GG00000003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000003fooEv,_ZThn28_N3bbb9GG00000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000003barEv,_ZTv0_n16_N3bbb9GG00000003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000003barEv,_ZThn28_N3bbb9GG00000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000003fooEv,_ZTv0_n12_N3bbb9GG00000003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000003fooEv,_ZThn36_N3bbb9GG00000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000003barEv,_ZTv0_n16_N3bbb9GG00000003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000003barEv,_ZThn36_N3bbb9GG00000003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00000003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00000003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000003fooEv,_ZTv0_n16_N3bbb9GG00000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00000003barEv,_ZTv0_n20_N3bbb9GG00000003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000003fooEv,_ZTv0_n12_N3bbb9GG00000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000003barEv,_ZTv0_n16_N3bbb9GG00000003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000003fooEv,_ZTv0_n12_N3bbb9GG00000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000003barEv,_ZTv0_n16_N3bbb9GG00000003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0000000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0000000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000000E[] = { |
| {&(_ZTVN3bbb9GG0000000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0000000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0000000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000000E[]; |
| static VTBL_ENTRY alt_thunk_names17[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000003barEv,_ZTv0_n16_N3bbb9GG00000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000003barEv,_ZThn36_N3bbb9GG00000003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000003barEv,_ZThn28_N3bbb9GG00000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00000003fooEv,_ZTv0_n12_N3bbb9GG00000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000003fooEv,_ZThn36_N3bbb9GG00000003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000003fooEv,_ZThn28_N3bbb9GG00000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00000003barEv,_ZTv0_n20_N3bbb9GG00000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000003barEv,_ZThn16_N3bbb9GG00000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000003fooEv,_ZTv0_n16_N3bbb9GG00000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000003fooEv,_ZThn16_N3bbb9GG00000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000000E = { "_ZN3bbb9GG0000000E", // class name |
| bases__ZN3bbb9GG0000000E, 6, |
| &(vtc__ZN3bbb9GG0000000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names17, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000001 : virtual ::bbb::EE000 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00000013barEv |
| virtual void foo(); // _ZN3bbb9GG00000013fooEv |
| ~GG0000001(); // tgen |
| GG0000001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000001 ::bar(){vfunc_called(this, "_ZN3bbb9GG00000013barEv");} |
| void bbb::GG0000001 ::foo(){vfunc_called(this, "_ZN3bbb9GG00000013fooEv");} |
| bbb::GG0000001 ::~GG0000001(){ note_dtor("_ZN3bbb9GG0000001E", this);} // tgen |
| bbb::GG0000001 ::GG0000001(){ note_ctor("_ZN3bbb9GG0000001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000001E, buf); |
| ::bbb::GG0000001 *dp, &lv = *(dp=new (buf) ::bbb::GG0000001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000001E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0000001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0000001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0000001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000001E); |
| dp->::bbb::GG0000001::~GG0000001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000001E(Test__ZN3bbb9GG0000001E, "_ZN3bbb9GG0000001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000001C1Ev(); |
| extern void _ZN3bbb9GG0000001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000001E[] = { |
| NSPAIR(_ZN3bbb9GG0000001C1Ev), |
| NSPAIR(_ZN3bbb9GG0000001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0000001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000001E[]; |
| extern void _ZN3bbb9GG00000013fooEv(); |
| extern void _ZN3bbb9GG00000013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000013fooEv,_ZTv0_n16_N3bbb9GG00000013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000013fooEv,_ZThn16_N3bbb9GG00000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00000013barEv,_ZTv0_n20_N3bbb9GG00000013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000013barEv,_ZThn16_N3bbb9GG00000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000013fooEv,_ZTv0_n12_N3bbb9GG00000013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000013fooEv,_ZThn28_N3bbb9GG00000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000013barEv,_ZTv0_n16_N3bbb9GG00000013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000013barEv,_ZThn28_N3bbb9GG00000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000013fooEv,_ZTv0_n12_N3bbb9GG00000013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000013fooEv,_ZThn36_N3bbb9GG00000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000013barEv,_ZTv0_n16_N3bbb9GG00000013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000013barEv,_ZThn36_N3bbb9GG00000013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00000013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00000013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000013fooEv,_ZTv0_n16_N3bbb9GG00000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00000013barEv,_ZTv0_n20_N3bbb9GG00000013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000013fooEv,_ZTv0_n12_N3bbb9GG00000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000013barEv,_ZTv0_n16_N3bbb9GG00000013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000013fooEv,_ZTv0_n12_N3bbb9GG00000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000013barEv,_ZTv0_n16_N3bbb9GG00000013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0000001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0000001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000001E[] = { |
| {&(_ZTVN3bbb9GG0000001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0000001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0000001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000001E[]; |
| static VTBL_ENTRY alt_thunk_names18[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000013barEv,_ZTv0_n16_N3bbb9GG00000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000013barEv,_ZThn36_N3bbb9GG00000013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000013barEv,_ZThn28_N3bbb9GG00000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00000013fooEv,_ZTv0_n12_N3bbb9GG00000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000013fooEv,_ZThn36_N3bbb9GG00000013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000013fooEv,_ZThn28_N3bbb9GG00000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00000013barEv,_ZTv0_n20_N3bbb9GG00000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000013barEv,_ZThn16_N3bbb9GG00000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000013fooEv,_ZTv0_n16_N3bbb9GG00000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000013fooEv,_ZThn16_N3bbb9GG00000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000001E = { "_ZN3bbb9GG0000001E", // class name |
| bases__ZN3bbb9GG0000001E, 6, |
| &(vtc__ZN3bbb9GG0000001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names18, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000010 : virtual ::bbb::EE000 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00000103fooEv |
| virtual void bar(); // _ZN3bbb9GG00000103barEv |
| ~GG0000010(); // tgen |
| GG0000010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000010 ::foo(){vfunc_called(this, "_ZN3bbb9GG00000103fooEv");} |
| void bbb::GG0000010 ::bar(){vfunc_called(this, "_ZN3bbb9GG00000103barEv");} |
| bbb::GG0000010 ::~GG0000010(){ note_dtor("_ZN3bbb9GG0000010E", this);} // tgen |
| bbb::GG0000010 ::GG0000010(){ note_ctor("_ZN3bbb9GG0000010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000010E, buf); |
| ::bbb::GG0000010 *dp, &lv = *(dp=new (buf) ::bbb::GG0000010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000010E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0000010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0000010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0000010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000010E); |
| dp->::bbb::GG0000010::~GG0000010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000010E(Test__ZN3bbb9GG0000010E, "_ZN3bbb9GG0000010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000010C1Ev(); |
| extern void _ZN3bbb9GG0000010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000010E[] = { |
| NSPAIR(_ZN3bbb9GG0000010C1Ev), |
| NSPAIR(_ZN3bbb9GG0000010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0000010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000010E[]; |
| extern void _ZN3bbb9GG00000103fooEv(); |
| extern void _ZN3bbb9GG00000103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000103fooEv,_ZTv0_n16_N3bbb9GG00000103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000103fooEv,_ZThn16_N3bbb9GG00000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00000103barEv,_ZTv0_n20_N3bbb9GG00000103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000103barEv,_ZThn16_N3bbb9GG00000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000103fooEv,_ZTv0_n12_N3bbb9GG00000103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000103fooEv,_ZThn28_N3bbb9GG00000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000103barEv,_ZTv0_n16_N3bbb9GG00000103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000103barEv,_ZThn28_N3bbb9GG00000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000103fooEv,_ZTv0_n12_N3bbb9GG00000103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000103fooEv,_ZThn36_N3bbb9GG00000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000103barEv,_ZTv0_n16_N3bbb9GG00000103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000103barEv,_ZThn36_N3bbb9GG00000103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00000103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00000103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000103fooEv,_ZTv0_n16_N3bbb9GG00000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00000103barEv,_ZTv0_n20_N3bbb9GG00000103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000103fooEv,_ZTv0_n12_N3bbb9GG00000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000103barEv,_ZTv0_n16_N3bbb9GG00000103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000103fooEv,_ZTv0_n12_N3bbb9GG00000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000103barEv,_ZTv0_n16_N3bbb9GG00000103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0000010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0000010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000010E[] = { |
| {&(_ZTVN3bbb9GG0000010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0000010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0000010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000010E[]; |
| static VTBL_ENTRY alt_thunk_names19[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000103barEv,_ZTv0_n16_N3bbb9GG00000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000103barEv,_ZThn36_N3bbb9GG00000103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000103barEv,_ZThn28_N3bbb9GG00000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00000103fooEv,_ZTv0_n12_N3bbb9GG00000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000103fooEv,_ZThn36_N3bbb9GG00000103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000103fooEv,_ZThn28_N3bbb9GG00000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00000103barEv,_ZTv0_n20_N3bbb9GG00000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000103barEv,_ZThn16_N3bbb9GG00000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000103fooEv,_ZTv0_n16_N3bbb9GG00000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000103fooEv,_ZThn16_N3bbb9GG00000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000010E = { "_ZN3bbb9GG0000010E", // class name |
| bases__ZN3bbb9GG0000010E, 6, |
| &(vtc__ZN3bbb9GG0000010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names19, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000011 : virtual ::bbb::EE000 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00000113barEv |
| virtual void foo(); // _ZN3bbb9GG00000113fooEv |
| ~GG0000011(); // tgen |
| GG0000011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000011 ::bar(){vfunc_called(this, "_ZN3bbb9GG00000113barEv");} |
| void bbb::GG0000011 ::foo(){vfunc_called(this, "_ZN3bbb9GG00000113fooEv");} |
| bbb::GG0000011 ::~GG0000011(){ note_dtor("_ZN3bbb9GG0000011E", this);} // tgen |
| bbb::GG0000011 ::GG0000011(){ note_ctor("_ZN3bbb9GG0000011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000011E, buf); |
| ::bbb::GG0000011 *dp, &lv = *(dp=new (buf) ::bbb::GG0000011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000011E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0000011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0000011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0000011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000011E); |
| dp->::bbb::GG0000011::~GG0000011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000011E(Test__ZN3bbb9GG0000011E, "_ZN3bbb9GG0000011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000011C1Ev(); |
| extern void _ZN3bbb9GG0000011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000011E[] = { |
| NSPAIR(_ZN3bbb9GG0000011C1Ev), |
| NSPAIR(_ZN3bbb9GG0000011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0000011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000011E[]; |
| extern void _ZN3bbb9GG00000113fooEv(); |
| extern void _ZN3bbb9GG00000113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000113fooEv,_ZTv0_n16_N3bbb9GG00000113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000113fooEv,_ZThn16_N3bbb9GG00000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00000113barEv,_ZTv0_n20_N3bbb9GG00000113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00000113barEv,_ZThn16_N3bbb9GG00000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000113fooEv,_ZTv0_n12_N3bbb9GG00000113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000113fooEv,_ZThn28_N3bbb9GG00000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000113barEv,_ZTv0_n16_N3bbb9GG00000113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00000113barEv,_ZThn28_N3bbb9GG00000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00000113fooEv,_ZTv0_n12_N3bbb9GG00000113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000113fooEv,_ZThn36_N3bbb9GG00000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00000113barEv,_ZTv0_n16_N3bbb9GG00000113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00000113barEv,_ZThn36_N3bbb9GG00000113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00000113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00000113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000113fooEv,_ZTv0_n16_N3bbb9GG00000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00000113barEv,_ZTv0_n20_N3bbb9GG00000113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000113fooEv,_ZTv0_n12_N3bbb9GG00000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000113barEv,_ZTv0_n16_N3bbb9GG00000113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00000113fooEv,_ZTv0_n12_N3bbb9GG00000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00000113barEv,_ZTv0_n16_N3bbb9GG00000113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0000011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0000011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000011E[] = { |
| {&(_ZTVN3bbb9GG0000011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0000011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0000011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000011E[]; |
| static VTBL_ENTRY alt_thunk_names20[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000113barEv,_ZTv0_n16_N3bbb9GG00000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000113barEv,_ZThn36_N3bbb9GG00000113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000113barEv,_ZThn28_N3bbb9GG00000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00000113fooEv,_ZTv0_n12_N3bbb9GG00000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00000113fooEv,_ZThn36_N3bbb9GG00000113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00000113fooEv,_ZThn28_N3bbb9GG00000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00000113barEv,_ZTv0_n20_N3bbb9GG00000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000113barEv,_ZThn16_N3bbb9GG00000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00000113fooEv,_ZTv0_n16_N3bbb9GG00000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00000113fooEv,_ZThn16_N3bbb9GG00000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000011E = { "_ZN3bbb9GG0000011E", // class name |
| bases__ZN3bbb9GG0000011E, 6, |
| &(vtc__ZN3bbb9GG0000011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names20, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000100 : virtual ::bbb::EE000 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00001003fooEv |
| virtual void bar(); // _ZN3bbb9GG00001003barEv |
| ~GG0000100(); // tgen |
| GG0000100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000100 ::foo(){vfunc_called(this, "_ZN3bbb9GG00001003fooEv");} |
| void bbb::GG0000100 ::bar(){vfunc_called(this, "_ZN3bbb9GG00001003barEv");} |
| bbb::GG0000100 ::~GG0000100(){ note_dtor("_ZN3bbb9GG0000100E", this);} // tgen |
| bbb::GG0000100 ::GG0000100(){ note_ctor("_ZN3bbb9GG0000100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000100E, buf); |
| ::bbb::GG0000100 *dp, &lv = *(dp=new (buf) ::bbb::GG0000100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000100E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0000100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0000100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0000100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000100E); |
| dp->::bbb::GG0000100::~GG0000100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000100E(Test__ZN3bbb9GG0000100E, "_ZN3bbb9GG0000100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000100C1Ev(); |
| extern void _ZN3bbb9GG0000100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000100E[] = { |
| NSPAIR(_ZN3bbb9GG0000100C1Ev), |
| NSPAIR(_ZN3bbb9GG0000100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0000100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000100E[]; |
| extern void _ZN3bbb9GG00001003fooEv(); |
| extern void _ZN3bbb9GG00001003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001003fooEv,_ZTv0_n16_N3bbb9GG00001003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001003fooEv,_ZThn16_N3bbb9GG00001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00001003barEv,_ZTv0_n20_N3bbb9GG00001003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001003barEv,_ZThn16_N3bbb9GG00001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001003fooEv,_ZTv0_n12_N3bbb9GG00001003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001003fooEv,_ZThn28_N3bbb9GG00001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001003barEv,_ZTv0_n16_N3bbb9GG00001003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001003barEv,_ZThn28_N3bbb9GG00001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001003barEv,_ZTv0_n12_N3bbb9GG00001003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001003barEv,_ZThn36_N3bbb9GG00001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001003fooEv,_ZTv0_n16_N3bbb9GG00001003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001003fooEv,_ZThn36_N3bbb9GG00001003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00001003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00001003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001003fooEv,_ZTv0_n16_N3bbb9GG00001003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00001003barEv,_ZTv0_n20_N3bbb9GG00001003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001003fooEv,_ZTv0_n12_N3bbb9GG00001003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001003barEv,_ZTv0_n16_N3bbb9GG00001003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001003barEv,_ZTv0_n12_N3bbb9GG00001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001003fooEv,_ZTv0_n16_N3bbb9GG00001003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0000100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0000100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000100E[] = { |
| {&(_ZTVN3bbb9GG0000100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0000100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0000100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000100E[]; |
| static VTBL_ENTRY alt_thunk_names21[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001003barEv,_ZTv0_n12_N3bbb9GG00001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001003barEv,_ZThn36_N3bbb9GG00001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001003barEv,_ZTv0_n16_N3bbb9GG00001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001003barEv,_ZThn28_N3bbb9GG00001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001003fooEv,_ZTv0_n12_N3bbb9GG00001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001003fooEv,_ZThn28_N3bbb9GG00001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00001003barEv,_ZTv0_n20_N3bbb9GG00001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001003barEv,_ZThn16_N3bbb9GG00001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001003fooEv,_ZTv0_n16_N3bbb9GG00001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001003fooEv,_ZThn36_N3bbb9GG00001003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001003fooEv,_ZThn16_N3bbb9GG00001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000100E = { "_ZN3bbb9GG0000100E", // class name |
| bases__ZN3bbb9GG0000100E, 6, |
| &(vtc__ZN3bbb9GG0000100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names21, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000101 : virtual ::bbb::EE000 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00001013barEv |
| virtual void foo(); // _ZN3bbb9GG00001013fooEv |
| ~GG0000101(); // tgen |
| GG0000101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000101 ::bar(){vfunc_called(this, "_ZN3bbb9GG00001013barEv");} |
| void bbb::GG0000101 ::foo(){vfunc_called(this, "_ZN3bbb9GG00001013fooEv");} |
| bbb::GG0000101 ::~GG0000101(){ note_dtor("_ZN3bbb9GG0000101E", this);} // tgen |
| bbb::GG0000101 ::GG0000101(){ note_ctor("_ZN3bbb9GG0000101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000101E, buf); |
| ::bbb::GG0000101 *dp, &lv = *(dp=new (buf) ::bbb::GG0000101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000101E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0000101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0000101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0000101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000101E); |
| dp->::bbb::GG0000101::~GG0000101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000101E(Test__ZN3bbb9GG0000101E, "_ZN3bbb9GG0000101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000101C1Ev(); |
| extern void _ZN3bbb9GG0000101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000101E[] = { |
| NSPAIR(_ZN3bbb9GG0000101C1Ev), |
| NSPAIR(_ZN3bbb9GG0000101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0000101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000101E[]; |
| extern void _ZN3bbb9GG00001013fooEv(); |
| extern void _ZN3bbb9GG00001013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001013fooEv,_ZTv0_n16_N3bbb9GG00001013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001013fooEv,_ZThn16_N3bbb9GG00001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00001013barEv,_ZTv0_n20_N3bbb9GG00001013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001013barEv,_ZThn16_N3bbb9GG00001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001013fooEv,_ZTv0_n12_N3bbb9GG00001013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001013fooEv,_ZThn28_N3bbb9GG00001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001013barEv,_ZTv0_n16_N3bbb9GG00001013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001013barEv,_ZThn28_N3bbb9GG00001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001013barEv,_ZTv0_n12_N3bbb9GG00001013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001013barEv,_ZThn36_N3bbb9GG00001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001013fooEv,_ZTv0_n16_N3bbb9GG00001013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001013fooEv,_ZThn36_N3bbb9GG00001013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00001013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00001013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001013fooEv,_ZTv0_n16_N3bbb9GG00001013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00001013barEv,_ZTv0_n20_N3bbb9GG00001013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001013fooEv,_ZTv0_n12_N3bbb9GG00001013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001013barEv,_ZTv0_n16_N3bbb9GG00001013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001013barEv,_ZTv0_n12_N3bbb9GG00001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001013fooEv,_ZTv0_n16_N3bbb9GG00001013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0000101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0000101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000101E[] = { |
| {&(_ZTVN3bbb9GG0000101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0000101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0000101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000101E[]; |
| static VTBL_ENTRY alt_thunk_names22[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001013barEv,_ZTv0_n12_N3bbb9GG00001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001013barEv,_ZThn36_N3bbb9GG00001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001013barEv,_ZTv0_n16_N3bbb9GG00001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001013barEv,_ZThn28_N3bbb9GG00001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001013fooEv,_ZTv0_n12_N3bbb9GG00001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001013fooEv,_ZThn28_N3bbb9GG00001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00001013barEv,_ZTv0_n20_N3bbb9GG00001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001013barEv,_ZThn16_N3bbb9GG00001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001013fooEv,_ZTv0_n16_N3bbb9GG00001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001013fooEv,_ZThn36_N3bbb9GG00001013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001013fooEv,_ZThn16_N3bbb9GG00001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000101E = { "_ZN3bbb9GG0000101E", // class name |
| bases__ZN3bbb9GG0000101E, 6, |
| &(vtc__ZN3bbb9GG0000101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names22, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000110 : virtual ::bbb::EE000 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00001103fooEv |
| virtual void bar(); // _ZN3bbb9GG00001103barEv |
| ~GG0000110(); // tgen |
| GG0000110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000110 ::foo(){vfunc_called(this, "_ZN3bbb9GG00001103fooEv");} |
| void bbb::GG0000110 ::bar(){vfunc_called(this, "_ZN3bbb9GG00001103barEv");} |
| bbb::GG0000110 ::~GG0000110(){ note_dtor("_ZN3bbb9GG0000110E", this);} // tgen |
| bbb::GG0000110 ::GG0000110(){ note_ctor("_ZN3bbb9GG0000110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000110E, buf); |
| ::bbb::GG0000110 *dp, &lv = *(dp=new (buf) ::bbb::GG0000110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000110E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0000110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0000110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0000110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000110E); |
| dp->::bbb::GG0000110::~GG0000110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000110E(Test__ZN3bbb9GG0000110E, "_ZN3bbb9GG0000110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000110C1Ev(); |
| extern void _ZN3bbb9GG0000110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000110E[] = { |
| NSPAIR(_ZN3bbb9GG0000110C1Ev), |
| NSPAIR(_ZN3bbb9GG0000110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0000110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000110E[]; |
| extern void _ZN3bbb9GG00001103fooEv(); |
| extern void _ZN3bbb9GG00001103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001103fooEv,_ZTv0_n16_N3bbb9GG00001103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001103fooEv,_ZThn16_N3bbb9GG00001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00001103barEv,_ZTv0_n20_N3bbb9GG00001103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001103barEv,_ZThn16_N3bbb9GG00001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001103fooEv,_ZTv0_n12_N3bbb9GG00001103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001103fooEv,_ZThn28_N3bbb9GG00001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001103barEv,_ZTv0_n16_N3bbb9GG00001103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001103barEv,_ZThn28_N3bbb9GG00001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001103barEv,_ZTv0_n12_N3bbb9GG00001103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001103barEv,_ZThn36_N3bbb9GG00001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001103fooEv,_ZTv0_n16_N3bbb9GG00001103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001103fooEv,_ZThn36_N3bbb9GG00001103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00001103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00001103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001103fooEv,_ZTv0_n16_N3bbb9GG00001103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00001103barEv,_ZTv0_n20_N3bbb9GG00001103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001103fooEv,_ZTv0_n12_N3bbb9GG00001103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001103barEv,_ZTv0_n16_N3bbb9GG00001103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001103barEv,_ZTv0_n12_N3bbb9GG00001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001103fooEv,_ZTv0_n16_N3bbb9GG00001103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0000110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0000110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000110E[] = { |
| {&(_ZTVN3bbb9GG0000110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0000110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0000110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000110E[]; |
| static VTBL_ENTRY alt_thunk_names23[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001103barEv,_ZTv0_n12_N3bbb9GG00001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001103barEv,_ZThn36_N3bbb9GG00001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001103barEv,_ZTv0_n16_N3bbb9GG00001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001103barEv,_ZThn28_N3bbb9GG00001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001103fooEv,_ZTv0_n12_N3bbb9GG00001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001103fooEv,_ZThn28_N3bbb9GG00001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00001103barEv,_ZTv0_n20_N3bbb9GG00001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001103barEv,_ZThn16_N3bbb9GG00001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001103fooEv,_ZTv0_n16_N3bbb9GG00001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001103fooEv,_ZThn36_N3bbb9GG00001103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001103fooEv,_ZThn16_N3bbb9GG00001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000110E = { "_ZN3bbb9GG0000110E", // class name |
| bases__ZN3bbb9GG0000110E, 6, |
| &(vtc__ZN3bbb9GG0000110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names23, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0000111 : virtual ::bbb::EE000 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00001113barEv |
| virtual void foo(); // _ZN3bbb9GG00001113fooEv |
| ~GG0000111(); // tgen |
| GG0000111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0000111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0000111 ::bar(){vfunc_called(this, "_ZN3bbb9GG00001113barEv");} |
| void bbb::GG0000111 ::foo(){vfunc_called(this, "_ZN3bbb9GG00001113fooEv");} |
| bbb::GG0000111 ::~GG0000111(){ note_dtor("_ZN3bbb9GG0000111E", this);} // tgen |
| bbb::GG0000111 ::GG0000111(){ note_ctor("_ZN3bbb9GG0000111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0000111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0000111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0000111E, buf); |
| ::bbb::GG0000111 *dp, &lv = *(dp=new (buf) ::bbb::GG0000111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0000111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0000111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0000111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000111E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0000111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0000111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0000111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0000111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0000111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0000111E); |
| dp->::bbb::GG0000111::~GG0000111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0000111E(Test__ZN3bbb9GG0000111E, "_ZN3bbb9GG0000111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0000111C1Ev(); |
| extern void _ZN3bbb9GG0000111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0000111E[] = { |
| NSPAIR(_ZN3bbb9GG0000111C1Ev), |
| NSPAIR(_ZN3bbb9GG0000111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0000111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000111E[]; |
| extern void _ZN3bbb9GG00001113fooEv(); |
| extern void _ZN3bbb9GG00001113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001113fooEv,_ZTv0_n16_N3bbb9GG00001113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001113fooEv,_ZThn16_N3bbb9GG00001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00001113barEv,_ZTv0_n20_N3bbb9GG00001113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00001113barEv,_ZThn16_N3bbb9GG00001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001113fooEv,_ZTv0_n12_N3bbb9GG00001113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001113fooEv,_ZThn28_N3bbb9GG00001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001113barEv,_ZTv0_n16_N3bbb9GG00001113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00001113barEv,_ZThn28_N3bbb9GG00001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00001113barEv,_ZTv0_n12_N3bbb9GG00001113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001113barEv,_ZThn36_N3bbb9GG00001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00001113fooEv,_ZTv0_n16_N3bbb9GG00001113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00001113fooEv,_ZThn36_N3bbb9GG00001113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0000111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00001113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00001113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001113fooEv,_ZTv0_n16_N3bbb9GG00001113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00001113barEv,_ZTv0_n20_N3bbb9GG00001113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001113fooEv,_ZTv0_n12_N3bbb9GG00001113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001113barEv,_ZTv0_n16_N3bbb9GG00001113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00001113barEv,_ZTv0_n12_N3bbb9GG00001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00001113fooEv,_ZTv0_n16_N3bbb9GG00001113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0000111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0000111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0000111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0000111E[] = { |
| {&(_ZTVN3bbb9GG0000111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0000111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0000111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0000111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0000111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0000111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0000111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0000111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0000111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0000111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0000111E[]; |
| static VTBL_ENTRY alt_thunk_names24[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001113barEv,_ZTv0_n12_N3bbb9GG00001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001113barEv,_ZThn36_N3bbb9GG00001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001113barEv,_ZTv0_n16_N3bbb9GG00001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001113barEv,_ZThn28_N3bbb9GG00001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00001113fooEv,_ZTv0_n12_N3bbb9GG00001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00001113fooEv,_ZThn28_N3bbb9GG00001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00001113barEv,_ZTv0_n20_N3bbb9GG00001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001113barEv,_ZThn16_N3bbb9GG00001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00001113fooEv,_ZTv0_n16_N3bbb9GG00001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00001113fooEv,_ZThn36_N3bbb9GG00001113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00001113fooEv,_ZThn16_N3bbb9GG00001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0000111E = { "_ZN3bbb9GG0000111E", // class name |
| bases__ZN3bbb9GG0000111E, 6, |
| &(vtc__ZN3bbb9GG0000111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0000111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0000111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0000111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0000111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names24, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001000 : virtual ::bbb::EE000 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00010003fooEv |
| virtual void bar(); // _ZN3bbb9GG00010003barEv |
| ~GG0001000(); // tgen |
| GG0001000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001000 ::foo(){vfunc_called(this, "_ZN3bbb9GG00010003fooEv");} |
| void bbb::GG0001000 ::bar(){vfunc_called(this, "_ZN3bbb9GG00010003barEv");} |
| bbb::GG0001000 ::~GG0001000(){ note_dtor("_ZN3bbb9GG0001000E", this);} // tgen |
| bbb::GG0001000 ::GG0001000(){ note_ctor("_ZN3bbb9GG0001000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001000E, buf); |
| ::bbb::GG0001000 *dp, &lv = *(dp=new (buf) ::bbb::GG0001000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001000E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0001000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0001000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0001000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001000E); |
| dp->::bbb::GG0001000::~GG0001000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001000E(Test__ZN3bbb9GG0001000E, "_ZN3bbb9GG0001000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001000C1Ev(); |
| extern void _ZN3bbb9GG0001000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001000E[] = { |
| NSPAIR(_ZN3bbb9GG0001000C1Ev), |
| NSPAIR(_ZN3bbb9GG0001000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0001000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001000E[]; |
| extern void _ZN3bbb9GG00010003barEv(); |
| extern void _ZN3bbb9GG00010003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010003fooEv,_ZTv0_n16_N3bbb9GG00010003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010003fooEv,_ZThn16_N3bbb9GG00010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00010003barEv,_ZTv0_n20_N3bbb9GG00010003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010003barEv,_ZThn16_N3bbb9GG00010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010003fooEv,_ZTv0_n12_N3bbb9GG00010003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010003fooEv,_ZThn28_N3bbb9GG00010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010003barEv,_ZTv0_n16_N3bbb9GG00010003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010003barEv,_ZThn28_N3bbb9GG00010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010003fooEv,_ZTv0_n12_N3bbb9GG00010003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010003fooEv,_ZThn36_N3bbb9GG00010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010003barEv,_ZTv0_n16_N3bbb9GG00010003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010003barEv,_ZThn36_N3bbb9GG00010003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00010003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00010003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010003fooEv,_ZTv0_n16_N3bbb9GG00010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00010003barEv,_ZTv0_n20_N3bbb9GG00010003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010003fooEv,_ZTv0_n12_N3bbb9GG00010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010003barEv,_ZTv0_n16_N3bbb9GG00010003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010003fooEv,_ZTv0_n12_N3bbb9GG00010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010003barEv,_ZTv0_n16_N3bbb9GG00010003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0001000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0001000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001000E[] = { |
| {&(_ZTVN3bbb9GG0001000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0001000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0001000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001000E[]; |
| static VTBL_ENTRY alt_thunk_names25[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010003barEv,_ZTv0_n16_N3bbb9GG00010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010003barEv,_ZThn36_N3bbb9GG00010003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010003barEv,_ZThn28_N3bbb9GG00010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00010003fooEv,_ZTv0_n12_N3bbb9GG00010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010003fooEv,_ZThn36_N3bbb9GG00010003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010003fooEv,_ZThn28_N3bbb9GG00010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00010003barEv,_ZTv0_n20_N3bbb9GG00010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010003barEv,_ZThn16_N3bbb9GG00010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010003fooEv,_ZTv0_n16_N3bbb9GG00010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010003fooEv,_ZThn16_N3bbb9GG00010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001000E = { "_ZN3bbb9GG0001000E", // class name |
| bases__ZN3bbb9GG0001000E, 6, |
| &(vtc__ZN3bbb9GG0001000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names25, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001001 : virtual ::bbb::EE000 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00010013barEv |
| virtual void foo(); // _ZN3bbb9GG00010013fooEv |
| ~GG0001001(); // tgen |
| GG0001001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001001 ::bar(){vfunc_called(this, "_ZN3bbb9GG00010013barEv");} |
| void bbb::GG0001001 ::foo(){vfunc_called(this, "_ZN3bbb9GG00010013fooEv");} |
| bbb::GG0001001 ::~GG0001001(){ note_dtor("_ZN3bbb9GG0001001E", this);} // tgen |
| bbb::GG0001001 ::GG0001001(){ note_ctor("_ZN3bbb9GG0001001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001001E, buf); |
| ::bbb::GG0001001 *dp, &lv = *(dp=new (buf) ::bbb::GG0001001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001001E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0001001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0001001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0001001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001001E); |
| dp->::bbb::GG0001001::~GG0001001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001001E(Test__ZN3bbb9GG0001001E, "_ZN3bbb9GG0001001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001001C1Ev(); |
| extern void _ZN3bbb9GG0001001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001001E[] = { |
| NSPAIR(_ZN3bbb9GG0001001C1Ev), |
| NSPAIR(_ZN3bbb9GG0001001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0001001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001001E[]; |
| extern void _ZN3bbb9GG00010013barEv(); |
| extern void _ZN3bbb9GG00010013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010013fooEv,_ZTv0_n16_N3bbb9GG00010013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010013fooEv,_ZThn16_N3bbb9GG00010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00010013barEv,_ZTv0_n20_N3bbb9GG00010013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010013barEv,_ZThn16_N3bbb9GG00010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010013fooEv,_ZTv0_n12_N3bbb9GG00010013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010013fooEv,_ZThn28_N3bbb9GG00010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010013barEv,_ZTv0_n16_N3bbb9GG00010013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010013barEv,_ZThn28_N3bbb9GG00010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010013fooEv,_ZTv0_n12_N3bbb9GG00010013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010013fooEv,_ZThn36_N3bbb9GG00010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010013barEv,_ZTv0_n16_N3bbb9GG00010013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010013barEv,_ZThn36_N3bbb9GG00010013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00010013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00010013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010013fooEv,_ZTv0_n16_N3bbb9GG00010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00010013barEv,_ZTv0_n20_N3bbb9GG00010013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010013fooEv,_ZTv0_n12_N3bbb9GG00010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010013barEv,_ZTv0_n16_N3bbb9GG00010013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010013fooEv,_ZTv0_n12_N3bbb9GG00010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010013barEv,_ZTv0_n16_N3bbb9GG00010013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0001001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0001001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001001E[] = { |
| {&(_ZTVN3bbb9GG0001001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0001001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0001001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001001E[]; |
| static VTBL_ENTRY alt_thunk_names26[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010013barEv,_ZTv0_n16_N3bbb9GG00010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010013barEv,_ZThn36_N3bbb9GG00010013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010013barEv,_ZThn28_N3bbb9GG00010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00010013fooEv,_ZTv0_n12_N3bbb9GG00010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010013fooEv,_ZThn36_N3bbb9GG00010013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010013fooEv,_ZThn28_N3bbb9GG00010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00010013barEv,_ZTv0_n20_N3bbb9GG00010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010013barEv,_ZThn16_N3bbb9GG00010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010013fooEv,_ZTv0_n16_N3bbb9GG00010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010013fooEv,_ZThn16_N3bbb9GG00010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001001E = { "_ZN3bbb9GG0001001E", // class name |
| bases__ZN3bbb9GG0001001E, 6, |
| &(vtc__ZN3bbb9GG0001001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names26, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001010 : virtual ::bbb::EE000 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00010103fooEv |
| virtual void bar(); // _ZN3bbb9GG00010103barEv |
| ~GG0001010(); // tgen |
| GG0001010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001010 ::foo(){vfunc_called(this, "_ZN3bbb9GG00010103fooEv");} |
| void bbb::GG0001010 ::bar(){vfunc_called(this, "_ZN3bbb9GG00010103barEv");} |
| bbb::GG0001010 ::~GG0001010(){ note_dtor("_ZN3bbb9GG0001010E", this);} // tgen |
| bbb::GG0001010 ::GG0001010(){ note_ctor("_ZN3bbb9GG0001010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001010E, buf); |
| ::bbb::GG0001010 *dp, &lv = *(dp=new (buf) ::bbb::GG0001010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001010E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0001010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0001010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0001010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001010E); |
| dp->::bbb::GG0001010::~GG0001010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001010E(Test__ZN3bbb9GG0001010E, "_ZN3bbb9GG0001010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001010C1Ev(); |
| extern void _ZN3bbb9GG0001010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001010E[] = { |
| NSPAIR(_ZN3bbb9GG0001010C1Ev), |
| NSPAIR(_ZN3bbb9GG0001010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0001010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001010E[]; |
| extern void _ZN3bbb9GG00010103barEv(); |
| extern void _ZN3bbb9GG00010103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010103fooEv,_ZTv0_n16_N3bbb9GG00010103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010103fooEv,_ZThn16_N3bbb9GG00010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00010103barEv,_ZTv0_n20_N3bbb9GG00010103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010103barEv,_ZThn16_N3bbb9GG00010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010103fooEv,_ZTv0_n12_N3bbb9GG00010103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010103fooEv,_ZThn28_N3bbb9GG00010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010103barEv,_ZTv0_n16_N3bbb9GG00010103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010103barEv,_ZThn28_N3bbb9GG00010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010103fooEv,_ZTv0_n12_N3bbb9GG00010103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010103fooEv,_ZThn36_N3bbb9GG00010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010103barEv,_ZTv0_n16_N3bbb9GG00010103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010103barEv,_ZThn36_N3bbb9GG00010103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00010103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00010103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010103fooEv,_ZTv0_n16_N3bbb9GG00010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00010103barEv,_ZTv0_n20_N3bbb9GG00010103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010103fooEv,_ZTv0_n12_N3bbb9GG00010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010103barEv,_ZTv0_n16_N3bbb9GG00010103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010103fooEv,_ZTv0_n12_N3bbb9GG00010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010103barEv,_ZTv0_n16_N3bbb9GG00010103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0001010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0001010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001010E[] = { |
| {&(_ZTVN3bbb9GG0001010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0001010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0001010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001010E[]; |
| static VTBL_ENTRY alt_thunk_names27[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010103barEv,_ZTv0_n16_N3bbb9GG00010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010103barEv,_ZThn36_N3bbb9GG00010103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010103barEv,_ZThn28_N3bbb9GG00010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00010103fooEv,_ZTv0_n12_N3bbb9GG00010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010103fooEv,_ZThn36_N3bbb9GG00010103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010103fooEv,_ZThn28_N3bbb9GG00010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00010103barEv,_ZTv0_n20_N3bbb9GG00010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010103barEv,_ZThn16_N3bbb9GG00010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010103fooEv,_ZTv0_n16_N3bbb9GG00010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010103fooEv,_ZThn16_N3bbb9GG00010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001010E = { "_ZN3bbb9GG0001010E", // class name |
| bases__ZN3bbb9GG0001010E, 6, |
| &(vtc__ZN3bbb9GG0001010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names27, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001011 : virtual ::bbb::EE000 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00010113barEv |
| virtual void foo(); // _ZN3bbb9GG00010113fooEv |
| ~GG0001011(); // tgen |
| GG0001011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001011 ::bar(){vfunc_called(this, "_ZN3bbb9GG00010113barEv");} |
| void bbb::GG0001011 ::foo(){vfunc_called(this, "_ZN3bbb9GG00010113fooEv");} |
| bbb::GG0001011 ::~GG0001011(){ note_dtor("_ZN3bbb9GG0001011E", this);} // tgen |
| bbb::GG0001011 ::GG0001011(){ note_ctor("_ZN3bbb9GG0001011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001011E, buf); |
| ::bbb::GG0001011 *dp, &lv = *(dp=new (buf) ::bbb::GG0001011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001011E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0001011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0001011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0001011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001011E); |
| dp->::bbb::GG0001011::~GG0001011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001011E(Test__ZN3bbb9GG0001011E, "_ZN3bbb9GG0001011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001011C1Ev(); |
| extern void _ZN3bbb9GG0001011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001011E[] = { |
| NSPAIR(_ZN3bbb9GG0001011C1Ev), |
| NSPAIR(_ZN3bbb9GG0001011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0001011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001011E[]; |
| extern void _ZN3bbb9GG00010113barEv(); |
| extern void _ZN3bbb9GG00010113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010113fooEv,_ZTv0_n16_N3bbb9GG00010113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010113fooEv,_ZThn16_N3bbb9GG00010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00010113barEv,_ZTv0_n20_N3bbb9GG00010113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00010113barEv,_ZThn16_N3bbb9GG00010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010113fooEv,_ZTv0_n12_N3bbb9GG00010113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010113fooEv,_ZThn28_N3bbb9GG00010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010113barEv,_ZTv0_n16_N3bbb9GG00010113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00010113barEv,_ZThn28_N3bbb9GG00010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00010113fooEv,_ZTv0_n12_N3bbb9GG00010113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010113fooEv,_ZThn36_N3bbb9GG00010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00010113barEv,_ZTv0_n16_N3bbb9GG00010113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00010113barEv,_ZThn36_N3bbb9GG00010113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00010113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00010113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010113fooEv,_ZTv0_n16_N3bbb9GG00010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00010113barEv,_ZTv0_n20_N3bbb9GG00010113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010113fooEv,_ZTv0_n12_N3bbb9GG00010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010113barEv,_ZTv0_n16_N3bbb9GG00010113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00010113fooEv,_ZTv0_n12_N3bbb9GG00010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00010113barEv,_ZTv0_n16_N3bbb9GG00010113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0001011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0001011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001011E[] = { |
| {&(_ZTVN3bbb9GG0001011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0001011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0001011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001011E[]; |
| static VTBL_ENTRY alt_thunk_names28[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010113barEv,_ZTv0_n16_N3bbb9GG00010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010113barEv,_ZThn36_N3bbb9GG00010113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010113barEv,_ZThn28_N3bbb9GG00010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00010113fooEv,_ZTv0_n12_N3bbb9GG00010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00010113fooEv,_ZThn36_N3bbb9GG00010113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00010113fooEv,_ZThn28_N3bbb9GG00010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00010113barEv,_ZTv0_n20_N3bbb9GG00010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010113barEv,_ZThn16_N3bbb9GG00010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00010113fooEv,_ZTv0_n16_N3bbb9GG00010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00010113fooEv,_ZThn16_N3bbb9GG00010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001011E = { "_ZN3bbb9GG0001011E", // class name |
| bases__ZN3bbb9GG0001011E, 6, |
| &(vtc__ZN3bbb9GG0001011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names28, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001100 : virtual ::bbb::EE000 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00011003fooEv |
| virtual void bar(); // _ZN3bbb9GG00011003barEv |
| ~GG0001100(); // tgen |
| GG0001100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001100 ::foo(){vfunc_called(this, "_ZN3bbb9GG00011003fooEv");} |
| void bbb::GG0001100 ::bar(){vfunc_called(this, "_ZN3bbb9GG00011003barEv");} |
| bbb::GG0001100 ::~GG0001100(){ note_dtor("_ZN3bbb9GG0001100E", this);} // tgen |
| bbb::GG0001100 ::GG0001100(){ note_ctor("_ZN3bbb9GG0001100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001100E, buf); |
| ::bbb::GG0001100 *dp, &lv = *(dp=new (buf) ::bbb::GG0001100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001100E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0001100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0001100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0001100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001100E); |
| dp->::bbb::GG0001100::~GG0001100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001100E(Test__ZN3bbb9GG0001100E, "_ZN3bbb9GG0001100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001100C1Ev(); |
| extern void _ZN3bbb9GG0001100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001100E[] = { |
| NSPAIR(_ZN3bbb9GG0001100C1Ev), |
| NSPAIR(_ZN3bbb9GG0001100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0001100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001100E[]; |
| extern void _ZN3bbb9GG00011003barEv(); |
| extern void _ZN3bbb9GG00011003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011003fooEv,_ZTv0_n16_N3bbb9GG00011003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011003fooEv,_ZThn16_N3bbb9GG00011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00011003barEv,_ZTv0_n20_N3bbb9GG00011003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011003barEv,_ZThn16_N3bbb9GG00011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011003fooEv,_ZTv0_n12_N3bbb9GG00011003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011003fooEv,_ZThn28_N3bbb9GG00011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011003barEv,_ZTv0_n16_N3bbb9GG00011003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011003barEv,_ZThn28_N3bbb9GG00011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011003barEv,_ZTv0_n12_N3bbb9GG00011003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011003barEv,_ZThn36_N3bbb9GG00011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011003fooEv,_ZTv0_n16_N3bbb9GG00011003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011003fooEv,_ZThn36_N3bbb9GG00011003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00011003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00011003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011003fooEv,_ZTv0_n16_N3bbb9GG00011003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00011003barEv,_ZTv0_n20_N3bbb9GG00011003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011003fooEv,_ZTv0_n12_N3bbb9GG00011003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011003barEv,_ZTv0_n16_N3bbb9GG00011003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011003barEv,_ZTv0_n12_N3bbb9GG00011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011003fooEv,_ZTv0_n16_N3bbb9GG00011003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0001100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0001100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001100E[] = { |
| {&(_ZTVN3bbb9GG0001100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0001100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0001100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001100E[]; |
| static VTBL_ENTRY alt_thunk_names29[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011003barEv,_ZTv0_n12_N3bbb9GG00011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011003barEv,_ZThn36_N3bbb9GG00011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011003barEv,_ZTv0_n16_N3bbb9GG00011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011003barEv,_ZThn28_N3bbb9GG00011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011003fooEv,_ZTv0_n12_N3bbb9GG00011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011003fooEv,_ZThn28_N3bbb9GG00011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00011003barEv,_ZTv0_n20_N3bbb9GG00011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011003barEv,_ZThn16_N3bbb9GG00011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011003fooEv,_ZTv0_n16_N3bbb9GG00011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011003fooEv,_ZThn36_N3bbb9GG00011003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011003fooEv,_ZThn16_N3bbb9GG00011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001100E = { "_ZN3bbb9GG0001100E", // class name |
| bases__ZN3bbb9GG0001100E, 6, |
| &(vtc__ZN3bbb9GG0001100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names29, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001101 : virtual ::bbb::EE000 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00011013barEv |
| virtual void foo(); // _ZN3bbb9GG00011013fooEv |
| ~GG0001101(); // tgen |
| GG0001101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001101 ::bar(){vfunc_called(this, "_ZN3bbb9GG00011013barEv");} |
| void bbb::GG0001101 ::foo(){vfunc_called(this, "_ZN3bbb9GG00011013fooEv");} |
| bbb::GG0001101 ::~GG0001101(){ note_dtor("_ZN3bbb9GG0001101E", this);} // tgen |
| bbb::GG0001101 ::GG0001101(){ note_ctor("_ZN3bbb9GG0001101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001101E, buf); |
| ::bbb::GG0001101 *dp, &lv = *(dp=new (buf) ::bbb::GG0001101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001101E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0001101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0001101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0001101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001101E); |
| dp->::bbb::GG0001101::~GG0001101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001101E(Test__ZN3bbb9GG0001101E, "_ZN3bbb9GG0001101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001101C1Ev(); |
| extern void _ZN3bbb9GG0001101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001101E[] = { |
| NSPAIR(_ZN3bbb9GG0001101C1Ev), |
| NSPAIR(_ZN3bbb9GG0001101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0001101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001101E[]; |
| extern void _ZN3bbb9GG00011013barEv(); |
| extern void _ZN3bbb9GG00011013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011013fooEv,_ZTv0_n16_N3bbb9GG00011013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011013fooEv,_ZThn16_N3bbb9GG00011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00011013barEv,_ZTv0_n20_N3bbb9GG00011013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011013barEv,_ZThn16_N3bbb9GG00011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011013fooEv,_ZTv0_n12_N3bbb9GG00011013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011013fooEv,_ZThn28_N3bbb9GG00011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011013barEv,_ZTv0_n16_N3bbb9GG00011013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011013barEv,_ZThn28_N3bbb9GG00011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011013barEv,_ZTv0_n12_N3bbb9GG00011013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011013barEv,_ZThn36_N3bbb9GG00011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011013fooEv,_ZTv0_n16_N3bbb9GG00011013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011013fooEv,_ZThn36_N3bbb9GG00011013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00011013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00011013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011013fooEv,_ZTv0_n16_N3bbb9GG00011013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00011013barEv,_ZTv0_n20_N3bbb9GG00011013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011013fooEv,_ZTv0_n12_N3bbb9GG00011013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011013barEv,_ZTv0_n16_N3bbb9GG00011013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011013barEv,_ZTv0_n12_N3bbb9GG00011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011013fooEv,_ZTv0_n16_N3bbb9GG00011013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0001101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0001101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001101E[] = { |
| {&(_ZTVN3bbb9GG0001101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0001101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0001101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001101E[]; |
| static VTBL_ENTRY alt_thunk_names30[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011013barEv,_ZTv0_n12_N3bbb9GG00011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011013barEv,_ZThn36_N3bbb9GG00011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011013barEv,_ZTv0_n16_N3bbb9GG00011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011013barEv,_ZThn28_N3bbb9GG00011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011013fooEv,_ZTv0_n12_N3bbb9GG00011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011013fooEv,_ZThn28_N3bbb9GG00011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00011013barEv,_ZTv0_n20_N3bbb9GG00011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011013barEv,_ZThn16_N3bbb9GG00011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011013fooEv,_ZTv0_n16_N3bbb9GG00011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011013fooEv,_ZThn36_N3bbb9GG00011013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011013fooEv,_ZThn16_N3bbb9GG00011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001101E = { "_ZN3bbb9GG0001101E", // class name |
| bases__ZN3bbb9GG0001101E, 6, |
| &(vtc__ZN3bbb9GG0001101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names30, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001110 : virtual ::bbb::EE000 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00011103fooEv |
| virtual void bar(); // _ZN3bbb9GG00011103barEv |
| ~GG0001110(); // tgen |
| GG0001110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001110 ::foo(){vfunc_called(this, "_ZN3bbb9GG00011103fooEv");} |
| void bbb::GG0001110 ::bar(){vfunc_called(this, "_ZN3bbb9GG00011103barEv");} |
| bbb::GG0001110 ::~GG0001110(){ note_dtor("_ZN3bbb9GG0001110E", this);} // tgen |
| bbb::GG0001110 ::GG0001110(){ note_ctor("_ZN3bbb9GG0001110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001110E, buf); |
| ::bbb::GG0001110 *dp, &lv = *(dp=new (buf) ::bbb::GG0001110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001110E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0001110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0001110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0001110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001110E); |
| dp->::bbb::GG0001110::~GG0001110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001110E(Test__ZN3bbb9GG0001110E, "_ZN3bbb9GG0001110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001110C1Ev(); |
| extern void _ZN3bbb9GG0001110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001110E[] = { |
| NSPAIR(_ZN3bbb9GG0001110C1Ev), |
| NSPAIR(_ZN3bbb9GG0001110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0001110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001110E[]; |
| extern void _ZN3bbb9GG00011103barEv(); |
| extern void _ZN3bbb9GG00011103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011103fooEv,_ZTv0_n16_N3bbb9GG00011103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011103fooEv,_ZThn16_N3bbb9GG00011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00011103barEv,_ZTv0_n20_N3bbb9GG00011103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011103barEv,_ZThn16_N3bbb9GG00011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011103fooEv,_ZTv0_n12_N3bbb9GG00011103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011103fooEv,_ZThn28_N3bbb9GG00011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011103barEv,_ZTv0_n16_N3bbb9GG00011103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011103barEv,_ZThn28_N3bbb9GG00011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011103barEv,_ZTv0_n12_N3bbb9GG00011103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011103barEv,_ZThn36_N3bbb9GG00011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011103fooEv,_ZTv0_n16_N3bbb9GG00011103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011103fooEv,_ZThn36_N3bbb9GG00011103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00011103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00011103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011103fooEv,_ZTv0_n16_N3bbb9GG00011103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00011103barEv,_ZTv0_n20_N3bbb9GG00011103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011103fooEv,_ZTv0_n12_N3bbb9GG00011103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011103barEv,_ZTv0_n16_N3bbb9GG00011103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011103barEv,_ZTv0_n12_N3bbb9GG00011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011103fooEv,_ZTv0_n16_N3bbb9GG00011103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0001110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0001110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001110E[] = { |
| {&(_ZTVN3bbb9GG0001110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0001110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0001110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001110E[]; |
| static VTBL_ENTRY alt_thunk_names31[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011103barEv,_ZTv0_n12_N3bbb9GG00011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011103barEv,_ZThn36_N3bbb9GG00011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011103barEv,_ZTv0_n16_N3bbb9GG00011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011103barEv,_ZThn28_N3bbb9GG00011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011103fooEv,_ZTv0_n12_N3bbb9GG00011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011103fooEv,_ZThn28_N3bbb9GG00011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00011103barEv,_ZTv0_n20_N3bbb9GG00011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011103barEv,_ZThn16_N3bbb9GG00011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011103fooEv,_ZTv0_n16_N3bbb9GG00011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011103fooEv,_ZThn36_N3bbb9GG00011103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011103fooEv,_ZThn16_N3bbb9GG00011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001110E = { "_ZN3bbb9GG0001110E", // class name |
| bases__ZN3bbb9GG0001110E, 6, |
| &(vtc__ZN3bbb9GG0001110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names31, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0001111 : virtual ::bbb::EE000 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00011113barEv |
| virtual void foo(); // _ZN3bbb9GG00011113fooEv |
| ~GG0001111(); // tgen |
| GG0001111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0001111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0001111 ::bar(){vfunc_called(this, "_ZN3bbb9GG00011113barEv");} |
| void bbb::GG0001111 ::foo(){vfunc_called(this, "_ZN3bbb9GG00011113fooEv");} |
| bbb::GG0001111 ::~GG0001111(){ note_dtor("_ZN3bbb9GG0001111E", this);} // tgen |
| bbb::GG0001111 ::GG0001111(){ note_ctor("_ZN3bbb9GG0001111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0001111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0001111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0001111E, buf); |
| ::bbb::GG0001111 *dp, &lv = *(dp=new (buf) ::bbb::GG0001111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0001111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0001111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE000*), ABISELECT(40,28), "_ZN3bbb9GG0001111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001111E"); |
| check_base_class_offset(lv, (::bbb::EE000*), ABISELECT(24,16), "_ZN3bbb9GG0001111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0001111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0001111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0001111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0001111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0001111E); |
| dp->::bbb::GG0001111::~GG0001111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0001111E(Test__ZN3bbb9GG0001111E, "_ZN3bbb9GG0001111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0001111C1Ev(); |
| extern void _ZN3bbb9GG0001111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0001111E[] = { |
| NSPAIR(_ZN3bbb9GG0001111C1Ev), |
| NSPAIR(_ZN3bbb9GG0001111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE000E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE000E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0001111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE000E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001111E[]; |
| extern void _ZN3bbb9GG00011113barEv(); |
| extern void _ZN3bbb9GG00011113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011113fooEv,_ZTv0_n16_N3bbb9GG00011113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011113fooEv,_ZThn16_N3bbb9GG00011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00011113barEv,_ZTv0_n20_N3bbb9GG00011113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00011113barEv,_ZThn16_N3bbb9GG00011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011113fooEv,_ZTv0_n12_N3bbb9GG00011113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011113fooEv,_ZThn28_N3bbb9GG00011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011113barEv,_ZTv0_n16_N3bbb9GG00011113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00011113barEv,_ZThn28_N3bbb9GG00011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00011113barEv,_ZTv0_n12_N3bbb9GG00011113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011113barEv,_ZThn36_N3bbb9GG00011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00011113fooEv,_ZTv0_n16_N3bbb9GG00011113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00011113fooEv,_ZThn36_N3bbb9GG00011113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0001111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00011113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00011113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011113fooEv,_ZTv0_n16_N3bbb9GG00011113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00011113barEv,_ZTv0_n20_N3bbb9GG00011113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011113fooEv,_ZTv0_n12_N3bbb9GG00011113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011113barEv,_ZTv0_n16_N3bbb9GG00011113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00011113barEv,_ZTv0_n12_N3bbb9GG00011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00011113fooEv,_ZTv0_n16_N3bbb9GG00011113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0001111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0001111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0003fooEv(); |
| extern void _ZN3bbb5EE0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE000E__NS_9GG0001111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0001111E[] = { |
| {&(_ZTVN3bbb9GG0001111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0001111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0001111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0001111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0001111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0001111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE000E__NS_9GG0001111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE000E__NS_9GG0001111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0001111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0001111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0001111E[]; |
| static VTBL_ENTRY alt_thunk_names32[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0003barEv,_ZTv0_n16_N3bbb5EE0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003barEv,_ZThn12_N3bbb5EE0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0003fooEv,_ZTv0_n12_N3bbb5EE0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0003fooEv,_ZThn12_N3bbb5EE0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011113barEv,_ZTv0_n12_N3bbb9GG00011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011113barEv,_ZThn36_N3bbb9GG00011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011113barEv,_ZTv0_n16_N3bbb9GG00011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011113barEv,_ZThn28_N3bbb9GG00011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00011113fooEv,_ZTv0_n12_N3bbb9GG00011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00011113fooEv,_ZThn28_N3bbb9GG00011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00011113barEv,_ZTv0_n20_N3bbb9GG00011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011113barEv,_ZThn16_N3bbb9GG00011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00011113fooEv,_ZTv0_n16_N3bbb9GG00011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00011113fooEv,_ZThn36_N3bbb9GG00011113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00011113fooEv,_ZThn16_N3bbb9GG00011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0001111E = { "_ZN3bbb9GG0001111E", // class name |
| bases__ZN3bbb9GG0001111E, 6, |
| &(vtc__ZN3bbb9GG0001111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0001111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0001111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0001111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0001111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names32, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010000 : virtual ::bbb::EE001 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00100003fooEv |
| virtual void bar(); // _ZN3bbb9GG00100003barEv |
| ~GG0010000(); // tgen |
| GG0010000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010000 ::foo(){vfunc_called(this, "_ZN3bbb9GG00100003fooEv");} |
| void bbb::GG0010000 ::bar(){vfunc_called(this, "_ZN3bbb9GG00100003barEv");} |
| bbb::GG0010000 ::~GG0010000(){ note_dtor("_ZN3bbb9GG0010000E", this);} // tgen |
| bbb::GG0010000 ::GG0010000(){ note_ctor("_ZN3bbb9GG0010000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010000E, buf); |
| ::bbb::GG0010000 *dp, &lv = *(dp=new (buf) ::bbb::GG0010000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010000E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0010000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0010000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0010000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010000E); |
| dp->::bbb::GG0010000::~GG0010000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010000E(Test__ZN3bbb9GG0010000E, "_ZN3bbb9GG0010000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010000C1Ev(); |
| extern void _ZN3bbb9GG0010000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010000E[] = { |
| NSPAIR(_ZN3bbb9GG0010000C1Ev), |
| NSPAIR(_ZN3bbb9GG0010000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0010000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010000E[]; |
| extern void _ZN3bbb9GG00100003fooEv(); |
| extern void _ZN3bbb9GG00100003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100003fooEv,_ZTv0_n16_N3bbb9GG00100003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100003fooEv,_ZThn16_N3bbb9GG00100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00100003barEv,_ZTv0_n20_N3bbb9GG00100003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100003barEv,_ZThn16_N3bbb9GG00100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100003fooEv,_ZTv0_n12_N3bbb9GG00100003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100003fooEv,_ZThn28_N3bbb9GG00100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100003barEv,_ZTv0_n16_N3bbb9GG00100003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100003barEv,_ZThn28_N3bbb9GG00100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100003fooEv,_ZTv0_n12_N3bbb9GG00100003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100003fooEv,_ZThn36_N3bbb9GG00100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100003barEv,_ZTv0_n16_N3bbb9GG00100003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100003barEv,_ZThn36_N3bbb9GG00100003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00100003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00100003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100003fooEv,_ZTv0_n16_N3bbb9GG00100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00100003barEv,_ZTv0_n20_N3bbb9GG00100003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100003fooEv,_ZTv0_n12_N3bbb9GG00100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100003barEv,_ZTv0_n16_N3bbb9GG00100003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100003fooEv,_ZTv0_n12_N3bbb9GG00100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100003barEv,_ZTv0_n16_N3bbb9GG00100003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0010000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0010000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010000E[] = { |
| {&(_ZTVN3bbb9GG0010000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0010000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0010000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010000E[]; |
| static VTBL_ENTRY alt_thunk_names33[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100003barEv,_ZTv0_n16_N3bbb9GG00100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100003barEv,_ZThn36_N3bbb9GG00100003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100003barEv,_ZThn28_N3bbb9GG00100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00100003fooEv,_ZTv0_n12_N3bbb9GG00100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100003fooEv,_ZThn36_N3bbb9GG00100003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100003fooEv,_ZThn28_N3bbb9GG00100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00100003barEv,_ZTv0_n20_N3bbb9GG00100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100003barEv,_ZThn16_N3bbb9GG00100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100003fooEv,_ZTv0_n16_N3bbb9GG00100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100003fooEv,_ZThn16_N3bbb9GG00100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010000E = { "_ZN3bbb9GG0010000E", // class name |
| bases__ZN3bbb9GG0010000E, 6, |
| &(vtc__ZN3bbb9GG0010000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names33, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010001 : virtual ::bbb::EE001 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00100013barEv |
| virtual void foo(); // _ZN3bbb9GG00100013fooEv |
| ~GG0010001(); // tgen |
| GG0010001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010001 ::bar(){vfunc_called(this, "_ZN3bbb9GG00100013barEv");} |
| void bbb::GG0010001 ::foo(){vfunc_called(this, "_ZN3bbb9GG00100013fooEv");} |
| bbb::GG0010001 ::~GG0010001(){ note_dtor("_ZN3bbb9GG0010001E", this);} // tgen |
| bbb::GG0010001 ::GG0010001(){ note_ctor("_ZN3bbb9GG0010001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010001E, buf); |
| ::bbb::GG0010001 *dp, &lv = *(dp=new (buf) ::bbb::GG0010001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010001E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0010001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0010001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0010001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010001E); |
| dp->::bbb::GG0010001::~GG0010001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010001E(Test__ZN3bbb9GG0010001E, "_ZN3bbb9GG0010001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010001C1Ev(); |
| extern void _ZN3bbb9GG0010001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010001E[] = { |
| NSPAIR(_ZN3bbb9GG0010001C1Ev), |
| NSPAIR(_ZN3bbb9GG0010001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0010001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010001E[]; |
| extern void _ZN3bbb9GG00100013fooEv(); |
| extern void _ZN3bbb9GG00100013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100013fooEv,_ZTv0_n16_N3bbb9GG00100013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100013fooEv,_ZThn16_N3bbb9GG00100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00100013barEv,_ZTv0_n20_N3bbb9GG00100013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100013barEv,_ZThn16_N3bbb9GG00100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100013fooEv,_ZTv0_n12_N3bbb9GG00100013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100013fooEv,_ZThn28_N3bbb9GG00100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100013barEv,_ZTv0_n16_N3bbb9GG00100013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100013barEv,_ZThn28_N3bbb9GG00100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100013fooEv,_ZTv0_n12_N3bbb9GG00100013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100013fooEv,_ZThn36_N3bbb9GG00100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100013barEv,_ZTv0_n16_N3bbb9GG00100013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100013barEv,_ZThn36_N3bbb9GG00100013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00100013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00100013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100013fooEv,_ZTv0_n16_N3bbb9GG00100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00100013barEv,_ZTv0_n20_N3bbb9GG00100013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100013fooEv,_ZTv0_n12_N3bbb9GG00100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100013barEv,_ZTv0_n16_N3bbb9GG00100013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100013fooEv,_ZTv0_n12_N3bbb9GG00100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100013barEv,_ZTv0_n16_N3bbb9GG00100013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0010001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0010001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010001E[] = { |
| {&(_ZTVN3bbb9GG0010001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0010001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0010001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010001E[]; |
| static VTBL_ENTRY alt_thunk_names34[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100013barEv,_ZTv0_n16_N3bbb9GG00100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100013barEv,_ZThn36_N3bbb9GG00100013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100013barEv,_ZThn28_N3bbb9GG00100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00100013fooEv,_ZTv0_n12_N3bbb9GG00100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100013fooEv,_ZThn36_N3bbb9GG00100013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100013fooEv,_ZThn28_N3bbb9GG00100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00100013barEv,_ZTv0_n20_N3bbb9GG00100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100013barEv,_ZThn16_N3bbb9GG00100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100013fooEv,_ZTv0_n16_N3bbb9GG00100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100013fooEv,_ZThn16_N3bbb9GG00100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010001E = { "_ZN3bbb9GG0010001E", // class name |
| bases__ZN3bbb9GG0010001E, 6, |
| &(vtc__ZN3bbb9GG0010001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names34, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010010 : virtual ::bbb::EE001 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00100103fooEv |
| virtual void bar(); // _ZN3bbb9GG00100103barEv |
| ~GG0010010(); // tgen |
| GG0010010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010010 ::foo(){vfunc_called(this, "_ZN3bbb9GG00100103fooEv");} |
| void bbb::GG0010010 ::bar(){vfunc_called(this, "_ZN3bbb9GG00100103barEv");} |
| bbb::GG0010010 ::~GG0010010(){ note_dtor("_ZN3bbb9GG0010010E", this);} // tgen |
| bbb::GG0010010 ::GG0010010(){ note_ctor("_ZN3bbb9GG0010010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010010E, buf); |
| ::bbb::GG0010010 *dp, &lv = *(dp=new (buf) ::bbb::GG0010010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010010E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0010010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0010010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0010010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010010E); |
| dp->::bbb::GG0010010::~GG0010010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010010E(Test__ZN3bbb9GG0010010E, "_ZN3bbb9GG0010010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010010C1Ev(); |
| extern void _ZN3bbb9GG0010010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010010E[] = { |
| NSPAIR(_ZN3bbb9GG0010010C1Ev), |
| NSPAIR(_ZN3bbb9GG0010010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0010010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010010E[]; |
| extern void _ZN3bbb9GG00100103fooEv(); |
| extern void _ZN3bbb9GG00100103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100103fooEv,_ZTv0_n16_N3bbb9GG00100103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100103fooEv,_ZThn16_N3bbb9GG00100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00100103barEv,_ZTv0_n20_N3bbb9GG00100103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100103barEv,_ZThn16_N3bbb9GG00100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100103fooEv,_ZTv0_n12_N3bbb9GG00100103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100103fooEv,_ZThn28_N3bbb9GG00100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100103barEv,_ZTv0_n16_N3bbb9GG00100103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100103barEv,_ZThn28_N3bbb9GG00100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100103fooEv,_ZTv0_n12_N3bbb9GG00100103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100103fooEv,_ZThn36_N3bbb9GG00100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100103barEv,_ZTv0_n16_N3bbb9GG00100103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100103barEv,_ZThn36_N3bbb9GG00100103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00100103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00100103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100103fooEv,_ZTv0_n16_N3bbb9GG00100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00100103barEv,_ZTv0_n20_N3bbb9GG00100103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100103fooEv,_ZTv0_n12_N3bbb9GG00100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100103barEv,_ZTv0_n16_N3bbb9GG00100103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100103fooEv,_ZTv0_n12_N3bbb9GG00100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100103barEv,_ZTv0_n16_N3bbb9GG00100103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0010010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0010010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010010E[] = { |
| {&(_ZTVN3bbb9GG0010010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0010010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0010010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010010E[]; |
| static VTBL_ENTRY alt_thunk_names35[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100103barEv,_ZTv0_n16_N3bbb9GG00100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100103barEv,_ZThn36_N3bbb9GG00100103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100103barEv,_ZThn28_N3bbb9GG00100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00100103fooEv,_ZTv0_n12_N3bbb9GG00100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100103fooEv,_ZThn36_N3bbb9GG00100103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100103fooEv,_ZThn28_N3bbb9GG00100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00100103barEv,_ZTv0_n20_N3bbb9GG00100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100103barEv,_ZThn16_N3bbb9GG00100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100103fooEv,_ZTv0_n16_N3bbb9GG00100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100103fooEv,_ZThn16_N3bbb9GG00100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010010E = { "_ZN3bbb9GG0010010E", // class name |
| bases__ZN3bbb9GG0010010E, 6, |
| &(vtc__ZN3bbb9GG0010010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names35, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010011 : virtual ::bbb::EE001 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00100113barEv |
| virtual void foo(); // _ZN3bbb9GG00100113fooEv |
| ~GG0010011(); // tgen |
| GG0010011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010011 ::bar(){vfunc_called(this, "_ZN3bbb9GG00100113barEv");} |
| void bbb::GG0010011 ::foo(){vfunc_called(this, "_ZN3bbb9GG00100113fooEv");} |
| bbb::GG0010011 ::~GG0010011(){ note_dtor("_ZN3bbb9GG0010011E", this);} // tgen |
| bbb::GG0010011 ::GG0010011(){ note_ctor("_ZN3bbb9GG0010011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010011E, buf); |
| ::bbb::GG0010011 *dp, &lv = *(dp=new (buf) ::bbb::GG0010011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010011E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0010011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0010011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0010011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010011E); |
| dp->::bbb::GG0010011::~GG0010011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010011E(Test__ZN3bbb9GG0010011E, "_ZN3bbb9GG0010011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010011C1Ev(); |
| extern void _ZN3bbb9GG0010011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010011E[] = { |
| NSPAIR(_ZN3bbb9GG0010011C1Ev), |
| NSPAIR(_ZN3bbb9GG0010011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0010011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010011E[]; |
| extern void _ZN3bbb9GG00100113fooEv(); |
| extern void _ZN3bbb9GG00100113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100113fooEv,_ZTv0_n16_N3bbb9GG00100113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100113fooEv,_ZThn16_N3bbb9GG00100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00100113barEv,_ZTv0_n20_N3bbb9GG00100113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00100113barEv,_ZThn16_N3bbb9GG00100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100113fooEv,_ZTv0_n12_N3bbb9GG00100113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100113fooEv,_ZThn28_N3bbb9GG00100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100113barEv,_ZTv0_n16_N3bbb9GG00100113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00100113barEv,_ZThn28_N3bbb9GG00100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00100113fooEv,_ZTv0_n12_N3bbb9GG00100113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100113fooEv,_ZThn36_N3bbb9GG00100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00100113barEv,_ZTv0_n16_N3bbb9GG00100113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00100113barEv,_ZThn36_N3bbb9GG00100113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00100113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00100113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100113fooEv,_ZTv0_n16_N3bbb9GG00100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00100113barEv,_ZTv0_n20_N3bbb9GG00100113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100113fooEv,_ZTv0_n12_N3bbb9GG00100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100113barEv,_ZTv0_n16_N3bbb9GG00100113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00100113fooEv,_ZTv0_n12_N3bbb9GG00100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00100113barEv,_ZTv0_n16_N3bbb9GG00100113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0010011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0010011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010011E[] = { |
| {&(_ZTVN3bbb9GG0010011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0010011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0010011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010011E[]; |
| static VTBL_ENTRY alt_thunk_names36[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100113barEv,_ZTv0_n16_N3bbb9GG00100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100113barEv,_ZThn36_N3bbb9GG00100113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100113barEv,_ZThn28_N3bbb9GG00100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00100113fooEv,_ZTv0_n12_N3bbb9GG00100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00100113fooEv,_ZThn36_N3bbb9GG00100113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00100113fooEv,_ZThn28_N3bbb9GG00100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00100113barEv,_ZTv0_n20_N3bbb9GG00100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100113barEv,_ZThn16_N3bbb9GG00100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00100113fooEv,_ZTv0_n16_N3bbb9GG00100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00100113fooEv,_ZThn16_N3bbb9GG00100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010011E = { "_ZN3bbb9GG0010011E", // class name |
| bases__ZN3bbb9GG0010011E, 6, |
| &(vtc__ZN3bbb9GG0010011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names36, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010100 : virtual ::bbb::EE001 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00101003fooEv |
| virtual void bar(); // _ZN3bbb9GG00101003barEv |
| ~GG0010100(); // tgen |
| GG0010100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010100 ::foo(){vfunc_called(this, "_ZN3bbb9GG00101003fooEv");} |
| void bbb::GG0010100 ::bar(){vfunc_called(this, "_ZN3bbb9GG00101003barEv");} |
| bbb::GG0010100 ::~GG0010100(){ note_dtor("_ZN3bbb9GG0010100E", this);} // tgen |
| bbb::GG0010100 ::GG0010100(){ note_ctor("_ZN3bbb9GG0010100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010100E, buf); |
| ::bbb::GG0010100 *dp, &lv = *(dp=new (buf) ::bbb::GG0010100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010100E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0010100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0010100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0010100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010100E); |
| dp->::bbb::GG0010100::~GG0010100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010100E(Test__ZN3bbb9GG0010100E, "_ZN3bbb9GG0010100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010100C1Ev(); |
| extern void _ZN3bbb9GG0010100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010100E[] = { |
| NSPAIR(_ZN3bbb9GG0010100C1Ev), |
| NSPAIR(_ZN3bbb9GG0010100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0010100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010100E[]; |
| extern void _ZN3bbb9GG00101003fooEv(); |
| extern void _ZN3bbb9GG00101003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101003fooEv,_ZTv0_n16_N3bbb9GG00101003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101003fooEv,_ZThn16_N3bbb9GG00101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00101003barEv,_ZTv0_n20_N3bbb9GG00101003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101003barEv,_ZThn16_N3bbb9GG00101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101003fooEv,_ZTv0_n12_N3bbb9GG00101003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101003fooEv,_ZThn28_N3bbb9GG00101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101003barEv,_ZTv0_n16_N3bbb9GG00101003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101003barEv,_ZThn28_N3bbb9GG00101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101003barEv,_ZTv0_n12_N3bbb9GG00101003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101003barEv,_ZThn36_N3bbb9GG00101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101003fooEv,_ZTv0_n16_N3bbb9GG00101003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101003fooEv,_ZThn36_N3bbb9GG00101003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00101003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00101003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101003fooEv,_ZTv0_n16_N3bbb9GG00101003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00101003barEv,_ZTv0_n20_N3bbb9GG00101003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101003fooEv,_ZTv0_n12_N3bbb9GG00101003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101003barEv,_ZTv0_n16_N3bbb9GG00101003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101003barEv,_ZTv0_n12_N3bbb9GG00101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101003fooEv,_ZTv0_n16_N3bbb9GG00101003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0010100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0010100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010100E[] = { |
| {&(_ZTVN3bbb9GG0010100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0010100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0010100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010100E[]; |
| static VTBL_ENTRY alt_thunk_names37[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101003barEv,_ZTv0_n12_N3bbb9GG00101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101003barEv,_ZThn36_N3bbb9GG00101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101003barEv,_ZTv0_n16_N3bbb9GG00101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101003barEv,_ZThn28_N3bbb9GG00101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101003fooEv,_ZTv0_n12_N3bbb9GG00101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101003fooEv,_ZThn28_N3bbb9GG00101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00101003barEv,_ZTv0_n20_N3bbb9GG00101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101003barEv,_ZThn16_N3bbb9GG00101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101003fooEv,_ZTv0_n16_N3bbb9GG00101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101003fooEv,_ZThn36_N3bbb9GG00101003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101003fooEv,_ZThn16_N3bbb9GG00101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010100E = { "_ZN3bbb9GG0010100E", // class name |
| bases__ZN3bbb9GG0010100E, 6, |
| &(vtc__ZN3bbb9GG0010100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names37, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010101 : virtual ::bbb::EE001 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00101013barEv |
| virtual void foo(); // _ZN3bbb9GG00101013fooEv |
| ~GG0010101(); // tgen |
| GG0010101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010101 ::bar(){vfunc_called(this, "_ZN3bbb9GG00101013barEv");} |
| void bbb::GG0010101 ::foo(){vfunc_called(this, "_ZN3bbb9GG00101013fooEv");} |
| bbb::GG0010101 ::~GG0010101(){ note_dtor("_ZN3bbb9GG0010101E", this);} // tgen |
| bbb::GG0010101 ::GG0010101(){ note_ctor("_ZN3bbb9GG0010101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010101E, buf); |
| ::bbb::GG0010101 *dp, &lv = *(dp=new (buf) ::bbb::GG0010101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010101E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0010101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0010101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0010101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010101E); |
| dp->::bbb::GG0010101::~GG0010101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010101E(Test__ZN3bbb9GG0010101E, "_ZN3bbb9GG0010101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010101C1Ev(); |
| extern void _ZN3bbb9GG0010101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010101E[] = { |
| NSPAIR(_ZN3bbb9GG0010101C1Ev), |
| NSPAIR(_ZN3bbb9GG0010101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0010101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010101E[]; |
| extern void _ZN3bbb9GG00101013fooEv(); |
| extern void _ZN3bbb9GG00101013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101013fooEv,_ZTv0_n16_N3bbb9GG00101013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101013fooEv,_ZThn16_N3bbb9GG00101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00101013barEv,_ZTv0_n20_N3bbb9GG00101013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101013barEv,_ZThn16_N3bbb9GG00101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101013fooEv,_ZTv0_n12_N3bbb9GG00101013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101013fooEv,_ZThn28_N3bbb9GG00101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101013barEv,_ZTv0_n16_N3bbb9GG00101013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101013barEv,_ZThn28_N3bbb9GG00101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101013barEv,_ZTv0_n12_N3bbb9GG00101013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101013barEv,_ZThn36_N3bbb9GG00101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101013fooEv,_ZTv0_n16_N3bbb9GG00101013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101013fooEv,_ZThn36_N3bbb9GG00101013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00101013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00101013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101013fooEv,_ZTv0_n16_N3bbb9GG00101013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00101013barEv,_ZTv0_n20_N3bbb9GG00101013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101013fooEv,_ZTv0_n12_N3bbb9GG00101013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101013barEv,_ZTv0_n16_N3bbb9GG00101013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101013barEv,_ZTv0_n12_N3bbb9GG00101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101013fooEv,_ZTv0_n16_N3bbb9GG00101013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0010101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0010101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010101E[] = { |
| {&(_ZTVN3bbb9GG0010101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0010101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0010101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010101E[]; |
| static VTBL_ENTRY alt_thunk_names38[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101013barEv,_ZTv0_n12_N3bbb9GG00101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101013barEv,_ZThn36_N3bbb9GG00101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101013barEv,_ZTv0_n16_N3bbb9GG00101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101013barEv,_ZThn28_N3bbb9GG00101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101013fooEv,_ZTv0_n12_N3bbb9GG00101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101013fooEv,_ZThn28_N3bbb9GG00101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00101013barEv,_ZTv0_n20_N3bbb9GG00101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101013barEv,_ZThn16_N3bbb9GG00101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101013fooEv,_ZTv0_n16_N3bbb9GG00101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101013fooEv,_ZThn36_N3bbb9GG00101013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101013fooEv,_ZThn16_N3bbb9GG00101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010101E = { "_ZN3bbb9GG0010101E", // class name |
| bases__ZN3bbb9GG0010101E, 6, |
| &(vtc__ZN3bbb9GG0010101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names38, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010110 : virtual ::bbb::EE001 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00101103fooEv |
| virtual void bar(); // _ZN3bbb9GG00101103barEv |
| ~GG0010110(); // tgen |
| GG0010110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010110 ::foo(){vfunc_called(this, "_ZN3bbb9GG00101103fooEv");} |
| void bbb::GG0010110 ::bar(){vfunc_called(this, "_ZN3bbb9GG00101103barEv");} |
| bbb::GG0010110 ::~GG0010110(){ note_dtor("_ZN3bbb9GG0010110E", this);} // tgen |
| bbb::GG0010110 ::GG0010110(){ note_ctor("_ZN3bbb9GG0010110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010110E, buf); |
| ::bbb::GG0010110 *dp, &lv = *(dp=new (buf) ::bbb::GG0010110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010110E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0010110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0010110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0010110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010110E); |
| dp->::bbb::GG0010110::~GG0010110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010110E(Test__ZN3bbb9GG0010110E, "_ZN3bbb9GG0010110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010110C1Ev(); |
| extern void _ZN3bbb9GG0010110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010110E[] = { |
| NSPAIR(_ZN3bbb9GG0010110C1Ev), |
| NSPAIR(_ZN3bbb9GG0010110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0010110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010110E[]; |
| extern void _ZN3bbb9GG00101103fooEv(); |
| extern void _ZN3bbb9GG00101103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101103fooEv,_ZTv0_n16_N3bbb9GG00101103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101103fooEv,_ZThn16_N3bbb9GG00101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00101103barEv,_ZTv0_n20_N3bbb9GG00101103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101103barEv,_ZThn16_N3bbb9GG00101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101103fooEv,_ZTv0_n12_N3bbb9GG00101103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101103fooEv,_ZThn28_N3bbb9GG00101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101103barEv,_ZTv0_n16_N3bbb9GG00101103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101103barEv,_ZThn28_N3bbb9GG00101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101103barEv,_ZTv0_n12_N3bbb9GG00101103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101103barEv,_ZThn36_N3bbb9GG00101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101103fooEv,_ZTv0_n16_N3bbb9GG00101103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101103fooEv,_ZThn36_N3bbb9GG00101103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00101103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00101103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101103fooEv,_ZTv0_n16_N3bbb9GG00101103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00101103barEv,_ZTv0_n20_N3bbb9GG00101103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101103fooEv,_ZTv0_n12_N3bbb9GG00101103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101103barEv,_ZTv0_n16_N3bbb9GG00101103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101103barEv,_ZTv0_n12_N3bbb9GG00101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101103fooEv,_ZTv0_n16_N3bbb9GG00101103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0010110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0010110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010110E[] = { |
| {&(_ZTVN3bbb9GG0010110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0010110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0010110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010110E[]; |
| static VTBL_ENTRY alt_thunk_names39[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101103barEv,_ZTv0_n12_N3bbb9GG00101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101103barEv,_ZThn36_N3bbb9GG00101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101103barEv,_ZTv0_n16_N3bbb9GG00101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101103barEv,_ZThn28_N3bbb9GG00101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101103fooEv,_ZTv0_n12_N3bbb9GG00101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101103fooEv,_ZThn28_N3bbb9GG00101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00101103barEv,_ZTv0_n20_N3bbb9GG00101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101103barEv,_ZThn16_N3bbb9GG00101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101103fooEv,_ZTv0_n16_N3bbb9GG00101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101103fooEv,_ZThn36_N3bbb9GG00101103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101103fooEv,_ZThn16_N3bbb9GG00101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010110E = { "_ZN3bbb9GG0010110E", // class name |
| bases__ZN3bbb9GG0010110E, 6, |
| &(vtc__ZN3bbb9GG0010110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names39, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0010111 : virtual ::bbb::EE001 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00101113barEv |
| virtual void foo(); // _ZN3bbb9GG00101113fooEv |
| ~GG0010111(); // tgen |
| GG0010111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0010111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0010111 ::bar(){vfunc_called(this, "_ZN3bbb9GG00101113barEv");} |
| void bbb::GG0010111 ::foo(){vfunc_called(this, "_ZN3bbb9GG00101113fooEv");} |
| bbb::GG0010111 ::~GG0010111(){ note_dtor("_ZN3bbb9GG0010111E", this);} // tgen |
| bbb::GG0010111 ::GG0010111(){ note_ctor("_ZN3bbb9GG0010111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0010111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0010111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0010111E, buf); |
| ::bbb::GG0010111 *dp, &lv = *(dp=new (buf) ::bbb::GG0010111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0010111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0010111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0010111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010111E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0010111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0010111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0010111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0010111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0010111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0010111E); |
| dp->::bbb::GG0010111::~GG0010111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0010111E(Test__ZN3bbb9GG0010111E, "_ZN3bbb9GG0010111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0010111C1Ev(); |
| extern void _ZN3bbb9GG0010111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0010111E[] = { |
| NSPAIR(_ZN3bbb9GG0010111C1Ev), |
| NSPAIR(_ZN3bbb9GG0010111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0010111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010111E[]; |
| extern void _ZN3bbb9GG00101113fooEv(); |
| extern void _ZN3bbb9GG00101113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101113fooEv,_ZTv0_n16_N3bbb9GG00101113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101113fooEv,_ZThn16_N3bbb9GG00101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00101113barEv,_ZTv0_n20_N3bbb9GG00101113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00101113barEv,_ZThn16_N3bbb9GG00101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101113fooEv,_ZTv0_n12_N3bbb9GG00101113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101113fooEv,_ZThn28_N3bbb9GG00101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101113barEv,_ZTv0_n16_N3bbb9GG00101113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00101113barEv,_ZThn28_N3bbb9GG00101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00101113barEv,_ZTv0_n12_N3bbb9GG00101113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101113barEv,_ZThn36_N3bbb9GG00101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00101113fooEv,_ZTv0_n16_N3bbb9GG00101113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00101113fooEv,_ZThn36_N3bbb9GG00101113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0010111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00101113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00101113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101113fooEv,_ZTv0_n16_N3bbb9GG00101113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00101113barEv,_ZTv0_n20_N3bbb9GG00101113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101113fooEv,_ZTv0_n12_N3bbb9GG00101113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101113barEv,_ZTv0_n16_N3bbb9GG00101113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00101113barEv,_ZTv0_n12_N3bbb9GG00101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00101113fooEv,_ZTv0_n16_N3bbb9GG00101113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0010111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0010111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0010111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0010111E[] = { |
| {&(_ZTVN3bbb9GG0010111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0010111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0010111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0010111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0010111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0010111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0010111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0010111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0010111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0010111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0010111E[]; |
| static VTBL_ENTRY alt_thunk_names40[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101113barEv,_ZTv0_n12_N3bbb9GG00101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101113barEv,_ZThn36_N3bbb9GG00101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101113barEv,_ZTv0_n16_N3bbb9GG00101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101113barEv,_ZThn28_N3bbb9GG00101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00101113fooEv,_ZTv0_n12_N3bbb9GG00101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00101113fooEv,_ZThn28_N3bbb9GG00101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00101113barEv,_ZTv0_n20_N3bbb9GG00101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101113barEv,_ZThn16_N3bbb9GG00101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00101113fooEv,_ZTv0_n16_N3bbb9GG00101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00101113fooEv,_ZThn36_N3bbb9GG00101113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00101113fooEv,_ZThn16_N3bbb9GG00101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0010111E = { "_ZN3bbb9GG0010111E", // class name |
| bases__ZN3bbb9GG0010111E, 6, |
| &(vtc__ZN3bbb9GG0010111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0010111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0010111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0010111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0010111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names40, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011000 : virtual ::bbb::EE001 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00110003fooEv |
| virtual void bar(); // _ZN3bbb9GG00110003barEv |
| ~GG0011000(); // tgen |
| GG0011000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011000 ::foo(){vfunc_called(this, "_ZN3bbb9GG00110003fooEv");} |
| void bbb::GG0011000 ::bar(){vfunc_called(this, "_ZN3bbb9GG00110003barEv");} |
| bbb::GG0011000 ::~GG0011000(){ note_dtor("_ZN3bbb9GG0011000E", this);} // tgen |
| bbb::GG0011000 ::GG0011000(){ note_ctor("_ZN3bbb9GG0011000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011000E, buf); |
| ::bbb::GG0011000 *dp, &lv = *(dp=new (buf) ::bbb::GG0011000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011000E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0011000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0011000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0011000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011000E); |
| dp->::bbb::GG0011000::~GG0011000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011000E(Test__ZN3bbb9GG0011000E, "_ZN3bbb9GG0011000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011000C1Ev(); |
| extern void _ZN3bbb9GG0011000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011000E[] = { |
| NSPAIR(_ZN3bbb9GG0011000C1Ev), |
| NSPAIR(_ZN3bbb9GG0011000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0011000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011000E[]; |
| extern void _ZN3bbb9GG00110003barEv(); |
| extern void _ZN3bbb9GG00110003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110003fooEv,_ZTv0_n16_N3bbb9GG00110003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110003fooEv,_ZThn16_N3bbb9GG00110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00110003barEv,_ZTv0_n20_N3bbb9GG00110003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110003barEv,_ZThn16_N3bbb9GG00110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110003fooEv,_ZTv0_n12_N3bbb9GG00110003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110003fooEv,_ZThn28_N3bbb9GG00110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110003barEv,_ZTv0_n16_N3bbb9GG00110003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110003barEv,_ZThn28_N3bbb9GG00110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110003fooEv,_ZTv0_n12_N3bbb9GG00110003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110003fooEv,_ZThn36_N3bbb9GG00110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110003barEv,_ZTv0_n16_N3bbb9GG00110003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110003barEv,_ZThn36_N3bbb9GG00110003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00110003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00110003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110003fooEv,_ZTv0_n16_N3bbb9GG00110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00110003barEv,_ZTv0_n20_N3bbb9GG00110003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110003fooEv,_ZTv0_n12_N3bbb9GG00110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110003barEv,_ZTv0_n16_N3bbb9GG00110003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110003fooEv,_ZTv0_n12_N3bbb9GG00110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110003barEv,_ZTv0_n16_N3bbb9GG00110003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0011000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0011000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011000E[] = { |
| {&(_ZTVN3bbb9GG0011000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0011000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0011000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011000E[]; |
| static VTBL_ENTRY alt_thunk_names41[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110003barEv,_ZTv0_n16_N3bbb9GG00110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110003barEv,_ZThn36_N3bbb9GG00110003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110003barEv,_ZThn28_N3bbb9GG00110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00110003fooEv,_ZTv0_n12_N3bbb9GG00110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110003fooEv,_ZThn36_N3bbb9GG00110003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110003fooEv,_ZThn28_N3bbb9GG00110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00110003barEv,_ZTv0_n20_N3bbb9GG00110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110003barEv,_ZThn16_N3bbb9GG00110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110003fooEv,_ZTv0_n16_N3bbb9GG00110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110003fooEv,_ZThn16_N3bbb9GG00110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011000E = { "_ZN3bbb9GG0011000E", // class name |
| bases__ZN3bbb9GG0011000E, 6, |
| &(vtc__ZN3bbb9GG0011000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names41, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011001 : virtual ::bbb::EE001 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00110013barEv |
| virtual void foo(); // _ZN3bbb9GG00110013fooEv |
| ~GG0011001(); // tgen |
| GG0011001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011001 ::bar(){vfunc_called(this, "_ZN3bbb9GG00110013barEv");} |
| void bbb::GG0011001 ::foo(){vfunc_called(this, "_ZN3bbb9GG00110013fooEv");} |
| bbb::GG0011001 ::~GG0011001(){ note_dtor("_ZN3bbb9GG0011001E", this);} // tgen |
| bbb::GG0011001 ::GG0011001(){ note_ctor("_ZN3bbb9GG0011001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011001E, buf); |
| ::bbb::GG0011001 *dp, &lv = *(dp=new (buf) ::bbb::GG0011001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011001E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0011001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0011001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0011001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011001E); |
| dp->::bbb::GG0011001::~GG0011001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011001E(Test__ZN3bbb9GG0011001E, "_ZN3bbb9GG0011001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011001C1Ev(); |
| extern void _ZN3bbb9GG0011001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011001E[] = { |
| NSPAIR(_ZN3bbb9GG0011001C1Ev), |
| NSPAIR(_ZN3bbb9GG0011001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0011001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011001E[]; |
| extern void _ZN3bbb9GG00110013barEv(); |
| extern void _ZN3bbb9GG00110013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110013fooEv,_ZTv0_n16_N3bbb9GG00110013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110013fooEv,_ZThn16_N3bbb9GG00110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00110013barEv,_ZTv0_n20_N3bbb9GG00110013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110013barEv,_ZThn16_N3bbb9GG00110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110013fooEv,_ZTv0_n12_N3bbb9GG00110013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110013fooEv,_ZThn28_N3bbb9GG00110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110013barEv,_ZTv0_n16_N3bbb9GG00110013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110013barEv,_ZThn28_N3bbb9GG00110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110013fooEv,_ZTv0_n12_N3bbb9GG00110013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110013fooEv,_ZThn36_N3bbb9GG00110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110013barEv,_ZTv0_n16_N3bbb9GG00110013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110013barEv,_ZThn36_N3bbb9GG00110013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00110013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00110013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110013fooEv,_ZTv0_n16_N3bbb9GG00110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00110013barEv,_ZTv0_n20_N3bbb9GG00110013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110013fooEv,_ZTv0_n12_N3bbb9GG00110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110013barEv,_ZTv0_n16_N3bbb9GG00110013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110013fooEv,_ZTv0_n12_N3bbb9GG00110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110013barEv,_ZTv0_n16_N3bbb9GG00110013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0011001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0011001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011001E[] = { |
| {&(_ZTVN3bbb9GG0011001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0011001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0011001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011001E[]; |
| static VTBL_ENTRY alt_thunk_names42[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110013barEv,_ZTv0_n16_N3bbb9GG00110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110013barEv,_ZThn36_N3bbb9GG00110013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110013barEv,_ZThn28_N3bbb9GG00110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00110013fooEv,_ZTv0_n12_N3bbb9GG00110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110013fooEv,_ZThn36_N3bbb9GG00110013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110013fooEv,_ZThn28_N3bbb9GG00110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00110013barEv,_ZTv0_n20_N3bbb9GG00110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110013barEv,_ZThn16_N3bbb9GG00110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110013fooEv,_ZTv0_n16_N3bbb9GG00110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110013fooEv,_ZThn16_N3bbb9GG00110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011001E = { "_ZN3bbb9GG0011001E", // class name |
| bases__ZN3bbb9GG0011001E, 6, |
| &(vtc__ZN3bbb9GG0011001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names42, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011010 : virtual ::bbb::EE001 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00110103fooEv |
| virtual void bar(); // _ZN3bbb9GG00110103barEv |
| ~GG0011010(); // tgen |
| GG0011010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011010 ::foo(){vfunc_called(this, "_ZN3bbb9GG00110103fooEv");} |
| void bbb::GG0011010 ::bar(){vfunc_called(this, "_ZN3bbb9GG00110103barEv");} |
| bbb::GG0011010 ::~GG0011010(){ note_dtor("_ZN3bbb9GG0011010E", this);} // tgen |
| bbb::GG0011010 ::GG0011010(){ note_ctor("_ZN3bbb9GG0011010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011010E, buf); |
| ::bbb::GG0011010 *dp, &lv = *(dp=new (buf) ::bbb::GG0011010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011010E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0011010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0011010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0011010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011010E); |
| dp->::bbb::GG0011010::~GG0011010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011010E(Test__ZN3bbb9GG0011010E, "_ZN3bbb9GG0011010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011010C1Ev(); |
| extern void _ZN3bbb9GG0011010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011010E[] = { |
| NSPAIR(_ZN3bbb9GG0011010C1Ev), |
| NSPAIR(_ZN3bbb9GG0011010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0011010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011010E[]; |
| extern void _ZN3bbb9GG00110103barEv(); |
| extern void _ZN3bbb9GG00110103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110103fooEv,_ZTv0_n16_N3bbb9GG00110103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110103fooEv,_ZThn16_N3bbb9GG00110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00110103barEv,_ZTv0_n20_N3bbb9GG00110103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110103barEv,_ZThn16_N3bbb9GG00110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110103fooEv,_ZTv0_n12_N3bbb9GG00110103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110103fooEv,_ZThn28_N3bbb9GG00110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110103barEv,_ZTv0_n16_N3bbb9GG00110103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110103barEv,_ZThn28_N3bbb9GG00110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110103fooEv,_ZTv0_n12_N3bbb9GG00110103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110103fooEv,_ZThn36_N3bbb9GG00110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110103barEv,_ZTv0_n16_N3bbb9GG00110103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110103barEv,_ZThn36_N3bbb9GG00110103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00110103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00110103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110103fooEv,_ZTv0_n16_N3bbb9GG00110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00110103barEv,_ZTv0_n20_N3bbb9GG00110103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110103fooEv,_ZTv0_n12_N3bbb9GG00110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110103barEv,_ZTv0_n16_N3bbb9GG00110103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110103fooEv,_ZTv0_n12_N3bbb9GG00110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110103barEv,_ZTv0_n16_N3bbb9GG00110103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0011010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0011010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011010E[] = { |
| {&(_ZTVN3bbb9GG0011010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0011010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0011010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011010E[]; |
| static VTBL_ENTRY alt_thunk_names43[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110103barEv,_ZTv0_n16_N3bbb9GG00110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110103barEv,_ZThn36_N3bbb9GG00110103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110103barEv,_ZThn28_N3bbb9GG00110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00110103fooEv,_ZTv0_n12_N3bbb9GG00110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110103fooEv,_ZThn36_N3bbb9GG00110103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110103fooEv,_ZThn28_N3bbb9GG00110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00110103barEv,_ZTv0_n20_N3bbb9GG00110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110103barEv,_ZThn16_N3bbb9GG00110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110103fooEv,_ZTv0_n16_N3bbb9GG00110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110103fooEv,_ZThn16_N3bbb9GG00110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011010E = { "_ZN3bbb9GG0011010E", // class name |
| bases__ZN3bbb9GG0011010E, 6, |
| &(vtc__ZN3bbb9GG0011010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names43, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011011 : virtual ::bbb::EE001 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00110113barEv |
| virtual void foo(); // _ZN3bbb9GG00110113fooEv |
| ~GG0011011(); // tgen |
| GG0011011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011011 ::bar(){vfunc_called(this, "_ZN3bbb9GG00110113barEv");} |
| void bbb::GG0011011 ::foo(){vfunc_called(this, "_ZN3bbb9GG00110113fooEv");} |
| bbb::GG0011011 ::~GG0011011(){ note_dtor("_ZN3bbb9GG0011011E", this);} // tgen |
| bbb::GG0011011 ::GG0011011(){ note_ctor("_ZN3bbb9GG0011011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011011E, buf); |
| ::bbb::GG0011011 *dp, &lv = *(dp=new (buf) ::bbb::GG0011011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011011E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0011011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0011011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0011011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011011E); |
| dp->::bbb::GG0011011::~GG0011011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011011E(Test__ZN3bbb9GG0011011E, "_ZN3bbb9GG0011011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011011C1Ev(); |
| extern void _ZN3bbb9GG0011011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011011E[] = { |
| NSPAIR(_ZN3bbb9GG0011011C1Ev), |
| NSPAIR(_ZN3bbb9GG0011011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0011011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011011E[]; |
| extern void _ZN3bbb9GG00110113barEv(); |
| extern void _ZN3bbb9GG00110113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110113fooEv,_ZTv0_n16_N3bbb9GG00110113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110113fooEv,_ZThn16_N3bbb9GG00110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00110113barEv,_ZTv0_n20_N3bbb9GG00110113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00110113barEv,_ZThn16_N3bbb9GG00110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110113fooEv,_ZTv0_n12_N3bbb9GG00110113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110113fooEv,_ZThn28_N3bbb9GG00110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110113barEv,_ZTv0_n16_N3bbb9GG00110113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00110113barEv,_ZThn28_N3bbb9GG00110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00110113fooEv,_ZTv0_n12_N3bbb9GG00110113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110113fooEv,_ZThn36_N3bbb9GG00110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00110113barEv,_ZTv0_n16_N3bbb9GG00110113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00110113barEv,_ZThn36_N3bbb9GG00110113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00110113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00110113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110113fooEv,_ZTv0_n16_N3bbb9GG00110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00110113barEv,_ZTv0_n20_N3bbb9GG00110113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110113fooEv,_ZTv0_n12_N3bbb9GG00110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110113barEv,_ZTv0_n16_N3bbb9GG00110113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00110113fooEv,_ZTv0_n12_N3bbb9GG00110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00110113barEv,_ZTv0_n16_N3bbb9GG00110113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0011011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0011011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011011E[] = { |
| {&(_ZTVN3bbb9GG0011011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0011011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0011011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011011E[]; |
| static VTBL_ENTRY alt_thunk_names44[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110113barEv,_ZTv0_n16_N3bbb9GG00110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110113barEv,_ZThn36_N3bbb9GG00110113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110113barEv,_ZThn28_N3bbb9GG00110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00110113fooEv,_ZTv0_n12_N3bbb9GG00110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00110113fooEv,_ZThn36_N3bbb9GG00110113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00110113fooEv,_ZThn28_N3bbb9GG00110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00110113barEv,_ZTv0_n20_N3bbb9GG00110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110113barEv,_ZThn16_N3bbb9GG00110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00110113fooEv,_ZTv0_n16_N3bbb9GG00110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00110113fooEv,_ZThn16_N3bbb9GG00110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011011E = { "_ZN3bbb9GG0011011E", // class name |
| bases__ZN3bbb9GG0011011E, 6, |
| &(vtc__ZN3bbb9GG0011011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names44, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011100 : virtual ::bbb::EE001 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00111003fooEv |
| virtual void bar(); // _ZN3bbb9GG00111003barEv |
| ~GG0011100(); // tgen |
| GG0011100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011100 ::foo(){vfunc_called(this, "_ZN3bbb9GG00111003fooEv");} |
| void bbb::GG0011100 ::bar(){vfunc_called(this, "_ZN3bbb9GG00111003barEv");} |
| bbb::GG0011100 ::~GG0011100(){ note_dtor("_ZN3bbb9GG0011100E", this);} // tgen |
| bbb::GG0011100 ::GG0011100(){ note_ctor("_ZN3bbb9GG0011100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011100E, buf); |
| ::bbb::GG0011100 *dp, &lv = *(dp=new (buf) ::bbb::GG0011100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011100E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0011100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0011100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0011100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011100E); |
| dp->::bbb::GG0011100::~GG0011100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011100E(Test__ZN3bbb9GG0011100E, "_ZN3bbb9GG0011100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011100C1Ev(); |
| extern void _ZN3bbb9GG0011100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011100E[] = { |
| NSPAIR(_ZN3bbb9GG0011100C1Ev), |
| NSPAIR(_ZN3bbb9GG0011100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0011100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011100E[]; |
| extern void _ZN3bbb9GG00111003barEv(); |
| extern void _ZN3bbb9GG00111003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111003fooEv,_ZTv0_n16_N3bbb9GG00111003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111003fooEv,_ZThn16_N3bbb9GG00111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00111003barEv,_ZTv0_n20_N3bbb9GG00111003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111003barEv,_ZThn16_N3bbb9GG00111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111003fooEv,_ZTv0_n12_N3bbb9GG00111003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111003fooEv,_ZThn28_N3bbb9GG00111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111003barEv,_ZTv0_n16_N3bbb9GG00111003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111003barEv,_ZThn28_N3bbb9GG00111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111003barEv,_ZTv0_n12_N3bbb9GG00111003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111003barEv,_ZThn36_N3bbb9GG00111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111003fooEv,_ZTv0_n16_N3bbb9GG00111003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111003fooEv,_ZThn36_N3bbb9GG00111003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00111003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00111003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111003fooEv,_ZTv0_n16_N3bbb9GG00111003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00111003barEv,_ZTv0_n20_N3bbb9GG00111003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111003fooEv,_ZTv0_n12_N3bbb9GG00111003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111003barEv,_ZTv0_n16_N3bbb9GG00111003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111003barEv,_ZTv0_n12_N3bbb9GG00111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111003fooEv,_ZTv0_n16_N3bbb9GG00111003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0011100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0011100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011100E[] = { |
| {&(_ZTVN3bbb9GG0011100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0011100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0011100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011100E[]; |
| static VTBL_ENTRY alt_thunk_names45[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111003barEv,_ZTv0_n12_N3bbb9GG00111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111003barEv,_ZThn36_N3bbb9GG00111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111003barEv,_ZTv0_n16_N3bbb9GG00111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111003barEv,_ZThn28_N3bbb9GG00111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111003fooEv,_ZTv0_n12_N3bbb9GG00111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111003fooEv,_ZThn28_N3bbb9GG00111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00111003barEv,_ZTv0_n20_N3bbb9GG00111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111003barEv,_ZThn16_N3bbb9GG00111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111003fooEv,_ZTv0_n16_N3bbb9GG00111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111003fooEv,_ZThn36_N3bbb9GG00111003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111003fooEv,_ZThn16_N3bbb9GG00111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011100E = { "_ZN3bbb9GG0011100E", // class name |
| bases__ZN3bbb9GG0011100E, 6, |
| &(vtc__ZN3bbb9GG0011100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names45, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011101 : virtual ::bbb::EE001 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00111013barEv |
| virtual void foo(); // _ZN3bbb9GG00111013fooEv |
| ~GG0011101(); // tgen |
| GG0011101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011101 ::bar(){vfunc_called(this, "_ZN3bbb9GG00111013barEv");} |
| void bbb::GG0011101 ::foo(){vfunc_called(this, "_ZN3bbb9GG00111013fooEv");} |
| bbb::GG0011101 ::~GG0011101(){ note_dtor("_ZN3bbb9GG0011101E", this);} // tgen |
| bbb::GG0011101 ::GG0011101(){ note_ctor("_ZN3bbb9GG0011101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011101E, buf); |
| ::bbb::GG0011101 *dp, &lv = *(dp=new (buf) ::bbb::GG0011101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011101E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0011101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0011101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0011101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011101E); |
| dp->::bbb::GG0011101::~GG0011101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011101E(Test__ZN3bbb9GG0011101E, "_ZN3bbb9GG0011101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011101C1Ev(); |
| extern void _ZN3bbb9GG0011101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011101E[] = { |
| NSPAIR(_ZN3bbb9GG0011101C1Ev), |
| NSPAIR(_ZN3bbb9GG0011101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0011101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011101E[]; |
| extern void _ZN3bbb9GG00111013barEv(); |
| extern void _ZN3bbb9GG00111013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111013fooEv,_ZTv0_n16_N3bbb9GG00111013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111013fooEv,_ZThn16_N3bbb9GG00111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00111013barEv,_ZTv0_n20_N3bbb9GG00111013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111013barEv,_ZThn16_N3bbb9GG00111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111013fooEv,_ZTv0_n12_N3bbb9GG00111013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111013fooEv,_ZThn28_N3bbb9GG00111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111013barEv,_ZTv0_n16_N3bbb9GG00111013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111013barEv,_ZThn28_N3bbb9GG00111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111013barEv,_ZTv0_n12_N3bbb9GG00111013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111013barEv,_ZThn36_N3bbb9GG00111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111013fooEv,_ZTv0_n16_N3bbb9GG00111013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111013fooEv,_ZThn36_N3bbb9GG00111013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00111013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00111013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111013fooEv,_ZTv0_n16_N3bbb9GG00111013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00111013barEv,_ZTv0_n20_N3bbb9GG00111013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111013fooEv,_ZTv0_n12_N3bbb9GG00111013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111013barEv,_ZTv0_n16_N3bbb9GG00111013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111013barEv,_ZTv0_n12_N3bbb9GG00111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111013fooEv,_ZTv0_n16_N3bbb9GG00111013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0011101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0011101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011101E[] = { |
| {&(_ZTVN3bbb9GG0011101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0011101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0011101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011101E[]; |
| static VTBL_ENTRY alt_thunk_names46[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111013barEv,_ZTv0_n12_N3bbb9GG00111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111013barEv,_ZThn36_N3bbb9GG00111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111013barEv,_ZTv0_n16_N3bbb9GG00111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111013barEv,_ZThn28_N3bbb9GG00111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111013fooEv,_ZTv0_n12_N3bbb9GG00111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111013fooEv,_ZThn28_N3bbb9GG00111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00111013barEv,_ZTv0_n20_N3bbb9GG00111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111013barEv,_ZThn16_N3bbb9GG00111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111013fooEv,_ZTv0_n16_N3bbb9GG00111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111013fooEv,_ZThn36_N3bbb9GG00111013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111013fooEv,_ZThn16_N3bbb9GG00111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011101E = { "_ZN3bbb9GG0011101E", // class name |
| bases__ZN3bbb9GG0011101E, 6, |
| &(vtc__ZN3bbb9GG0011101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names46, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011110 : virtual ::bbb::EE001 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG00111103fooEv |
| virtual void bar(); // _ZN3bbb9GG00111103barEv |
| ~GG0011110(); // tgen |
| GG0011110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011110 ::foo(){vfunc_called(this, "_ZN3bbb9GG00111103fooEv");} |
| void bbb::GG0011110 ::bar(){vfunc_called(this, "_ZN3bbb9GG00111103barEv");} |
| bbb::GG0011110 ::~GG0011110(){ note_dtor("_ZN3bbb9GG0011110E", this);} // tgen |
| bbb::GG0011110 ::GG0011110(){ note_ctor("_ZN3bbb9GG0011110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011110E, buf); |
| ::bbb::GG0011110 *dp, &lv = *(dp=new (buf) ::bbb::GG0011110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011110E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0011110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0011110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0011110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011110E); |
| dp->::bbb::GG0011110::~GG0011110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011110E(Test__ZN3bbb9GG0011110E, "_ZN3bbb9GG0011110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011110C1Ev(); |
| extern void _ZN3bbb9GG0011110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011110E[] = { |
| NSPAIR(_ZN3bbb9GG0011110C1Ev), |
| NSPAIR(_ZN3bbb9GG0011110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0011110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011110E[]; |
| extern void _ZN3bbb9GG00111103barEv(); |
| extern void _ZN3bbb9GG00111103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111103fooEv,_ZTv0_n16_N3bbb9GG00111103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111103fooEv,_ZThn16_N3bbb9GG00111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00111103barEv,_ZTv0_n20_N3bbb9GG00111103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111103barEv,_ZThn16_N3bbb9GG00111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111103fooEv,_ZTv0_n12_N3bbb9GG00111103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111103fooEv,_ZThn28_N3bbb9GG00111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111103barEv,_ZTv0_n16_N3bbb9GG00111103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111103barEv,_ZThn28_N3bbb9GG00111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111103barEv,_ZTv0_n12_N3bbb9GG00111103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111103barEv,_ZThn36_N3bbb9GG00111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111103fooEv,_ZTv0_n16_N3bbb9GG00111103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111103fooEv,_ZThn36_N3bbb9GG00111103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00111103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00111103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111103fooEv,_ZTv0_n16_N3bbb9GG00111103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00111103barEv,_ZTv0_n20_N3bbb9GG00111103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111103fooEv,_ZTv0_n12_N3bbb9GG00111103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111103barEv,_ZTv0_n16_N3bbb9GG00111103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111103barEv,_ZTv0_n12_N3bbb9GG00111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111103fooEv,_ZTv0_n16_N3bbb9GG00111103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0011110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0011110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011110E[] = { |
| {&(_ZTVN3bbb9GG0011110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0011110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0011110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011110E[]; |
| static VTBL_ENTRY alt_thunk_names47[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111103barEv,_ZTv0_n12_N3bbb9GG00111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111103barEv,_ZThn36_N3bbb9GG00111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111103barEv,_ZTv0_n16_N3bbb9GG00111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111103barEv,_ZThn28_N3bbb9GG00111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111103fooEv,_ZTv0_n12_N3bbb9GG00111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111103fooEv,_ZThn28_N3bbb9GG00111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00111103barEv,_ZTv0_n20_N3bbb9GG00111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111103barEv,_ZThn16_N3bbb9GG00111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111103fooEv,_ZTv0_n16_N3bbb9GG00111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111103fooEv,_ZThn36_N3bbb9GG00111103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111103fooEv,_ZThn16_N3bbb9GG00111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011110E = { "_ZN3bbb9GG0011110E", // class name |
| bases__ZN3bbb9GG0011110E, 6, |
| &(vtc__ZN3bbb9GG0011110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names47, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0011111 : virtual ::bbb::EE001 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG00111113barEv |
| virtual void foo(); // _ZN3bbb9GG00111113fooEv |
| ~GG0011111(); // tgen |
| GG0011111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0011111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0011111 ::bar(){vfunc_called(this, "_ZN3bbb9GG00111113barEv");} |
| void bbb::GG0011111 ::foo(){vfunc_called(this, "_ZN3bbb9GG00111113fooEv");} |
| bbb::GG0011111 ::~GG0011111(){ note_dtor("_ZN3bbb9GG0011111E", this);} // tgen |
| bbb::GG0011111 ::GG0011111(){ note_ctor("_ZN3bbb9GG0011111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0011111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0011111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0011111E, buf); |
| ::bbb::GG0011111 *dp, &lv = *(dp=new (buf) ::bbb::GG0011111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0011111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0011111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE001*), ABISELECT(40,28), "_ZN3bbb9GG0011111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011111E"); |
| check_base_class_offset(lv, (::bbb::EE001*), ABISELECT(24,16), "_ZN3bbb9GG0011111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0011111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0011111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0011111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0011111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0011111E); |
| dp->::bbb::GG0011111::~GG0011111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0011111E(Test__ZN3bbb9GG0011111E, "_ZN3bbb9GG0011111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0011111C1Ev(); |
| extern void _ZN3bbb9GG0011111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0011111E[] = { |
| NSPAIR(_ZN3bbb9GG0011111C1Ev), |
| NSPAIR(_ZN3bbb9GG0011111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE001E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE001E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0011111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE001E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011111E[]; |
| extern void _ZN3bbb9GG00111113barEv(); |
| extern void _ZN3bbb9GG00111113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111113fooEv,_ZTv0_n16_N3bbb9GG00111113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111113fooEv,_ZThn16_N3bbb9GG00111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG00111113barEv,_ZTv0_n20_N3bbb9GG00111113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG00111113barEv,_ZThn16_N3bbb9GG00111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111113fooEv,_ZTv0_n12_N3bbb9GG00111113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111113fooEv,_ZThn28_N3bbb9GG00111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111113barEv,_ZTv0_n16_N3bbb9GG00111113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG00111113barEv,_ZThn28_N3bbb9GG00111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG00111113barEv,_ZTv0_n12_N3bbb9GG00111113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111113barEv,_ZThn36_N3bbb9GG00111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG00111113fooEv,_ZTv0_n16_N3bbb9GG00111113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG00111113fooEv,_ZThn36_N3bbb9GG00111113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0011111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG00111113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG00111113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111113fooEv,_ZTv0_n16_N3bbb9GG00111113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG00111113barEv,_ZTv0_n20_N3bbb9GG00111113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111113fooEv,_ZTv0_n12_N3bbb9GG00111113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111113barEv,_ZTv0_n16_N3bbb9GG00111113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG00111113barEv,_ZTv0_n12_N3bbb9GG00111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG00111113fooEv,_ZTv0_n16_N3bbb9GG00111113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0011111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0011111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0013fooEv(); |
| extern void _ZN3bbb5EE0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE001E__NS_9GG0011111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0011111E[] = { |
| {&(_ZTVN3bbb9GG0011111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0011111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0011111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0011111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0011111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0011111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE001E__NS_9GG0011111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE001E__NS_9GG0011111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0011111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0011111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0011111E[]; |
| static VTBL_ENTRY alt_thunk_names48[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0013barEv,_ZTv0_n16_N3bbb5EE0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013barEv,_ZThn12_N3bbb5EE0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0013fooEv,_ZTv0_n12_N3bbb5EE0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0013fooEv,_ZThn12_N3bbb5EE0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111113barEv,_ZTv0_n12_N3bbb9GG00111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111113barEv,_ZThn36_N3bbb9GG00111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111113barEv,_ZTv0_n16_N3bbb9GG00111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111113barEv,_ZThn28_N3bbb9GG00111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG00111113fooEv,_ZTv0_n12_N3bbb9GG00111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG00111113fooEv,_ZThn28_N3bbb9GG00111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG00111113barEv,_ZTv0_n20_N3bbb9GG00111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111113barEv,_ZThn16_N3bbb9GG00111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG00111113fooEv,_ZTv0_n16_N3bbb9GG00111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG00111113fooEv,_ZThn36_N3bbb9GG00111113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG00111113fooEv,_ZThn16_N3bbb9GG00111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0011111E = { "_ZN3bbb9GG0011111E", // class name |
| bases__ZN3bbb9GG0011111E, 6, |
| &(vtc__ZN3bbb9GG0011111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0011111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0011111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0011111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0011111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names48, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100000 : virtual ::bbb::EE010 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01000003fooEv |
| virtual void bar(); // _ZN3bbb9GG01000003barEv |
| ~GG0100000(); // tgen |
| GG0100000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100000 ::foo(){vfunc_called(this, "_ZN3bbb9GG01000003fooEv");} |
| void bbb::GG0100000 ::bar(){vfunc_called(this, "_ZN3bbb9GG01000003barEv");} |
| bbb::GG0100000 ::~GG0100000(){ note_dtor("_ZN3bbb9GG0100000E", this);} // tgen |
| bbb::GG0100000 ::GG0100000(){ note_ctor("_ZN3bbb9GG0100000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100000E, buf); |
| ::bbb::GG0100000 *dp, &lv = *(dp=new (buf) ::bbb::GG0100000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100000E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0100000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0100000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0100000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100000E); |
| dp->::bbb::GG0100000::~GG0100000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100000E(Test__ZN3bbb9GG0100000E, "_ZN3bbb9GG0100000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100000C1Ev(); |
| extern void _ZN3bbb9GG0100000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100000E[] = { |
| NSPAIR(_ZN3bbb9GG0100000C1Ev), |
| NSPAIR(_ZN3bbb9GG0100000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0100000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100000E[]; |
| extern void _ZN3bbb9GG01000003fooEv(); |
| extern void _ZN3bbb9GG01000003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000003barEv,_ZThn16_N3bbb9GG01000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01000003fooEv,_ZTv0_n20_N3bbb9GG01000003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000003fooEv,_ZThn16_N3bbb9GG01000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000003fooEv,_ZTv0_n12_N3bbb9GG01000003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000003fooEv,_ZThn28_N3bbb9GG01000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000003barEv,_ZThn28_N3bbb9GG01000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000003fooEv,_ZTv0_n12_N3bbb9GG01000003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000003fooEv,_ZThn36_N3bbb9GG01000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000003barEv,_ZThn36_N3bbb9GG01000003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01000003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01000003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01000003fooEv,_ZTv0_n20_N3bbb9GG01000003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000003fooEv,_ZTv0_n12_N3bbb9GG01000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000003fooEv,_ZTv0_n12_N3bbb9GG01000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0100000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0100000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100000E[] = { |
| {&(_ZTVN3bbb9GG0100000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0100000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0100000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100000E[]; |
| static VTBL_ENTRY alt_thunk_names49[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01000003fooEv,_ZTv0_n12_N3bbb9GG01000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000003fooEv,_ZThn36_N3bbb9GG01000003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000003fooEv,_ZThn28_N3bbb9GG01000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01000003fooEv,_ZTv0_n20_N3bbb9GG01000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000003fooEv,_ZThn16_N3bbb9GG01000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01000003barEv,_ZTv0_n16_N3bbb9GG01000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000003barEv,_ZThn36_N3bbb9GG01000003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000003barEv,_ZThn28_N3bbb9GG01000003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000003barEv,_ZThn16_N3bbb9GG01000003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100000E = { "_ZN3bbb9GG0100000E", // class name |
| bases__ZN3bbb9GG0100000E, 6, |
| &(vtc__ZN3bbb9GG0100000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names49, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100001 : virtual ::bbb::EE010 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01000013barEv |
| virtual void foo(); // _ZN3bbb9GG01000013fooEv |
| ~GG0100001(); // tgen |
| GG0100001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100001 ::bar(){vfunc_called(this, "_ZN3bbb9GG01000013barEv");} |
| void bbb::GG0100001 ::foo(){vfunc_called(this, "_ZN3bbb9GG01000013fooEv");} |
| bbb::GG0100001 ::~GG0100001(){ note_dtor("_ZN3bbb9GG0100001E", this);} // tgen |
| bbb::GG0100001 ::GG0100001(){ note_ctor("_ZN3bbb9GG0100001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100001E, buf); |
| ::bbb::GG0100001 *dp, &lv = *(dp=new (buf) ::bbb::GG0100001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100001E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0100001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0100001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0100001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100001E); |
| dp->::bbb::GG0100001::~GG0100001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100001E(Test__ZN3bbb9GG0100001E, "_ZN3bbb9GG0100001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100001C1Ev(); |
| extern void _ZN3bbb9GG0100001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100001E[] = { |
| NSPAIR(_ZN3bbb9GG0100001C1Ev), |
| NSPAIR(_ZN3bbb9GG0100001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0100001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100001E[]; |
| extern void _ZN3bbb9GG01000013fooEv(); |
| extern void _ZN3bbb9GG01000013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000013barEv,_ZThn16_N3bbb9GG01000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01000013fooEv,_ZTv0_n20_N3bbb9GG01000013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000013fooEv,_ZThn16_N3bbb9GG01000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000013fooEv,_ZTv0_n12_N3bbb9GG01000013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000013fooEv,_ZThn28_N3bbb9GG01000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000013barEv,_ZThn28_N3bbb9GG01000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000013fooEv,_ZTv0_n12_N3bbb9GG01000013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000013fooEv,_ZThn36_N3bbb9GG01000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000013barEv,_ZThn36_N3bbb9GG01000013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01000013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01000013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01000013fooEv,_ZTv0_n20_N3bbb9GG01000013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000013fooEv,_ZTv0_n12_N3bbb9GG01000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000013fooEv,_ZTv0_n12_N3bbb9GG01000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0100001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0100001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100001E[] = { |
| {&(_ZTVN3bbb9GG0100001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0100001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0100001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100001E[]; |
| static VTBL_ENTRY alt_thunk_names50[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01000013fooEv,_ZTv0_n12_N3bbb9GG01000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000013fooEv,_ZThn36_N3bbb9GG01000013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000013fooEv,_ZThn28_N3bbb9GG01000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01000013fooEv,_ZTv0_n20_N3bbb9GG01000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000013fooEv,_ZThn16_N3bbb9GG01000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01000013barEv,_ZTv0_n16_N3bbb9GG01000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000013barEv,_ZThn36_N3bbb9GG01000013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000013barEv,_ZThn28_N3bbb9GG01000013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000013barEv,_ZThn16_N3bbb9GG01000013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100001E = { "_ZN3bbb9GG0100001E", // class name |
| bases__ZN3bbb9GG0100001E, 6, |
| &(vtc__ZN3bbb9GG0100001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names50, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100010 : virtual ::bbb::EE010 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01000103fooEv |
| virtual void bar(); // _ZN3bbb9GG01000103barEv |
| ~GG0100010(); // tgen |
| GG0100010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100010 ::foo(){vfunc_called(this, "_ZN3bbb9GG01000103fooEv");} |
| void bbb::GG0100010 ::bar(){vfunc_called(this, "_ZN3bbb9GG01000103barEv");} |
| bbb::GG0100010 ::~GG0100010(){ note_dtor("_ZN3bbb9GG0100010E", this);} // tgen |
| bbb::GG0100010 ::GG0100010(){ note_ctor("_ZN3bbb9GG0100010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100010E, buf); |
| ::bbb::GG0100010 *dp, &lv = *(dp=new (buf) ::bbb::GG0100010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100010E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0100010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0100010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0100010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100010E); |
| dp->::bbb::GG0100010::~GG0100010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100010E(Test__ZN3bbb9GG0100010E, "_ZN3bbb9GG0100010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100010C1Ev(); |
| extern void _ZN3bbb9GG0100010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100010E[] = { |
| NSPAIR(_ZN3bbb9GG0100010C1Ev), |
| NSPAIR(_ZN3bbb9GG0100010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0100010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100010E[]; |
| extern void _ZN3bbb9GG01000103fooEv(); |
| extern void _ZN3bbb9GG01000103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000103barEv,_ZThn16_N3bbb9GG01000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01000103fooEv,_ZTv0_n20_N3bbb9GG01000103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000103fooEv,_ZThn16_N3bbb9GG01000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000103fooEv,_ZTv0_n12_N3bbb9GG01000103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000103fooEv,_ZThn28_N3bbb9GG01000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000103barEv,_ZThn28_N3bbb9GG01000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000103fooEv,_ZTv0_n12_N3bbb9GG01000103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000103fooEv,_ZThn36_N3bbb9GG01000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000103barEv,_ZThn36_N3bbb9GG01000103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01000103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01000103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01000103fooEv,_ZTv0_n20_N3bbb9GG01000103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000103fooEv,_ZTv0_n12_N3bbb9GG01000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000103fooEv,_ZTv0_n12_N3bbb9GG01000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0100010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0100010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100010E[] = { |
| {&(_ZTVN3bbb9GG0100010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0100010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0100010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100010E[]; |
| static VTBL_ENTRY alt_thunk_names51[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01000103fooEv,_ZTv0_n12_N3bbb9GG01000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000103fooEv,_ZThn36_N3bbb9GG01000103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000103fooEv,_ZThn28_N3bbb9GG01000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01000103fooEv,_ZTv0_n20_N3bbb9GG01000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000103fooEv,_ZThn16_N3bbb9GG01000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01000103barEv,_ZTv0_n16_N3bbb9GG01000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000103barEv,_ZThn36_N3bbb9GG01000103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000103barEv,_ZThn28_N3bbb9GG01000103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000103barEv,_ZThn16_N3bbb9GG01000103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100010E = { "_ZN3bbb9GG0100010E", // class name |
| bases__ZN3bbb9GG0100010E, 6, |
| &(vtc__ZN3bbb9GG0100010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names51, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100011 : virtual ::bbb::EE010 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01000113barEv |
| virtual void foo(); // _ZN3bbb9GG01000113fooEv |
| ~GG0100011(); // tgen |
| GG0100011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100011 ::bar(){vfunc_called(this, "_ZN3bbb9GG01000113barEv");} |
| void bbb::GG0100011 ::foo(){vfunc_called(this, "_ZN3bbb9GG01000113fooEv");} |
| bbb::GG0100011 ::~GG0100011(){ note_dtor("_ZN3bbb9GG0100011E", this);} // tgen |
| bbb::GG0100011 ::GG0100011(){ note_ctor("_ZN3bbb9GG0100011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100011E, buf); |
| ::bbb::GG0100011 *dp, &lv = *(dp=new (buf) ::bbb::GG0100011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100011E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0100011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0100011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0100011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100011E); |
| dp->::bbb::GG0100011::~GG0100011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100011E(Test__ZN3bbb9GG0100011E, "_ZN3bbb9GG0100011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100011C1Ev(); |
| extern void _ZN3bbb9GG0100011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100011E[] = { |
| NSPAIR(_ZN3bbb9GG0100011C1Ev), |
| NSPAIR(_ZN3bbb9GG0100011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0100011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100011E[]; |
| extern void _ZN3bbb9GG01000113fooEv(); |
| extern void _ZN3bbb9GG01000113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000113barEv,_ZThn16_N3bbb9GG01000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01000113fooEv,_ZTv0_n20_N3bbb9GG01000113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01000113fooEv,_ZThn16_N3bbb9GG01000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000113fooEv,_ZTv0_n12_N3bbb9GG01000113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000113fooEv,_ZThn28_N3bbb9GG01000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01000113barEv,_ZThn28_N3bbb9GG01000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01000113fooEv,_ZTv0_n12_N3bbb9GG01000113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000113fooEv,_ZThn36_N3bbb9GG01000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01000113barEv,_ZThn36_N3bbb9GG01000113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01000113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01000113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01000113fooEv,_ZTv0_n20_N3bbb9GG01000113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000113fooEv,_ZTv0_n12_N3bbb9GG01000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01000113fooEv,_ZTv0_n12_N3bbb9GG01000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0100011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0100011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100011E[] = { |
| {&(_ZTVN3bbb9GG0100011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0100011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0100011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100011E[]; |
| static VTBL_ENTRY alt_thunk_names52[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01000113fooEv,_ZTv0_n12_N3bbb9GG01000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000113fooEv,_ZThn36_N3bbb9GG01000113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000113fooEv,_ZThn28_N3bbb9GG01000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01000113fooEv,_ZTv0_n20_N3bbb9GG01000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000113fooEv,_ZThn16_N3bbb9GG01000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01000113barEv,_ZTv0_n16_N3bbb9GG01000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01000113barEv,_ZThn36_N3bbb9GG01000113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01000113barEv,_ZThn28_N3bbb9GG01000113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01000113barEv,_ZThn16_N3bbb9GG01000113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100011E = { "_ZN3bbb9GG0100011E", // class name |
| bases__ZN3bbb9GG0100011E, 6, |
| &(vtc__ZN3bbb9GG0100011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names52, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100100 : virtual ::bbb::EE010 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01001003fooEv |
| virtual void bar(); // _ZN3bbb9GG01001003barEv |
| ~GG0100100(); // tgen |
| GG0100100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100100 ::foo(){vfunc_called(this, "_ZN3bbb9GG01001003fooEv");} |
| void bbb::GG0100100 ::bar(){vfunc_called(this, "_ZN3bbb9GG01001003barEv");} |
| bbb::GG0100100 ::~GG0100100(){ note_dtor("_ZN3bbb9GG0100100E", this);} // tgen |
| bbb::GG0100100 ::GG0100100(){ note_ctor("_ZN3bbb9GG0100100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100100E, buf); |
| ::bbb::GG0100100 *dp, &lv = *(dp=new (buf) ::bbb::GG0100100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100100E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0100100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0100100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0100100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100100E); |
| dp->::bbb::GG0100100::~GG0100100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100100E(Test__ZN3bbb9GG0100100E, "_ZN3bbb9GG0100100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100100C1Ev(); |
| extern void _ZN3bbb9GG0100100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100100E[] = { |
| NSPAIR(_ZN3bbb9GG0100100C1Ev), |
| NSPAIR(_ZN3bbb9GG0100100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0100100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100100E[]; |
| extern void _ZN3bbb9GG01001003fooEv(); |
| extern void _ZN3bbb9GG01001003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001003barEv,_ZTv0_n16_N3bbb9GG01001003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001003barEv,_ZThn16_N3bbb9GG01001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01001003fooEv,_ZTv0_n20_N3bbb9GG01001003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001003fooEv,_ZThn16_N3bbb9GG01001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001003fooEv,_ZTv0_n12_N3bbb9GG01001003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001003fooEv,_ZThn28_N3bbb9GG01001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001003barEv,_ZTv0_n16_N3bbb9GG01001003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001003barEv,_ZThn28_N3bbb9GG01001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001003barEv,_ZTv0_n12_N3bbb9GG01001003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001003barEv,_ZThn36_N3bbb9GG01001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001003fooEv,_ZTv0_n16_N3bbb9GG01001003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001003fooEv,_ZThn36_N3bbb9GG01001003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01001003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01001003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001003barEv,_ZTv0_n16_N3bbb9GG01001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01001003fooEv,_ZTv0_n20_N3bbb9GG01001003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001003fooEv,_ZTv0_n12_N3bbb9GG01001003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001003barEv,_ZTv0_n16_N3bbb9GG01001003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001003barEv,_ZTv0_n12_N3bbb9GG01001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001003fooEv,_ZTv0_n16_N3bbb9GG01001003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0100100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0100100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100100E[] = { |
| {&(_ZTVN3bbb9GG0100100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0100100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0100100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100100E[]; |
| static VTBL_ENTRY alt_thunk_names53[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001003fooEv,_ZTv0_n16_N3bbb9GG01001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001003fooEv,_ZThn36_N3bbb9GG01001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001003barEv,_ZTv0_n12_N3bbb9GG01001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001003barEv,_ZThn36_N3bbb9GG01001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001003fooEv,_ZTv0_n12_N3bbb9GG01001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001003fooEv,_ZThn28_N3bbb9GG01001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01001003fooEv,_ZTv0_n20_N3bbb9GG01001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001003fooEv,_ZThn16_N3bbb9GG01001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001003barEv,_ZTv0_n16_N3bbb9GG01001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001003barEv,_ZThn28_N3bbb9GG01001003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001003barEv,_ZThn16_N3bbb9GG01001003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100100E = { "_ZN3bbb9GG0100100E", // class name |
| bases__ZN3bbb9GG0100100E, 6, |
| &(vtc__ZN3bbb9GG0100100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names53, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100101 : virtual ::bbb::EE010 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01001013barEv |
| virtual void foo(); // _ZN3bbb9GG01001013fooEv |
| ~GG0100101(); // tgen |
| GG0100101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100101 ::bar(){vfunc_called(this, "_ZN3bbb9GG01001013barEv");} |
| void bbb::GG0100101 ::foo(){vfunc_called(this, "_ZN3bbb9GG01001013fooEv");} |
| bbb::GG0100101 ::~GG0100101(){ note_dtor("_ZN3bbb9GG0100101E", this);} // tgen |
| bbb::GG0100101 ::GG0100101(){ note_ctor("_ZN3bbb9GG0100101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100101E, buf); |
| ::bbb::GG0100101 *dp, &lv = *(dp=new (buf) ::bbb::GG0100101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100101E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0100101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0100101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0100101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100101E); |
| dp->::bbb::GG0100101::~GG0100101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100101E(Test__ZN3bbb9GG0100101E, "_ZN3bbb9GG0100101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100101C1Ev(); |
| extern void _ZN3bbb9GG0100101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100101E[] = { |
| NSPAIR(_ZN3bbb9GG0100101C1Ev), |
| NSPAIR(_ZN3bbb9GG0100101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0100101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100101E[]; |
| extern void _ZN3bbb9GG01001013fooEv(); |
| extern void _ZN3bbb9GG01001013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001013barEv,_ZTv0_n16_N3bbb9GG01001013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001013barEv,_ZThn16_N3bbb9GG01001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01001013fooEv,_ZTv0_n20_N3bbb9GG01001013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001013fooEv,_ZThn16_N3bbb9GG01001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001013fooEv,_ZTv0_n12_N3bbb9GG01001013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001013fooEv,_ZThn28_N3bbb9GG01001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001013barEv,_ZTv0_n16_N3bbb9GG01001013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001013barEv,_ZThn28_N3bbb9GG01001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001013barEv,_ZTv0_n12_N3bbb9GG01001013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001013barEv,_ZThn36_N3bbb9GG01001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001013fooEv,_ZTv0_n16_N3bbb9GG01001013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001013fooEv,_ZThn36_N3bbb9GG01001013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01001013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01001013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001013barEv,_ZTv0_n16_N3bbb9GG01001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01001013fooEv,_ZTv0_n20_N3bbb9GG01001013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001013fooEv,_ZTv0_n12_N3bbb9GG01001013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001013barEv,_ZTv0_n16_N3bbb9GG01001013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001013barEv,_ZTv0_n12_N3bbb9GG01001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001013fooEv,_ZTv0_n16_N3bbb9GG01001013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0100101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0100101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100101E[] = { |
| {&(_ZTVN3bbb9GG0100101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0100101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0100101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100101E[]; |
| static VTBL_ENTRY alt_thunk_names54[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001013fooEv,_ZTv0_n16_N3bbb9GG01001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001013fooEv,_ZThn36_N3bbb9GG01001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001013barEv,_ZTv0_n12_N3bbb9GG01001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001013barEv,_ZThn36_N3bbb9GG01001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001013fooEv,_ZTv0_n12_N3bbb9GG01001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001013fooEv,_ZThn28_N3bbb9GG01001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01001013fooEv,_ZTv0_n20_N3bbb9GG01001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001013fooEv,_ZThn16_N3bbb9GG01001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001013barEv,_ZTv0_n16_N3bbb9GG01001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001013barEv,_ZThn28_N3bbb9GG01001013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001013barEv,_ZThn16_N3bbb9GG01001013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100101E = { "_ZN3bbb9GG0100101E", // class name |
| bases__ZN3bbb9GG0100101E, 6, |
| &(vtc__ZN3bbb9GG0100101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names54, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100110 : virtual ::bbb::EE010 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01001103fooEv |
| virtual void bar(); // _ZN3bbb9GG01001103barEv |
| ~GG0100110(); // tgen |
| GG0100110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100110 ::foo(){vfunc_called(this, "_ZN3bbb9GG01001103fooEv");} |
| void bbb::GG0100110 ::bar(){vfunc_called(this, "_ZN3bbb9GG01001103barEv");} |
| bbb::GG0100110 ::~GG0100110(){ note_dtor("_ZN3bbb9GG0100110E", this);} // tgen |
| bbb::GG0100110 ::GG0100110(){ note_ctor("_ZN3bbb9GG0100110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100110E, buf); |
| ::bbb::GG0100110 *dp, &lv = *(dp=new (buf) ::bbb::GG0100110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100110E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0100110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0100110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0100110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100110E); |
| dp->::bbb::GG0100110::~GG0100110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100110E(Test__ZN3bbb9GG0100110E, "_ZN3bbb9GG0100110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100110C1Ev(); |
| extern void _ZN3bbb9GG0100110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100110E[] = { |
| NSPAIR(_ZN3bbb9GG0100110C1Ev), |
| NSPAIR(_ZN3bbb9GG0100110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0100110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100110E[]; |
| extern void _ZN3bbb9GG01001103fooEv(); |
| extern void _ZN3bbb9GG01001103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001103barEv,_ZTv0_n16_N3bbb9GG01001103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001103barEv,_ZThn16_N3bbb9GG01001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01001103fooEv,_ZTv0_n20_N3bbb9GG01001103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001103fooEv,_ZThn16_N3bbb9GG01001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001103fooEv,_ZTv0_n12_N3bbb9GG01001103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001103fooEv,_ZThn28_N3bbb9GG01001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001103barEv,_ZTv0_n16_N3bbb9GG01001103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001103barEv,_ZThn28_N3bbb9GG01001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001103barEv,_ZTv0_n12_N3bbb9GG01001103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001103barEv,_ZThn36_N3bbb9GG01001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001103fooEv,_ZTv0_n16_N3bbb9GG01001103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001103fooEv,_ZThn36_N3bbb9GG01001103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01001103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01001103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001103barEv,_ZTv0_n16_N3bbb9GG01001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01001103fooEv,_ZTv0_n20_N3bbb9GG01001103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001103fooEv,_ZTv0_n12_N3bbb9GG01001103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001103barEv,_ZTv0_n16_N3bbb9GG01001103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001103barEv,_ZTv0_n12_N3bbb9GG01001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001103fooEv,_ZTv0_n16_N3bbb9GG01001103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0100110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0100110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100110E[] = { |
| {&(_ZTVN3bbb9GG0100110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0100110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0100110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100110E[]; |
| static VTBL_ENTRY alt_thunk_names55[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001103fooEv,_ZTv0_n16_N3bbb9GG01001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001103fooEv,_ZThn36_N3bbb9GG01001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001103barEv,_ZTv0_n12_N3bbb9GG01001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001103barEv,_ZThn36_N3bbb9GG01001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001103fooEv,_ZTv0_n12_N3bbb9GG01001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001103fooEv,_ZThn28_N3bbb9GG01001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01001103fooEv,_ZTv0_n20_N3bbb9GG01001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001103fooEv,_ZThn16_N3bbb9GG01001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001103barEv,_ZTv0_n16_N3bbb9GG01001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001103barEv,_ZThn28_N3bbb9GG01001103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001103barEv,_ZThn16_N3bbb9GG01001103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100110E = { "_ZN3bbb9GG0100110E", // class name |
| bases__ZN3bbb9GG0100110E, 6, |
| &(vtc__ZN3bbb9GG0100110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names55, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0100111 : virtual ::bbb::EE010 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01001113barEv |
| virtual void foo(); // _ZN3bbb9GG01001113fooEv |
| ~GG0100111(); // tgen |
| GG0100111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0100111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0100111 ::bar(){vfunc_called(this, "_ZN3bbb9GG01001113barEv");} |
| void bbb::GG0100111 ::foo(){vfunc_called(this, "_ZN3bbb9GG01001113fooEv");} |
| bbb::GG0100111 ::~GG0100111(){ note_dtor("_ZN3bbb9GG0100111E", this);} // tgen |
| bbb::GG0100111 ::GG0100111(){ note_ctor("_ZN3bbb9GG0100111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0100111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0100111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0100111E, buf); |
| ::bbb::GG0100111 *dp, &lv = *(dp=new (buf) ::bbb::GG0100111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0100111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0100111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0100111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100111E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0100111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0100111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0100111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0100111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0100111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0100111E); |
| dp->::bbb::GG0100111::~GG0100111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0100111E(Test__ZN3bbb9GG0100111E, "_ZN3bbb9GG0100111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0100111C1Ev(); |
| extern void _ZN3bbb9GG0100111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0100111E[] = { |
| NSPAIR(_ZN3bbb9GG0100111C1Ev), |
| NSPAIR(_ZN3bbb9GG0100111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0100111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100111E[]; |
| extern void _ZN3bbb9GG01001113fooEv(); |
| extern void _ZN3bbb9GG01001113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001113barEv,_ZTv0_n16_N3bbb9GG01001113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001113barEv,_ZThn16_N3bbb9GG01001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01001113fooEv,_ZTv0_n20_N3bbb9GG01001113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01001113fooEv,_ZThn16_N3bbb9GG01001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001113fooEv,_ZTv0_n12_N3bbb9GG01001113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001113fooEv,_ZThn28_N3bbb9GG01001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001113barEv,_ZTv0_n16_N3bbb9GG01001113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01001113barEv,_ZThn28_N3bbb9GG01001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01001113barEv,_ZTv0_n12_N3bbb9GG01001113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001113barEv,_ZThn36_N3bbb9GG01001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01001113fooEv,_ZTv0_n16_N3bbb9GG01001113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01001113fooEv,_ZThn36_N3bbb9GG01001113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0100111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01001113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01001113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001113barEv,_ZTv0_n16_N3bbb9GG01001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01001113fooEv,_ZTv0_n20_N3bbb9GG01001113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001113fooEv,_ZTv0_n12_N3bbb9GG01001113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001113barEv,_ZTv0_n16_N3bbb9GG01001113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01001113barEv,_ZTv0_n12_N3bbb9GG01001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01001113fooEv,_ZTv0_n16_N3bbb9GG01001113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0100111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0100111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0100111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0100111E[] = { |
| {&(_ZTVN3bbb9GG0100111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0100111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0100111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0100111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0100111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0100111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0100111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0100111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0100111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0100111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0100111E[]; |
| static VTBL_ENTRY alt_thunk_names56[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001113fooEv,_ZTv0_n16_N3bbb9GG01001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001113fooEv,_ZThn36_N3bbb9GG01001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001113barEv,_ZTv0_n12_N3bbb9GG01001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01001113barEv,_ZThn36_N3bbb9GG01001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01001113fooEv,_ZTv0_n12_N3bbb9GG01001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001113fooEv,_ZThn28_N3bbb9GG01001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01001113fooEv,_ZTv0_n20_N3bbb9GG01001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001113fooEv,_ZThn16_N3bbb9GG01001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01001113barEv,_ZTv0_n16_N3bbb9GG01001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01001113barEv,_ZThn28_N3bbb9GG01001113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01001113barEv,_ZThn16_N3bbb9GG01001113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0100111E = { "_ZN3bbb9GG0100111E", // class name |
| bases__ZN3bbb9GG0100111E, 6, |
| &(vtc__ZN3bbb9GG0100111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0100111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0100111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0100111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0100111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names56, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101000 : virtual ::bbb::EE010 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01010003fooEv |
| virtual void bar(); // _ZN3bbb9GG01010003barEv |
| ~GG0101000(); // tgen |
| GG0101000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101000 ::foo(){vfunc_called(this, "_ZN3bbb9GG01010003fooEv");} |
| void bbb::GG0101000 ::bar(){vfunc_called(this, "_ZN3bbb9GG01010003barEv");} |
| bbb::GG0101000 ::~GG0101000(){ note_dtor("_ZN3bbb9GG0101000E", this);} // tgen |
| bbb::GG0101000 ::GG0101000(){ note_ctor("_ZN3bbb9GG0101000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101000E, buf); |
| ::bbb::GG0101000 *dp, &lv = *(dp=new (buf) ::bbb::GG0101000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101000E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0101000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0101000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0101000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101000E); |
| dp->::bbb::GG0101000::~GG0101000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101000E(Test__ZN3bbb9GG0101000E, "_ZN3bbb9GG0101000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101000C1Ev(); |
| extern void _ZN3bbb9GG0101000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101000E[] = { |
| NSPAIR(_ZN3bbb9GG0101000C1Ev), |
| NSPAIR(_ZN3bbb9GG0101000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0101000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101000E[]; |
| extern void _ZN3bbb9GG01010003barEv(); |
| extern void _ZN3bbb9GG01010003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010003barEv,_ZThn16_N3bbb9GG01010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01010003fooEv,_ZTv0_n20_N3bbb9GG01010003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010003fooEv,_ZThn16_N3bbb9GG01010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010003fooEv,_ZTv0_n12_N3bbb9GG01010003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010003fooEv,_ZThn28_N3bbb9GG01010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010003barEv,_ZThn28_N3bbb9GG01010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010003fooEv,_ZTv0_n12_N3bbb9GG01010003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010003fooEv,_ZThn36_N3bbb9GG01010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010003barEv,_ZThn36_N3bbb9GG01010003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01010003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01010003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01010003fooEv,_ZTv0_n20_N3bbb9GG01010003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010003fooEv,_ZTv0_n12_N3bbb9GG01010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010003fooEv,_ZTv0_n12_N3bbb9GG01010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0101000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0101000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101000E[] = { |
| {&(_ZTVN3bbb9GG0101000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0101000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0101000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101000E[]; |
| static VTBL_ENTRY alt_thunk_names57[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01010003fooEv,_ZTv0_n12_N3bbb9GG01010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010003fooEv,_ZThn36_N3bbb9GG01010003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010003fooEv,_ZThn28_N3bbb9GG01010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01010003fooEv,_ZTv0_n20_N3bbb9GG01010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010003fooEv,_ZThn16_N3bbb9GG01010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01010003barEv,_ZTv0_n16_N3bbb9GG01010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010003barEv,_ZThn36_N3bbb9GG01010003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010003barEv,_ZThn28_N3bbb9GG01010003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010003barEv,_ZThn16_N3bbb9GG01010003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101000E = { "_ZN3bbb9GG0101000E", // class name |
| bases__ZN3bbb9GG0101000E, 6, |
| &(vtc__ZN3bbb9GG0101000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names57, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101001 : virtual ::bbb::EE010 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01010013barEv |
| virtual void foo(); // _ZN3bbb9GG01010013fooEv |
| ~GG0101001(); // tgen |
| GG0101001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101001 ::bar(){vfunc_called(this, "_ZN3bbb9GG01010013barEv");} |
| void bbb::GG0101001 ::foo(){vfunc_called(this, "_ZN3bbb9GG01010013fooEv");} |
| bbb::GG0101001 ::~GG0101001(){ note_dtor("_ZN3bbb9GG0101001E", this);} // tgen |
| bbb::GG0101001 ::GG0101001(){ note_ctor("_ZN3bbb9GG0101001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101001E, buf); |
| ::bbb::GG0101001 *dp, &lv = *(dp=new (buf) ::bbb::GG0101001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101001E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0101001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0101001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0101001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101001E); |
| dp->::bbb::GG0101001::~GG0101001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101001E(Test__ZN3bbb9GG0101001E, "_ZN3bbb9GG0101001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101001C1Ev(); |
| extern void _ZN3bbb9GG0101001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101001E[] = { |
| NSPAIR(_ZN3bbb9GG0101001C1Ev), |
| NSPAIR(_ZN3bbb9GG0101001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0101001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101001E[]; |
| extern void _ZN3bbb9GG01010013barEv(); |
| extern void _ZN3bbb9GG01010013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010013barEv,_ZThn16_N3bbb9GG01010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01010013fooEv,_ZTv0_n20_N3bbb9GG01010013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010013fooEv,_ZThn16_N3bbb9GG01010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010013fooEv,_ZTv0_n12_N3bbb9GG01010013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010013fooEv,_ZThn28_N3bbb9GG01010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010013barEv,_ZThn28_N3bbb9GG01010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010013fooEv,_ZTv0_n12_N3bbb9GG01010013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010013fooEv,_ZThn36_N3bbb9GG01010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010013barEv,_ZThn36_N3bbb9GG01010013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01010013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01010013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01010013fooEv,_ZTv0_n20_N3bbb9GG01010013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010013fooEv,_ZTv0_n12_N3bbb9GG01010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010013fooEv,_ZTv0_n12_N3bbb9GG01010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0101001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0101001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101001E[] = { |
| {&(_ZTVN3bbb9GG0101001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0101001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0101001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101001E[]; |
| static VTBL_ENTRY alt_thunk_names58[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01010013fooEv,_ZTv0_n12_N3bbb9GG01010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010013fooEv,_ZThn36_N3bbb9GG01010013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010013fooEv,_ZThn28_N3bbb9GG01010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01010013fooEv,_ZTv0_n20_N3bbb9GG01010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010013fooEv,_ZThn16_N3bbb9GG01010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01010013barEv,_ZTv0_n16_N3bbb9GG01010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010013barEv,_ZThn36_N3bbb9GG01010013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010013barEv,_ZThn28_N3bbb9GG01010013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010013barEv,_ZThn16_N3bbb9GG01010013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101001E = { "_ZN3bbb9GG0101001E", // class name |
| bases__ZN3bbb9GG0101001E, 6, |
| &(vtc__ZN3bbb9GG0101001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names58, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101010 : virtual ::bbb::EE010 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01010103fooEv |
| virtual void bar(); // _ZN3bbb9GG01010103barEv |
| ~GG0101010(); // tgen |
| GG0101010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101010 ::foo(){vfunc_called(this, "_ZN3bbb9GG01010103fooEv");} |
| void bbb::GG0101010 ::bar(){vfunc_called(this, "_ZN3bbb9GG01010103barEv");} |
| bbb::GG0101010 ::~GG0101010(){ note_dtor("_ZN3bbb9GG0101010E", this);} // tgen |
| bbb::GG0101010 ::GG0101010(){ note_ctor("_ZN3bbb9GG0101010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101010E, buf); |
| ::bbb::GG0101010 *dp, &lv = *(dp=new (buf) ::bbb::GG0101010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101010E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0101010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0101010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0101010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101010E); |
| dp->::bbb::GG0101010::~GG0101010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101010E(Test__ZN3bbb9GG0101010E, "_ZN3bbb9GG0101010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101010C1Ev(); |
| extern void _ZN3bbb9GG0101010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101010E[] = { |
| NSPAIR(_ZN3bbb9GG0101010C1Ev), |
| NSPAIR(_ZN3bbb9GG0101010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0101010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101010E[]; |
| extern void _ZN3bbb9GG01010103barEv(); |
| extern void _ZN3bbb9GG01010103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010103barEv,_ZThn16_N3bbb9GG01010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01010103fooEv,_ZTv0_n20_N3bbb9GG01010103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010103fooEv,_ZThn16_N3bbb9GG01010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010103fooEv,_ZTv0_n12_N3bbb9GG01010103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010103fooEv,_ZThn28_N3bbb9GG01010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010103barEv,_ZThn28_N3bbb9GG01010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010103fooEv,_ZTv0_n12_N3bbb9GG01010103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010103fooEv,_ZThn36_N3bbb9GG01010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010103barEv,_ZThn36_N3bbb9GG01010103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01010103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01010103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01010103fooEv,_ZTv0_n20_N3bbb9GG01010103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010103fooEv,_ZTv0_n12_N3bbb9GG01010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010103fooEv,_ZTv0_n12_N3bbb9GG01010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0101010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0101010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101010E[] = { |
| {&(_ZTVN3bbb9GG0101010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0101010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0101010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101010E[]; |
| static VTBL_ENTRY alt_thunk_names59[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01010103fooEv,_ZTv0_n12_N3bbb9GG01010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010103fooEv,_ZThn36_N3bbb9GG01010103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010103fooEv,_ZThn28_N3bbb9GG01010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01010103fooEv,_ZTv0_n20_N3bbb9GG01010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010103fooEv,_ZThn16_N3bbb9GG01010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01010103barEv,_ZTv0_n16_N3bbb9GG01010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010103barEv,_ZThn36_N3bbb9GG01010103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010103barEv,_ZThn28_N3bbb9GG01010103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010103barEv,_ZThn16_N3bbb9GG01010103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101010E = { "_ZN3bbb9GG0101010E", // class name |
| bases__ZN3bbb9GG0101010E, 6, |
| &(vtc__ZN3bbb9GG0101010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names59, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101011 : virtual ::bbb::EE010 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01010113barEv |
| virtual void foo(); // _ZN3bbb9GG01010113fooEv |
| ~GG0101011(); // tgen |
| GG0101011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101011 ::bar(){vfunc_called(this, "_ZN3bbb9GG01010113barEv");} |
| void bbb::GG0101011 ::foo(){vfunc_called(this, "_ZN3bbb9GG01010113fooEv");} |
| bbb::GG0101011 ::~GG0101011(){ note_dtor("_ZN3bbb9GG0101011E", this);} // tgen |
| bbb::GG0101011 ::GG0101011(){ note_ctor("_ZN3bbb9GG0101011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101011E, buf); |
| ::bbb::GG0101011 *dp, &lv = *(dp=new (buf) ::bbb::GG0101011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101011E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0101011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0101011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0101011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101011E); |
| dp->::bbb::GG0101011::~GG0101011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101011E(Test__ZN3bbb9GG0101011E, "_ZN3bbb9GG0101011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101011C1Ev(); |
| extern void _ZN3bbb9GG0101011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101011E[] = { |
| NSPAIR(_ZN3bbb9GG0101011C1Ev), |
| NSPAIR(_ZN3bbb9GG0101011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0101011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101011E[]; |
| extern void _ZN3bbb9GG01010113barEv(); |
| extern void _ZN3bbb9GG01010113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010113barEv,_ZThn16_N3bbb9GG01010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01010113fooEv,_ZTv0_n20_N3bbb9GG01010113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01010113fooEv,_ZThn16_N3bbb9GG01010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010113fooEv,_ZTv0_n12_N3bbb9GG01010113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010113fooEv,_ZThn28_N3bbb9GG01010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01010113barEv,_ZThn28_N3bbb9GG01010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01010113fooEv,_ZTv0_n12_N3bbb9GG01010113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010113fooEv,_ZThn36_N3bbb9GG01010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01010113barEv,_ZThn36_N3bbb9GG01010113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01010113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01010113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01010113fooEv,_ZTv0_n20_N3bbb9GG01010113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010113fooEv,_ZTv0_n12_N3bbb9GG01010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01010113fooEv,_ZTv0_n12_N3bbb9GG01010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0101011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0101011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101011E[] = { |
| {&(_ZTVN3bbb9GG0101011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0101011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0101011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101011E[]; |
| static VTBL_ENTRY alt_thunk_names60[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01010113fooEv,_ZTv0_n12_N3bbb9GG01010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010113fooEv,_ZThn36_N3bbb9GG01010113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010113fooEv,_ZThn28_N3bbb9GG01010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01010113fooEv,_ZTv0_n20_N3bbb9GG01010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010113fooEv,_ZThn16_N3bbb9GG01010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01010113barEv,_ZTv0_n16_N3bbb9GG01010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01010113barEv,_ZThn36_N3bbb9GG01010113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01010113barEv,_ZThn28_N3bbb9GG01010113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01010113barEv,_ZThn16_N3bbb9GG01010113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101011E = { "_ZN3bbb9GG0101011E", // class name |
| bases__ZN3bbb9GG0101011E, 6, |
| &(vtc__ZN3bbb9GG0101011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names60, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101100 : virtual ::bbb::EE010 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01011003fooEv |
| virtual void bar(); // _ZN3bbb9GG01011003barEv |
| ~GG0101100(); // tgen |
| GG0101100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101100 ::foo(){vfunc_called(this, "_ZN3bbb9GG01011003fooEv");} |
| void bbb::GG0101100 ::bar(){vfunc_called(this, "_ZN3bbb9GG01011003barEv");} |
| bbb::GG0101100 ::~GG0101100(){ note_dtor("_ZN3bbb9GG0101100E", this);} // tgen |
| bbb::GG0101100 ::GG0101100(){ note_ctor("_ZN3bbb9GG0101100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101100E, buf); |
| ::bbb::GG0101100 *dp, &lv = *(dp=new (buf) ::bbb::GG0101100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101100E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0101100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0101100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0101100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101100E); |
| dp->::bbb::GG0101100::~GG0101100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101100E(Test__ZN3bbb9GG0101100E, "_ZN3bbb9GG0101100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101100C1Ev(); |
| extern void _ZN3bbb9GG0101100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101100E[] = { |
| NSPAIR(_ZN3bbb9GG0101100C1Ev), |
| NSPAIR(_ZN3bbb9GG0101100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0101100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101100E[]; |
| extern void _ZN3bbb9GG01011003barEv(); |
| extern void _ZN3bbb9GG01011003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011003barEv,_ZTv0_n16_N3bbb9GG01011003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011003barEv,_ZThn16_N3bbb9GG01011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01011003fooEv,_ZTv0_n20_N3bbb9GG01011003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011003fooEv,_ZThn16_N3bbb9GG01011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011003fooEv,_ZTv0_n12_N3bbb9GG01011003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011003fooEv,_ZThn28_N3bbb9GG01011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011003barEv,_ZTv0_n16_N3bbb9GG01011003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011003barEv,_ZThn28_N3bbb9GG01011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011003barEv,_ZTv0_n12_N3bbb9GG01011003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011003barEv,_ZThn36_N3bbb9GG01011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011003fooEv,_ZTv0_n16_N3bbb9GG01011003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011003fooEv,_ZThn36_N3bbb9GG01011003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01011003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01011003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011003barEv,_ZTv0_n16_N3bbb9GG01011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01011003fooEv,_ZTv0_n20_N3bbb9GG01011003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011003fooEv,_ZTv0_n12_N3bbb9GG01011003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011003barEv,_ZTv0_n16_N3bbb9GG01011003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011003barEv,_ZTv0_n12_N3bbb9GG01011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011003fooEv,_ZTv0_n16_N3bbb9GG01011003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0101100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0101100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101100E[] = { |
| {&(_ZTVN3bbb9GG0101100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0101100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0101100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101100E[]; |
| static VTBL_ENTRY alt_thunk_names61[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011003fooEv,_ZTv0_n16_N3bbb9GG01011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011003fooEv,_ZThn36_N3bbb9GG01011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011003barEv,_ZTv0_n12_N3bbb9GG01011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011003barEv,_ZThn36_N3bbb9GG01011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011003fooEv,_ZTv0_n12_N3bbb9GG01011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011003fooEv,_ZThn28_N3bbb9GG01011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01011003fooEv,_ZTv0_n20_N3bbb9GG01011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011003fooEv,_ZThn16_N3bbb9GG01011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011003barEv,_ZTv0_n16_N3bbb9GG01011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011003barEv,_ZThn28_N3bbb9GG01011003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011003barEv,_ZThn16_N3bbb9GG01011003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101100E = { "_ZN3bbb9GG0101100E", // class name |
| bases__ZN3bbb9GG0101100E, 6, |
| &(vtc__ZN3bbb9GG0101100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names61, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101101 : virtual ::bbb::EE010 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01011013barEv |
| virtual void foo(); // _ZN3bbb9GG01011013fooEv |
| ~GG0101101(); // tgen |
| GG0101101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101101 ::bar(){vfunc_called(this, "_ZN3bbb9GG01011013barEv");} |
| void bbb::GG0101101 ::foo(){vfunc_called(this, "_ZN3bbb9GG01011013fooEv");} |
| bbb::GG0101101 ::~GG0101101(){ note_dtor("_ZN3bbb9GG0101101E", this);} // tgen |
| bbb::GG0101101 ::GG0101101(){ note_ctor("_ZN3bbb9GG0101101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101101E, buf); |
| ::bbb::GG0101101 *dp, &lv = *(dp=new (buf) ::bbb::GG0101101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101101E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0101101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0101101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0101101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101101E); |
| dp->::bbb::GG0101101::~GG0101101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101101E(Test__ZN3bbb9GG0101101E, "_ZN3bbb9GG0101101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101101C1Ev(); |
| extern void _ZN3bbb9GG0101101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101101E[] = { |
| NSPAIR(_ZN3bbb9GG0101101C1Ev), |
| NSPAIR(_ZN3bbb9GG0101101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0101101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101101E[]; |
| extern void _ZN3bbb9GG01011013barEv(); |
| extern void _ZN3bbb9GG01011013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011013barEv,_ZTv0_n16_N3bbb9GG01011013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011013barEv,_ZThn16_N3bbb9GG01011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01011013fooEv,_ZTv0_n20_N3bbb9GG01011013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011013fooEv,_ZThn16_N3bbb9GG01011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011013fooEv,_ZTv0_n12_N3bbb9GG01011013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011013fooEv,_ZThn28_N3bbb9GG01011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011013barEv,_ZTv0_n16_N3bbb9GG01011013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011013barEv,_ZThn28_N3bbb9GG01011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011013barEv,_ZTv0_n12_N3bbb9GG01011013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011013barEv,_ZThn36_N3bbb9GG01011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011013fooEv,_ZTv0_n16_N3bbb9GG01011013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011013fooEv,_ZThn36_N3bbb9GG01011013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01011013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01011013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011013barEv,_ZTv0_n16_N3bbb9GG01011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01011013fooEv,_ZTv0_n20_N3bbb9GG01011013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011013fooEv,_ZTv0_n12_N3bbb9GG01011013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011013barEv,_ZTv0_n16_N3bbb9GG01011013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011013barEv,_ZTv0_n12_N3bbb9GG01011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011013fooEv,_ZTv0_n16_N3bbb9GG01011013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0101101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0101101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101101E[] = { |
| {&(_ZTVN3bbb9GG0101101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0101101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0101101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101101E[]; |
| static VTBL_ENTRY alt_thunk_names62[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011013fooEv,_ZTv0_n16_N3bbb9GG01011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011013fooEv,_ZThn36_N3bbb9GG01011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011013barEv,_ZTv0_n12_N3bbb9GG01011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011013barEv,_ZThn36_N3bbb9GG01011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011013fooEv,_ZTv0_n12_N3bbb9GG01011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011013fooEv,_ZThn28_N3bbb9GG01011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01011013fooEv,_ZTv0_n20_N3bbb9GG01011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011013fooEv,_ZThn16_N3bbb9GG01011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011013barEv,_ZTv0_n16_N3bbb9GG01011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011013barEv,_ZThn28_N3bbb9GG01011013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011013barEv,_ZThn16_N3bbb9GG01011013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101101E = { "_ZN3bbb9GG0101101E", // class name |
| bases__ZN3bbb9GG0101101E, 6, |
| &(vtc__ZN3bbb9GG0101101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names62, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101110 : virtual ::bbb::EE010 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01011103fooEv |
| virtual void bar(); // _ZN3bbb9GG01011103barEv |
| ~GG0101110(); // tgen |
| GG0101110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101110 ::foo(){vfunc_called(this, "_ZN3bbb9GG01011103fooEv");} |
| void bbb::GG0101110 ::bar(){vfunc_called(this, "_ZN3bbb9GG01011103barEv");} |
| bbb::GG0101110 ::~GG0101110(){ note_dtor("_ZN3bbb9GG0101110E", this);} // tgen |
| bbb::GG0101110 ::GG0101110(){ note_ctor("_ZN3bbb9GG0101110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101110E, buf); |
| ::bbb::GG0101110 *dp, &lv = *(dp=new (buf) ::bbb::GG0101110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101110E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0101110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0101110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0101110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101110E); |
| dp->::bbb::GG0101110::~GG0101110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101110E(Test__ZN3bbb9GG0101110E, "_ZN3bbb9GG0101110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101110C1Ev(); |
| extern void _ZN3bbb9GG0101110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101110E[] = { |
| NSPAIR(_ZN3bbb9GG0101110C1Ev), |
| NSPAIR(_ZN3bbb9GG0101110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0101110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101110E[]; |
| extern void _ZN3bbb9GG01011103barEv(); |
| extern void _ZN3bbb9GG01011103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011103barEv,_ZTv0_n16_N3bbb9GG01011103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011103barEv,_ZThn16_N3bbb9GG01011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01011103fooEv,_ZTv0_n20_N3bbb9GG01011103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011103fooEv,_ZThn16_N3bbb9GG01011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011103fooEv,_ZTv0_n12_N3bbb9GG01011103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011103fooEv,_ZThn28_N3bbb9GG01011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011103barEv,_ZTv0_n16_N3bbb9GG01011103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011103barEv,_ZThn28_N3bbb9GG01011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011103barEv,_ZTv0_n12_N3bbb9GG01011103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011103barEv,_ZThn36_N3bbb9GG01011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011103fooEv,_ZTv0_n16_N3bbb9GG01011103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011103fooEv,_ZThn36_N3bbb9GG01011103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01011103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01011103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011103barEv,_ZTv0_n16_N3bbb9GG01011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01011103fooEv,_ZTv0_n20_N3bbb9GG01011103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011103fooEv,_ZTv0_n12_N3bbb9GG01011103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011103barEv,_ZTv0_n16_N3bbb9GG01011103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011103barEv,_ZTv0_n12_N3bbb9GG01011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011103fooEv,_ZTv0_n16_N3bbb9GG01011103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0101110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0101110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101110E[] = { |
| {&(_ZTVN3bbb9GG0101110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0101110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0101110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101110E[]; |
| static VTBL_ENTRY alt_thunk_names63[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011103fooEv,_ZTv0_n16_N3bbb9GG01011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011103fooEv,_ZThn36_N3bbb9GG01011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011103barEv,_ZTv0_n12_N3bbb9GG01011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011103barEv,_ZThn36_N3bbb9GG01011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011103fooEv,_ZTv0_n12_N3bbb9GG01011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011103fooEv,_ZThn28_N3bbb9GG01011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01011103fooEv,_ZTv0_n20_N3bbb9GG01011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011103fooEv,_ZThn16_N3bbb9GG01011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011103barEv,_ZTv0_n16_N3bbb9GG01011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011103barEv,_ZThn28_N3bbb9GG01011103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011103barEv,_ZThn16_N3bbb9GG01011103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101110E = { "_ZN3bbb9GG0101110E", // class name |
| bases__ZN3bbb9GG0101110E, 6, |
| &(vtc__ZN3bbb9GG0101110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names63, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0101111 : virtual ::bbb::EE010 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01011113barEv |
| virtual void foo(); // _ZN3bbb9GG01011113fooEv |
| ~GG0101111(); // tgen |
| GG0101111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0101111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0101111 ::bar(){vfunc_called(this, "_ZN3bbb9GG01011113barEv");} |
| void bbb::GG0101111 ::foo(){vfunc_called(this, "_ZN3bbb9GG01011113fooEv");} |
| bbb::GG0101111 ::~GG0101111(){ note_dtor("_ZN3bbb9GG0101111E", this);} // tgen |
| bbb::GG0101111 ::GG0101111(){ note_ctor("_ZN3bbb9GG0101111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0101111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0101111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0101111E, buf); |
| ::bbb::GG0101111 *dp, &lv = *(dp=new (buf) ::bbb::GG0101111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0101111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0101111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE010*), ABISELECT(40,28), "_ZN3bbb9GG0101111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101111E"); |
| check_base_class_offset(lv, (::bbb::EE010*), ABISELECT(24,16), "_ZN3bbb9GG0101111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0101111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0101111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0101111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0101111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0101111E); |
| dp->::bbb::GG0101111::~GG0101111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0101111E(Test__ZN3bbb9GG0101111E, "_ZN3bbb9GG0101111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0101111C1Ev(); |
| extern void _ZN3bbb9GG0101111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0101111E[] = { |
| NSPAIR(_ZN3bbb9GG0101111C1Ev), |
| NSPAIR(_ZN3bbb9GG0101111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE010E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE010E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0101111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE010E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101111E[]; |
| extern void _ZN3bbb9GG01011113barEv(); |
| extern void _ZN3bbb9GG01011113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011113barEv,_ZTv0_n16_N3bbb9GG01011113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011113barEv,_ZThn16_N3bbb9GG01011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01011113fooEv,_ZTv0_n20_N3bbb9GG01011113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01011113fooEv,_ZThn16_N3bbb9GG01011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011113fooEv,_ZTv0_n12_N3bbb9GG01011113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011113fooEv,_ZThn28_N3bbb9GG01011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011113barEv,_ZTv0_n16_N3bbb9GG01011113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01011113barEv,_ZThn28_N3bbb9GG01011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01011113barEv,_ZTv0_n12_N3bbb9GG01011113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011113barEv,_ZThn36_N3bbb9GG01011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01011113fooEv,_ZTv0_n16_N3bbb9GG01011113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01011113fooEv,_ZThn36_N3bbb9GG01011113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0101111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01011113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01011113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011113barEv,_ZTv0_n16_N3bbb9GG01011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01011113fooEv,_ZTv0_n20_N3bbb9GG01011113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011113fooEv,_ZTv0_n12_N3bbb9GG01011113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011113barEv,_ZTv0_n16_N3bbb9GG01011113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01011113barEv,_ZTv0_n12_N3bbb9GG01011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01011113fooEv,_ZTv0_n16_N3bbb9GG01011113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0101111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0101111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0103barEv(); |
| extern void _ZN3bbb5EE0103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE010E__NS_9GG0101111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0101111E[] = { |
| {&(_ZTVN3bbb9GG0101111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0101111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0101111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0101111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0101111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0101111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE010E__NS_9GG0101111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE010E__NS_9GG0101111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0101111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0101111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0101111E[]; |
| static VTBL_ENTRY alt_thunk_names64[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0103barEv,_ZTv0_n16_N3bbb5EE0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103barEv,_ZThn12_N3bbb5EE0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0103fooEv,_ZTv0_n12_N3bbb5EE0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0103fooEv,_ZThn12_N3bbb5EE0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011113fooEv,_ZTv0_n16_N3bbb9GG01011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011113fooEv,_ZThn36_N3bbb9GG01011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011113barEv,_ZTv0_n12_N3bbb9GG01011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01011113barEv,_ZThn36_N3bbb9GG01011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01011113fooEv,_ZTv0_n12_N3bbb9GG01011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011113fooEv,_ZThn28_N3bbb9GG01011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01011113fooEv,_ZTv0_n20_N3bbb9GG01011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011113fooEv,_ZThn16_N3bbb9GG01011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01011113barEv,_ZTv0_n16_N3bbb9GG01011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01011113barEv,_ZThn28_N3bbb9GG01011113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01011113barEv,_ZThn16_N3bbb9GG01011113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0101111E = { "_ZN3bbb9GG0101111E", // class name |
| bases__ZN3bbb9GG0101111E, 6, |
| &(vtc__ZN3bbb9GG0101111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0101111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0101111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0101111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0101111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names64, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110000 : virtual ::bbb::EE011 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01100003fooEv |
| virtual void bar(); // _ZN3bbb9GG01100003barEv |
| ~GG0110000(); // tgen |
| GG0110000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110000 ::foo(){vfunc_called(this, "_ZN3bbb9GG01100003fooEv");} |
| void bbb::GG0110000 ::bar(){vfunc_called(this, "_ZN3bbb9GG01100003barEv");} |
| bbb::GG0110000 ::~GG0110000(){ note_dtor("_ZN3bbb9GG0110000E", this);} // tgen |
| bbb::GG0110000 ::GG0110000(){ note_ctor("_ZN3bbb9GG0110000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110000E, buf); |
| ::bbb::GG0110000 *dp, &lv = *(dp=new (buf) ::bbb::GG0110000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110000E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0110000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0110000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0110000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110000E); |
| dp->::bbb::GG0110000::~GG0110000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110000E(Test__ZN3bbb9GG0110000E, "_ZN3bbb9GG0110000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110000C1Ev(); |
| extern void _ZN3bbb9GG0110000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110000E[] = { |
| NSPAIR(_ZN3bbb9GG0110000C1Ev), |
| NSPAIR(_ZN3bbb9GG0110000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0110000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110000E[]; |
| extern void _ZN3bbb9GG01100003fooEv(); |
| extern void _ZN3bbb9GG01100003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100003barEv,_ZThn16_N3bbb9GG01100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01100003fooEv,_ZTv0_n20_N3bbb9GG01100003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100003fooEv,_ZThn16_N3bbb9GG01100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100003fooEv,_ZTv0_n12_N3bbb9GG01100003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100003fooEv,_ZThn28_N3bbb9GG01100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100003barEv,_ZThn28_N3bbb9GG01100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100003fooEv,_ZTv0_n12_N3bbb9GG01100003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100003fooEv,_ZThn36_N3bbb9GG01100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100003barEv,_ZThn36_N3bbb9GG01100003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01100003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01100003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01100003fooEv,_ZTv0_n20_N3bbb9GG01100003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100003fooEv,_ZTv0_n12_N3bbb9GG01100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100003fooEv,_ZTv0_n12_N3bbb9GG01100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0110000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0110000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110000E[] = { |
| {&(_ZTVN3bbb9GG0110000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0110000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0110000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110000E[]; |
| static VTBL_ENTRY alt_thunk_names65[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01100003fooEv,_ZTv0_n12_N3bbb9GG01100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100003fooEv,_ZThn36_N3bbb9GG01100003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100003fooEv,_ZThn28_N3bbb9GG01100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01100003fooEv,_ZTv0_n20_N3bbb9GG01100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100003fooEv,_ZThn16_N3bbb9GG01100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01100003barEv,_ZTv0_n16_N3bbb9GG01100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100003barEv,_ZThn36_N3bbb9GG01100003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100003barEv,_ZThn28_N3bbb9GG01100003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100003barEv,_ZThn16_N3bbb9GG01100003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110000E = { "_ZN3bbb9GG0110000E", // class name |
| bases__ZN3bbb9GG0110000E, 6, |
| &(vtc__ZN3bbb9GG0110000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names65, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110001 : virtual ::bbb::EE011 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01100013barEv |
| virtual void foo(); // _ZN3bbb9GG01100013fooEv |
| ~GG0110001(); // tgen |
| GG0110001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110001 ::bar(){vfunc_called(this, "_ZN3bbb9GG01100013barEv");} |
| void bbb::GG0110001 ::foo(){vfunc_called(this, "_ZN3bbb9GG01100013fooEv");} |
| bbb::GG0110001 ::~GG0110001(){ note_dtor("_ZN3bbb9GG0110001E", this);} // tgen |
| bbb::GG0110001 ::GG0110001(){ note_ctor("_ZN3bbb9GG0110001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110001E, buf); |
| ::bbb::GG0110001 *dp, &lv = *(dp=new (buf) ::bbb::GG0110001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110001E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG0110001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG0110001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG0110001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110001E); |
| dp->::bbb::GG0110001::~GG0110001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110001E(Test__ZN3bbb9GG0110001E, "_ZN3bbb9GG0110001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110001C1Ev(); |
| extern void _ZN3bbb9GG0110001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110001E[] = { |
| NSPAIR(_ZN3bbb9GG0110001C1Ev), |
| NSPAIR(_ZN3bbb9GG0110001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG0110001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110001E[]; |
| extern void _ZN3bbb9GG01100013fooEv(); |
| extern void _ZN3bbb9GG01100013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100013barEv,_ZThn16_N3bbb9GG01100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01100013fooEv,_ZTv0_n20_N3bbb9GG01100013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100013fooEv,_ZThn16_N3bbb9GG01100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100013fooEv,_ZTv0_n12_N3bbb9GG01100013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100013fooEv,_ZThn28_N3bbb9GG01100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100013barEv,_ZThn28_N3bbb9GG01100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100013fooEv,_ZTv0_n12_N3bbb9GG01100013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100013fooEv,_ZThn36_N3bbb9GG01100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100013barEv,_ZThn36_N3bbb9GG01100013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01100013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01100013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01100013fooEv,_ZTv0_n20_N3bbb9GG01100013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100013fooEv,_ZTv0_n12_N3bbb9GG01100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100013fooEv,_ZTv0_n12_N3bbb9GG01100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG0110001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0110001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110001E[] = { |
| {&(_ZTVN3bbb9GG0110001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG0110001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG0110001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110001E[]; |
| static VTBL_ENTRY alt_thunk_names66[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01100013fooEv,_ZTv0_n12_N3bbb9GG01100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100013fooEv,_ZThn36_N3bbb9GG01100013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100013fooEv,_ZThn28_N3bbb9GG01100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01100013fooEv,_ZTv0_n20_N3bbb9GG01100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100013fooEv,_ZThn16_N3bbb9GG01100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01100013barEv,_ZTv0_n16_N3bbb9GG01100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100013barEv,_ZThn36_N3bbb9GG01100013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100013barEv,_ZThn28_N3bbb9GG01100013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100013barEv,_ZThn16_N3bbb9GG01100013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110001E = { "_ZN3bbb9GG0110001E", // class name |
| bases__ZN3bbb9GG0110001E, 6, |
| &(vtc__ZN3bbb9GG0110001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names66, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110010 : virtual ::bbb::EE011 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01100103fooEv |
| virtual void bar(); // _ZN3bbb9GG01100103barEv |
| ~GG0110010(); // tgen |
| GG0110010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110010 ::foo(){vfunc_called(this, "_ZN3bbb9GG01100103fooEv");} |
| void bbb::GG0110010 ::bar(){vfunc_called(this, "_ZN3bbb9GG01100103barEv");} |
| bbb::GG0110010 ::~GG0110010(){ note_dtor("_ZN3bbb9GG0110010E", this);} // tgen |
| bbb::GG0110010 ::GG0110010(){ note_ctor("_ZN3bbb9GG0110010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110010E, buf); |
| ::bbb::GG0110010 *dp, &lv = *(dp=new (buf) ::bbb::GG0110010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110010E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0110010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0110010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0110010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110010E); |
| dp->::bbb::GG0110010::~GG0110010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110010E(Test__ZN3bbb9GG0110010E, "_ZN3bbb9GG0110010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110010C1Ev(); |
| extern void _ZN3bbb9GG0110010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110010E[] = { |
| NSPAIR(_ZN3bbb9GG0110010C1Ev), |
| NSPAIR(_ZN3bbb9GG0110010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0110010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110010E[]; |
| extern void _ZN3bbb9GG01100103fooEv(); |
| extern void _ZN3bbb9GG01100103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100103barEv,_ZThn16_N3bbb9GG01100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01100103fooEv,_ZTv0_n20_N3bbb9GG01100103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100103fooEv,_ZThn16_N3bbb9GG01100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100103fooEv,_ZTv0_n12_N3bbb9GG01100103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100103fooEv,_ZThn28_N3bbb9GG01100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100103barEv,_ZThn28_N3bbb9GG01100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100103fooEv,_ZTv0_n12_N3bbb9GG01100103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100103fooEv,_ZThn36_N3bbb9GG01100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100103barEv,_ZThn36_N3bbb9GG01100103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01100103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01100103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01100103fooEv,_ZTv0_n20_N3bbb9GG01100103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100103fooEv,_ZTv0_n12_N3bbb9GG01100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100103fooEv,_ZTv0_n12_N3bbb9GG01100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0110010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0110010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110010E[] = { |
| {&(_ZTVN3bbb9GG0110010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0110010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0110010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110010E[]; |
| static VTBL_ENTRY alt_thunk_names67[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01100103fooEv,_ZTv0_n12_N3bbb9GG01100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100103fooEv,_ZThn36_N3bbb9GG01100103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100103fooEv,_ZThn28_N3bbb9GG01100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01100103fooEv,_ZTv0_n20_N3bbb9GG01100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100103fooEv,_ZThn16_N3bbb9GG01100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01100103barEv,_ZTv0_n16_N3bbb9GG01100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100103barEv,_ZThn36_N3bbb9GG01100103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100103barEv,_ZThn28_N3bbb9GG01100103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100103barEv,_ZThn16_N3bbb9GG01100103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110010E = { "_ZN3bbb9GG0110010E", // class name |
| bases__ZN3bbb9GG0110010E, 6, |
| &(vtc__ZN3bbb9GG0110010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names67, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110011 : virtual ::bbb::EE011 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01100113barEv |
| virtual void foo(); // _ZN3bbb9GG01100113fooEv |
| ~GG0110011(); // tgen |
| GG0110011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110011 ::bar(){vfunc_called(this, "_ZN3bbb9GG01100113barEv");} |
| void bbb::GG0110011 ::foo(){vfunc_called(this, "_ZN3bbb9GG01100113fooEv");} |
| bbb::GG0110011 ::~GG0110011(){ note_dtor("_ZN3bbb9GG0110011E", this);} // tgen |
| bbb::GG0110011 ::GG0110011(){ note_ctor("_ZN3bbb9GG0110011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110011E, buf); |
| ::bbb::GG0110011 *dp, &lv = *(dp=new (buf) ::bbb::GG0110011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110011E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG0110011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG0110011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG0110011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110011E); |
| dp->::bbb::GG0110011::~GG0110011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110011E(Test__ZN3bbb9GG0110011E, "_ZN3bbb9GG0110011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110011C1Ev(); |
| extern void _ZN3bbb9GG0110011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110011E[] = { |
| NSPAIR(_ZN3bbb9GG0110011C1Ev), |
| NSPAIR(_ZN3bbb9GG0110011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG0110011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110011E[]; |
| extern void _ZN3bbb9GG01100113fooEv(); |
| extern void _ZN3bbb9GG01100113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100113barEv,_ZThn16_N3bbb9GG01100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01100113fooEv,_ZTv0_n20_N3bbb9GG01100113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01100113fooEv,_ZThn16_N3bbb9GG01100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100113fooEv,_ZTv0_n12_N3bbb9GG01100113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100113fooEv,_ZThn28_N3bbb9GG01100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01100113barEv,_ZThn28_N3bbb9GG01100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01100113fooEv,_ZTv0_n12_N3bbb9GG01100113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100113fooEv,_ZThn36_N3bbb9GG01100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01100113barEv,_ZThn36_N3bbb9GG01100113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01100113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01100113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01100113fooEv,_ZTv0_n20_N3bbb9GG01100113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100113fooEv,_ZTv0_n12_N3bbb9GG01100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01100113fooEv,_ZTv0_n12_N3bbb9GG01100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG0110011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0110011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110011E[] = { |
| {&(_ZTVN3bbb9GG0110011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG0110011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG0110011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110011E[]; |
| static VTBL_ENTRY alt_thunk_names68[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01100113fooEv,_ZTv0_n12_N3bbb9GG01100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100113fooEv,_ZThn36_N3bbb9GG01100113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100113fooEv,_ZThn28_N3bbb9GG01100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01100113fooEv,_ZTv0_n20_N3bbb9GG01100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100113fooEv,_ZThn16_N3bbb9GG01100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01100113barEv,_ZTv0_n16_N3bbb9GG01100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01100113barEv,_ZThn36_N3bbb9GG01100113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01100113barEv,_ZThn28_N3bbb9GG01100113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01100113barEv,_ZThn16_N3bbb9GG01100113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110011E = { "_ZN3bbb9GG0110011E", // class name |
| bases__ZN3bbb9GG0110011E, 6, |
| &(vtc__ZN3bbb9GG0110011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names68, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110100 : virtual ::bbb::EE011 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01101003fooEv |
| virtual void bar(); // _ZN3bbb9GG01101003barEv |
| ~GG0110100(); // tgen |
| GG0110100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110100 ::foo(){vfunc_called(this, "_ZN3bbb9GG01101003fooEv");} |
| void bbb::GG0110100 ::bar(){vfunc_called(this, "_ZN3bbb9GG01101003barEv");} |
| bbb::GG0110100 ::~GG0110100(){ note_dtor("_ZN3bbb9GG0110100E", this);} // tgen |
| bbb::GG0110100 ::GG0110100(){ note_ctor("_ZN3bbb9GG0110100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110100E, buf); |
| ::bbb::GG0110100 *dp, &lv = *(dp=new (buf) ::bbb::GG0110100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110100E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0110100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0110100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0110100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110100E); |
| dp->::bbb::GG0110100::~GG0110100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110100E(Test__ZN3bbb9GG0110100E, "_ZN3bbb9GG0110100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110100C1Ev(); |
| extern void _ZN3bbb9GG0110100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110100E[] = { |
| NSPAIR(_ZN3bbb9GG0110100C1Ev), |
| NSPAIR(_ZN3bbb9GG0110100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0110100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110100E[]; |
| extern void _ZN3bbb9GG01101003fooEv(); |
| extern void _ZN3bbb9GG01101003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101003barEv,_ZTv0_n16_N3bbb9GG01101003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101003barEv,_ZThn16_N3bbb9GG01101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01101003fooEv,_ZTv0_n20_N3bbb9GG01101003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101003fooEv,_ZThn16_N3bbb9GG01101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101003fooEv,_ZTv0_n12_N3bbb9GG01101003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101003fooEv,_ZThn28_N3bbb9GG01101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101003barEv,_ZTv0_n16_N3bbb9GG01101003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101003barEv,_ZThn28_N3bbb9GG01101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101003barEv,_ZTv0_n12_N3bbb9GG01101003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101003barEv,_ZThn36_N3bbb9GG01101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101003fooEv,_ZTv0_n16_N3bbb9GG01101003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101003fooEv,_ZThn36_N3bbb9GG01101003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01101003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01101003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101003barEv,_ZTv0_n16_N3bbb9GG01101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01101003fooEv,_ZTv0_n20_N3bbb9GG01101003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101003fooEv,_ZTv0_n12_N3bbb9GG01101003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101003barEv,_ZTv0_n16_N3bbb9GG01101003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101003barEv,_ZTv0_n12_N3bbb9GG01101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101003fooEv,_ZTv0_n16_N3bbb9GG01101003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0110100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0110100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110100E[] = { |
| {&(_ZTVN3bbb9GG0110100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0110100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0110100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110100E[]; |
| static VTBL_ENTRY alt_thunk_names69[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101003fooEv,_ZTv0_n16_N3bbb9GG01101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101003fooEv,_ZThn36_N3bbb9GG01101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101003barEv,_ZTv0_n12_N3bbb9GG01101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101003barEv,_ZThn36_N3bbb9GG01101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101003fooEv,_ZTv0_n12_N3bbb9GG01101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101003fooEv,_ZThn28_N3bbb9GG01101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01101003fooEv,_ZTv0_n20_N3bbb9GG01101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101003fooEv,_ZThn16_N3bbb9GG01101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101003barEv,_ZTv0_n16_N3bbb9GG01101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101003barEv,_ZThn28_N3bbb9GG01101003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101003barEv,_ZThn16_N3bbb9GG01101003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110100E = { "_ZN3bbb9GG0110100E", // class name |
| bases__ZN3bbb9GG0110100E, 6, |
| &(vtc__ZN3bbb9GG0110100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names69, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110101 : virtual ::bbb::EE011 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01101013barEv |
| virtual void foo(); // _ZN3bbb9GG01101013fooEv |
| ~GG0110101(); // tgen |
| GG0110101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110101 ::bar(){vfunc_called(this, "_ZN3bbb9GG01101013barEv");} |
| void bbb::GG0110101 ::foo(){vfunc_called(this, "_ZN3bbb9GG01101013fooEv");} |
| bbb::GG0110101 ::~GG0110101(){ note_dtor("_ZN3bbb9GG0110101E", this);} // tgen |
| bbb::GG0110101 ::GG0110101(){ note_ctor("_ZN3bbb9GG0110101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110101E, buf); |
| ::bbb::GG0110101 *dp, &lv = *(dp=new (buf) ::bbb::GG0110101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110101E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG0110101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG0110101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG0110101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110101E); |
| dp->::bbb::GG0110101::~GG0110101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110101E(Test__ZN3bbb9GG0110101E, "_ZN3bbb9GG0110101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110101C1Ev(); |
| extern void _ZN3bbb9GG0110101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110101E[] = { |
| NSPAIR(_ZN3bbb9GG0110101C1Ev), |
| NSPAIR(_ZN3bbb9GG0110101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG0110101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110101E[]; |
| extern void _ZN3bbb9GG01101013fooEv(); |
| extern void _ZN3bbb9GG01101013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101013barEv,_ZTv0_n16_N3bbb9GG01101013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101013barEv,_ZThn16_N3bbb9GG01101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01101013fooEv,_ZTv0_n20_N3bbb9GG01101013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101013fooEv,_ZThn16_N3bbb9GG01101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101013fooEv,_ZTv0_n12_N3bbb9GG01101013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101013fooEv,_ZThn28_N3bbb9GG01101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101013barEv,_ZTv0_n16_N3bbb9GG01101013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101013barEv,_ZThn28_N3bbb9GG01101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101013barEv,_ZTv0_n12_N3bbb9GG01101013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101013barEv,_ZThn36_N3bbb9GG01101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101013fooEv,_ZTv0_n16_N3bbb9GG01101013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101013fooEv,_ZThn36_N3bbb9GG01101013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01101013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01101013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101013barEv,_ZTv0_n16_N3bbb9GG01101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01101013fooEv,_ZTv0_n20_N3bbb9GG01101013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101013fooEv,_ZTv0_n12_N3bbb9GG01101013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101013barEv,_ZTv0_n16_N3bbb9GG01101013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101013barEv,_ZTv0_n12_N3bbb9GG01101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101013fooEv,_ZTv0_n16_N3bbb9GG01101013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG0110101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0110101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110101E[] = { |
| {&(_ZTVN3bbb9GG0110101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG0110101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG0110101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110101E[]; |
| static VTBL_ENTRY alt_thunk_names70[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101013fooEv,_ZTv0_n16_N3bbb9GG01101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101013fooEv,_ZThn36_N3bbb9GG01101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101013barEv,_ZTv0_n12_N3bbb9GG01101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101013barEv,_ZThn36_N3bbb9GG01101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101013fooEv,_ZTv0_n12_N3bbb9GG01101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101013fooEv,_ZThn28_N3bbb9GG01101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01101013fooEv,_ZTv0_n20_N3bbb9GG01101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101013fooEv,_ZThn16_N3bbb9GG01101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101013barEv,_ZTv0_n16_N3bbb9GG01101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101013barEv,_ZThn28_N3bbb9GG01101013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101013barEv,_ZThn16_N3bbb9GG01101013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110101E = { "_ZN3bbb9GG0110101E", // class name |
| bases__ZN3bbb9GG0110101E, 6, |
| &(vtc__ZN3bbb9GG0110101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names70, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110110 : virtual ::bbb::EE011 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01101103fooEv |
| virtual void bar(); // _ZN3bbb9GG01101103barEv |
| ~GG0110110(); // tgen |
| GG0110110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110110 ::foo(){vfunc_called(this, "_ZN3bbb9GG01101103fooEv");} |
| void bbb::GG0110110 ::bar(){vfunc_called(this, "_ZN3bbb9GG01101103barEv");} |
| bbb::GG0110110 ::~GG0110110(){ note_dtor("_ZN3bbb9GG0110110E", this);} // tgen |
| bbb::GG0110110 ::GG0110110(){ note_ctor("_ZN3bbb9GG0110110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110110E, buf); |
| ::bbb::GG0110110 *dp, &lv = *(dp=new (buf) ::bbb::GG0110110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110110E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0110110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0110110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0110110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110110E); |
| dp->::bbb::GG0110110::~GG0110110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110110E(Test__ZN3bbb9GG0110110E, "_ZN3bbb9GG0110110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110110C1Ev(); |
| extern void _ZN3bbb9GG0110110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110110E[] = { |
| NSPAIR(_ZN3bbb9GG0110110C1Ev), |
| NSPAIR(_ZN3bbb9GG0110110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0110110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110110E[]; |
| extern void _ZN3bbb9GG01101103fooEv(); |
| extern void _ZN3bbb9GG01101103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101103barEv,_ZTv0_n16_N3bbb9GG01101103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101103barEv,_ZThn16_N3bbb9GG01101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01101103fooEv,_ZTv0_n20_N3bbb9GG01101103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101103fooEv,_ZThn16_N3bbb9GG01101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101103fooEv,_ZTv0_n12_N3bbb9GG01101103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101103fooEv,_ZThn28_N3bbb9GG01101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101103barEv,_ZTv0_n16_N3bbb9GG01101103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101103barEv,_ZThn28_N3bbb9GG01101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101103barEv,_ZTv0_n12_N3bbb9GG01101103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101103barEv,_ZThn36_N3bbb9GG01101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101103fooEv,_ZTv0_n16_N3bbb9GG01101103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101103fooEv,_ZThn36_N3bbb9GG01101103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01101103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01101103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101103barEv,_ZTv0_n16_N3bbb9GG01101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01101103fooEv,_ZTv0_n20_N3bbb9GG01101103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101103fooEv,_ZTv0_n12_N3bbb9GG01101103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101103barEv,_ZTv0_n16_N3bbb9GG01101103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101103barEv,_ZTv0_n12_N3bbb9GG01101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101103fooEv,_ZTv0_n16_N3bbb9GG01101103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0110110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0110110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110110E[] = { |
| {&(_ZTVN3bbb9GG0110110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0110110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0110110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110110E[]; |
| static VTBL_ENTRY alt_thunk_names71[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101103fooEv,_ZTv0_n16_N3bbb9GG01101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101103fooEv,_ZThn36_N3bbb9GG01101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101103barEv,_ZTv0_n12_N3bbb9GG01101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101103barEv,_ZThn36_N3bbb9GG01101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101103fooEv,_ZTv0_n12_N3bbb9GG01101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101103fooEv,_ZThn28_N3bbb9GG01101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01101103fooEv,_ZTv0_n20_N3bbb9GG01101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101103fooEv,_ZThn16_N3bbb9GG01101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101103barEv,_ZTv0_n16_N3bbb9GG01101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101103barEv,_ZThn28_N3bbb9GG01101103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101103barEv,_ZThn16_N3bbb9GG01101103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110110E = { "_ZN3bbb9GG0110110E", // class name |
| bases__ZN3bbb9GG0110110E, 6, |
| &(vtc__ZN3bbb9GG0110110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names71, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0110111 : virtual ::bbb::EE011 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01101113barEv |
| virtual void foo(); // _ZN3bbb9GG01101113fooEv |
| ~GG0110111(); // tgen |
| GG0110111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0110111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0110111 ::bar(){vfunc_called(this, "_ZN3bbb9GG01101113barEv");} |
| void bbb::GG0110111 ::foo(){vfunc_called(this, "_ZN3bbb9GG01101113fooEv");} |
| bbb::GG0110111 ::~GG0110111(){ note_dtor("_ZN3bbb9GG0110111E", this);} // tgen |
| bbb::GG0110111 ::GG0110111(){ note_ctor("_ZN3bbb9GG0110111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0110111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0110111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0110111E, buf); |
| ::bbb::GG0110111 *dp, &lv = *(dp=new (buf) ::bbb::GG0110111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0110111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0110111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0110111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110111E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0110111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG0110111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG0110111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG0110111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0110111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0110111E); |
| dp->::bbb::GG0110111::~GG0110111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0110111E(Test__ZN3bbb9GG0110111E, "_ZN3bbb9GG0110111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0110111C1Ev(); |
| extern void _ZN3bbb9GG0110111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0110111E[] = { |
| NSPAIR(_ZN3bbb9GG0110111C1Ev), |
| NSPAIR(_ZN3bbb9GG0110111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG0110111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110111E[]; |
| extern void _ZN3bbb9GG01101113fooEv(); |
| extern void _ZN3bbb9GG01101113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101113barEv,_ZTv0_n16_N3bbb9GG01101113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101113barEv,_ZThn16_N3bbb9GG01101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01101113fooEv,_ZTv0_n20_N3bbb9GG01101113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01101113fooEv,_ZThn16_N3bbb9GG01101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101113fooEv,_ZTv0_n12_N3bbb9GG01101113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101113fooEv,_ZThn28_N3bbb9GG01101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101113barEv,_ZTv0_n16_N3bbb9GG01101113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01101113barEv,_ZThn28_N3bbb9GG01101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01101113barEv,_ZTv0_n12_N3bbb9GG01101113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101113barEv,_ZThn36_N3bbb9GG01101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01101113fooEv,_ZTv0_n16_N3bbb9GG01101113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01101113fooEv,_ZThn36_N3bbb9GG01101113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0110111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01101113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01101113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101113barEv,_ZTv0_n16_N3bbb9GG01101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01101113fooEv,_ZTv0_n20_N3bbb9GG01101113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101113fooEv,_ZTv0_n12_N3bbb9GG01101113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101113barEv,_ZTv0_n16_N3bbb9GG01101113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01101113barEv,_ZTv0_n12_N3bbb9GG01101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01101113fooEv,_ZTv0_n16_N3bbb9GG01101113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG0110111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0110111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0110111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0110111E[] = { |
| {&(_ZTVN3bbb9GG0110111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG0110111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG0110111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0110111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0110111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0110111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0110111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0110111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0110111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0110111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0110111E[]; |
| static VTBL_ENTRY alt_thunk_names72[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101113fooEv,_ZTv0_n16_N3bbb9GG01101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101113fooEv,_ZThn36_N3bbb9GG01101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101113barEv,_ZTv0_n12_N3bbb9GG01101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01101113barEv,_ZThn36_N3bbb9GG01101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01101113fooEv,_ZTv0_n12_N3bbb9GG01101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101113fooEv,_ZThn28_N3bbb9GG01101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01101113fooEv,_ZTv0_n20_N3bbb9GG01101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101113fooEv,_ZThn16_N3bbb9GG01101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01101113barEv,_ZTv0_n16_N3bbb9GG01101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01101113barEv,_ZThn28_N3bbb9GG01101113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01101113barEv,_ZThn16_N3bbb9GG01101113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0110111E = { "_ZN3bbb9GG0110111E", // class name |
| bases__ZN3bbb9GG0110111E, 6, |
| &(vtc__ZN3bbb9GG0110111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0110111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0110111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0110111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0110111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names72, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111000 : virtual ::bbb::EE011 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01110003fooEv |
| virtual void bar(); // _ZN3bbb9GG01110003barEv |
| ~GG0111000(); // tgen |
| GG0111000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111000E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111000 ::foo(){vfunc_called(this, "_ZN3bbb9GG01110003fooEv");} |
| void bbb::GG0111000 ::bar(){vfunc_called(this, "_ZN3bbb9GG01110003barEv");} |
| bbb::GG0111000 ::~GG0111000(){ note_dtor("_ZN3bbb9GG0111000E", this);} // tgen |
| bbb::GG0111000 ::GG0111000(){ note_ctor("_ZN3bbb9GG0111000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111000E, buf); |
| ::bbb::GG0111000 *dp, &lv = *(dp=new (buf) ::bbb::GG0111000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111000E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111000E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0111000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0111000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0111000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111000E); |
| dp->::bbb::GG0111000::~GG0111000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111000E(Test__ZN3bbb9GG0111000E, "_ZN3bbb9GG0111000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111000C1Ev(); |
| extern void _ZN3bbb9GG0111000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111000E[] = { |
| NSPAIR(_ZN3bbb9GG0111000C1Ev), |
| NSPAIR(_ZN3bbb9GG0111000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0111000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111000E[]; |
| extern void _ZN3bbb9GG01110003barEv(); |
| extern void _ZN3bbb9GG01110003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110003barEv,_ZThn16_N3bbb9GG01110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01110003fooEv,_ZTv0_n20_N3bbb9GG01110003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110003fooEv,_ZThn16_N3bbb9GG01110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110003fooEv,_ZTv0_n12_N3bbb9GG01110003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110003fooEv,_ZThn28_N3bbb9GG01110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110003barEv,_ZThn28_N3bbb9GG01110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110003fooEv,_ZTv0_n12_N3bbb9GG01110003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110003fooEv,_ZThn36_N3bbb9GG01110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110003barEv,_ZThn36_N3bbb9GG01110003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01110003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01110003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01110003fooEv,_ZTv0_n20_N3bbb9GG01110003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110003fooEv,_ZTv0_n12_N3bbb9GG01110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110003fooEv,_ZTv0_n12_N3bbb9GG01110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0111000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0111000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111000E[] = { |
| {&(_ZTVN3bbb9GG0111000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0111000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0111000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111000E[]; |
| static VTBL_ENTRY alt_thunk_names73[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01110003fooEv,_ZTv0_n12_N3bbb9GG01110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110003fooEv,_ZThn36_N3bbb9GG01110003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110003fooEv,_ZThn28_N3bbb9GG01110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01110003fooEv,_ZTv0_n20_N3bbb9GG01110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110003fooEv,_ZThn16_N3bbb9GG01110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01110003barEv,_ZTv0_n16_N3bbb9GG01110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110003barEv,_ZThn36_N3bbb9GG01110003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110003barEv,_ZThn28_N3bbb9GG01110003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110003barEv,_ZThn16_N3bbb9GG01110003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111000E = { "_ZN3bbb9GG0111000E", // class name |
| bases__ZN3bbb9GG0111000E, 6, |
| &(vtc__ZN3bbb9GG0111000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names73, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111001 : virtual ::bbb::EE011 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01110013barEv |
| virtual void foo(); // _ZN3bbb9GG01110013fooEv |
| ~GG0111001(); // tgen |
| GG0111001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111001E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111001 ::bar(){vfunc_called(this, "_ZN3bbb9GG01110013barEv");} |
| void bbb::GG0111001 ::foo(){vfunc_called(this, "_ZN3bbb9GG01110013fooEv");} |
| bbb::GG0111001 ::~GG0111001(){ note_dtor("_ZN3bbb9GG0111001E", this);} // tgen |
| bbb::GG0111001 ::GG0111001(){ note_ctor("_ZN3bbb9GG0111001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111001E, buf); |
| ::bbb::GG0111001 *dp, &lv = *(dp=new (buf) ::bbb::GG0111001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111001E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111001E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG0111001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG0111001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG0111001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111001E); |
| dp->::bbb::GG0111001::~GG0111001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111001E(Test__ZN3bbb9GG0111001E, "_ZN3bbb9GG0111001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111001C1Ev(); |
| extern void _ZN3bbb9GG0111001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111001E[] = { |
| NSPAIR(_ZN3bbb9GG0111001C1Ev), |
| NSPAIR(_ZN3bbb9GG0111001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG0111001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111001E[]; |
| extern void _ZN3bbb9GG01110013barEv(); |
| extern void _ZN3bbb9GG01110013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110013barEv,_ZThn16_N3bbb9GG01110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01110013fooEv,_ZTv0_n20_N3bbb9GG01110013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110013fooEv,_ZThn16_N3bbb9GG01110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110013fooEv,_ZTv0_n12_N3bbb9GG01110013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110013fooEv,_ZThn28_N3bbb9GG01110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110013barEv,_ZThn28_N3bbb9GG01110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110013fooEv,_ZTv0_n12_N3bbb9GG01110013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110013fooEv,_ZThn36_N3bbb9GG01110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110013barEv,_ZThn36_N3bbb9GG01110013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01110013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01110013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01110013fooEv,_ZTv0_n20_N3bbb9GG01110013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110013fooEv,_ZTv0_n12_N3bbb9GG01110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110013fooEv,_ZTv0_n12_N3bbb9GG01110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG0111001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0111001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111001E[] = { |
| {&(_ZTVN3bbb9GG0111001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG0111001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG0111001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111001E[]; |
| static VTBL_ENTRY alt_thunk_names74[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01110013fooEv,_ZTv0_n12_N3bbb9GG01110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110013fooEv,_ZThn36_N3bbb9GG01110013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110013fooEv,_ZThn28_N3bbb9GG01110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01110013fooEv,_ZTv0_n20_N3bbb9GG01110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110013fooEv,_ZThn16_N3bbb9GG01110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01110013barEv,_ZTv0_n16_N3bbb9GG01110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110013barEv,_ZThn36_N3bbb9GG01110013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110013barEv,_ZThn28_N3bbb9GG01110013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110013barEv,_ZThn16_N3bbb9GG01110013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111001E = { "_ZN3bbb9GG0111001E", // class name |
| bases__ZN3bbb9GG0111001E, 6, |
| &(vtc__ZN3bbb9GG0111001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names74, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111010 : virtual ::bbb::EE011 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01110103fooEv |
| virtual void bar(); // _ZN3bbb9GG01110103barEv |
| ~GG0111010(); // tgen |
| GG0111010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111010E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111010 ::foo(){vfunc_called(this, "_ZN3bbb9GG01110103fooEv");} |
| void bbb::GG0111010 ::bar(){vfunc_called(this, "_ZN3bbb9GG01110103barEv");} |
| bbb::GG0111010 ::~GG0111010(){ note_dtor("_ZN3bbb9GG0111010E", this);} // tgen |
| bbb::GG0111010 ::GG0111010(){ note_ctor("_ZN3bbb9GG0111010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111010E, buf); |
| ::bbb::GG0111010 *dp, &lv = *(dp=new (buf) ::bbb::GG0111010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111010E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111010E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0111010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0111010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0111010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111010E); |
| dp->::bbb::GG0111010::~GG0111010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111010E(Test__ZN3bbb9GG0111010E, "_ZN3bbb9GG0111010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111010C1Ev(); |
| extern void _ZN3bbb9GG0111010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111010E[] = { |
| NSPAIR(_ZN3bbb9GG0111010C1Ev), |
| NSPAIR(_ZN3bbb9GG0111010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0111010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111010E[]; |
| extern void _ZN3bbb9GG01110103barEv(); |
| extern void _ZN3bbb9GG01110103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110103barEv,_ZThn16_N3bbb9GG01110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01110103fooEv,_ZTv0_n20_N3bbb9GG01110103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110103fooEv,_ZThn16_N3bbb9GG01110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110103fooEv,_ZTv0_n12_N3bbb9GG01110103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110103fooEv,_ZThn28_N3bbb9GG01110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110103barEv,_ZThn28_N3bbb9GG01110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110103fooEv,_ZTv0_n12_N3bbb9GG01110103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110103fooEv,_ZThn36_N3bbb9GG01110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110103barEv,_ZThn36_N3bbb9GG01110103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01110103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01110103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01110103fooEv,_ZTv0_n20_N3bbb9GG01110103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110103fooEv,_ZTv0_n12_N3bbb9GG01110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110103fooEv,_ZTv0_n12_N3bbb9GG01110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0111010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0111010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111010E[] = { |
| {&(_ZTVN3bbb9GG0111010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0111010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0111010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111010E[]; |
| static VTBL_ENTRY alt_thunk_names75[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01110103fooEv,_ZTv0_n12_N3bbb9GG01110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110103fooEv,_ZThn36_N3bbb9GG01110103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110103fooEv,_ZThn28_N3bbb9GG01110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01110103fooEv,_ZTv0_n20_N3bbb9GG01110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110103fooEv,_ZThn16_N3bbb9GG01110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01110103barEv,_ZTv0_n16_N3bbb9GG01110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110103barEv,_ZThn36_N3bbb9GG01110103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110103barEv,_ZThn28_N3bbb9GG01110103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110103barEv,_ZThn16_N3bbb9GG01110103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111010E = { "_ZN3bbb9GG0111010E", // class name |
| bases__ZN3bbb9GG0111010E, 6, |
| &(vtc__ZN3bbb9GG0111010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names75, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111011 : virtual ::bbb::EE011 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01110113barEv |
| virtual void foo(); // _ZN3bbb9GG01110113fooEv |
| ~GG0111011(); // tgen |
| GG0111011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111011E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111011 ::bar(){vfunc_called(this, "_ZN3bbb9GG01110113barEv");} |
| void bbb::GG0111011 ::foo(){vfunc_called(this, "_ZN3bbb9GG01110113fooEv");} |
| bbb::GG0111011 ::~GG0111011(){ note_dtor("_ZN3bbb9GG0111011E", this);} // tgen |
| bbb::GG0111011 ::GG0111011(){ note_ctor("_ZN3bbb9GG0111011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111011E, buf); |
| ::bbb::GG0111011 *dp, &lv = *(dp=new (buf) ::bbb::GG0111011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111011E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111011E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG0111011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG0111011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG0111011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111011E); |
| dp->::bbb::GG0111011::~GG0111011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111011E(Test__ZN3bbb9GG0111011E, "_ZN3bbb9GG0111011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111011C1Ev(); |
| extern void _ZN3bbb9GG0111011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111011E[] = { |
| NSPAIR(_ZN3bbb9GG0111011C1Ev), |
| NSPAIR(_ZN3bbb9GG0111011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG0111011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111011E[]; |
| extern void _ZN3bbb9GG01110113barEv(); |
| extern void _ZN3bbb9GG01110113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110113barEv,_ZThn16_N3bbb9GG01110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01110113fooEv,_ZTv0_n20_N3bbb9GG01110113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01110113fooEv,_ZThn16_N3bbb9GG01110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110113fooEv,_ZTv0_n12_N3bbb9GG01110113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110113fooEv,_ZThn28_N3bbb9GG01110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01110113barEv,_ZThn28_N3bbb9GG01110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01110113fooEv,_ZTv0_n12_N3bbb9GG01110113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110113fooEv,_ZThn36_N3bbb9GG01110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01110113barEv,_ZThn36_N3bbb9GG01110113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01110113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01110113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01110113fooEv,_ZTv0_n20_N3bbb9GG01110113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110113fooEv,_ZTv0_n12_N3bbb9GG01110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01110113fooEv,_ZTv0_n12_N3bbb9GG01110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG0111011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0111011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111011E[] = { |
| {&(_ZTVN3bbb9GG0111011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG0111011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG0111011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111011E[]; |
| static VTBL_ENTRY alt_thunk_names76[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01110113fooEv,_ZTv0_n12_N3bbb9GG01110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110113fooEv,_ZThn36_N3bbb9GG01110113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110113fooEv,_ZThn28_N3bbb9GG01110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01110113fooEv,_ZTv0_n20_N3bbb9GG01110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110113fooEv,_ZThn16_N3bbb9GG01110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01110113barEv,_ZTv0_n16_N3bbb9GG01110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01110113barEv,_ZThn36_N3bbb9GG01110113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01110113barEv,_ZThn28_N3bbb9GG01110113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01110113barEv,_ZThn16_N3bbb9GG01110113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111011E = { "_ZN3bbb9GG0111011E", // class name |
| bases__ZN3bbb9GG0111011E, 6, |
| &(vtc__ZN3bbb9GG0111011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names76, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111100 : virtual ::bbb::EE011 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01111003fooEv |
| virtual void bar(); // _ZN3bbb9GG01111003barEv |
| ~GG0111100(); // tgen |
| GG0111100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111100E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111100 ::foo(){vfunc_called(this, "_ZN3bbb9GG01111003fooEv");} |
| void bbb::GG0111100 ::bar(){vfunc_called(this, "_ZN3bbb9GG01111003barEv");} |
| bbb::GG0111100 ::~GG0111100(){ note_dtor("_ZN3bbb9GG0111100E", this);} // tgen |
| bbb::GG0111100 ::GG0111100(){ note_ctor("_ZN3bbb9GG0111100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111100E, buf); |
| ::bbb::GG0111100 *dp, &lv = *(dp=new (buf) ::bbb::GG0111100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111100E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111100E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0111100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0111100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0111100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111100E); |
| dp->::bbb::GG0111100::~GG0111100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111100E(Test__ZN3bbb9GG0111100E, "_ZN3bbb9GG0111100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111100C1Ev(); |
| extern void _ZN3bbb9GG0111100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111100E[] = { |
| NSPAIR(_ZN3bbb9GG0111100C1Ev), |
| NSPAIR(_ZN3bbb9GG0111100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0111100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111100E[]; |
| extern void _ZN3bbb9GG01111003barEv(); |
| extern void _ZN3bbb9GG01111003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111003barEv,_ZTv0_n16_N3bbb9GG01111003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111003barEv,_ZThn16_N3bbb9GG01111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01111003fooEv,_ZTv0_n20_N3bbb9GG01111003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111003fooEv,_ZThn16_N3bbb9GG01111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111003fooEv,_ZTv0_n12_N3bbb9GG01111003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111003fooEv,_ZThn28_N3bbb9GG01111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111003barEv,_ZTv0_n16_N3bbb9GG01111003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111003barEv,_ZThn28_N3bbb9GG01111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111003barEv,_ZTv0_n12_N3bbb9GG01111003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111003barEv,_ZThn36_N3bbb9GG01111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111003fooEv,_ZTv0_n16_N3bbb9GG01111003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111003fooEv,_ZThn36_N3bbb9GG01111003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01111003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01111003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111003barEv,_ZTv0_n16_N3bbb9GG01111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01111003fooEv,_ZTv0_n20_N3bbb9GG01111003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111003fooEv,_ZTv0_n12_N3bbb9GG01111003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111003barEv,_ZTv0_n16_N3bbb9GG01111003barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111003barEv,_ZTv0_n12_N3bbb9GG01111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111003fooEv,_ZTv0_n16_N3bbb9GG01111003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0111100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0111100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111100E[] = { |
| {&(_ZTVN3bbb9GG0111100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0111100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0111100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111100E[]; |
| static VTBL_ENTRY alt_thunk_names77[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111003fooEv,_ZTv0_n16_N3bbb9GG01111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111003fooEv,_ZThn36_N3bbb9GG01111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111003barEv,_ZTv0_n12_N3bbb9GG01111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111003barEv,_ZThn36_N3bbb9GG01111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111003fooEv,_ZTv0_n12_N3bbb9GG01111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111003fooEv,_ZThn28_N3bbb9GG01111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01111003fooEv,_ZTv0_n20_N3bbb9GG01111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111003fooEv,_ZThn16_N3bbb9GG01111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111003barEv,_ZTv0_n16_N3bbb9GG01111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111003barEv,_ZThn28_N3bbb9GG01111003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111003barEv,_ZThn16_N3bbb9GG01111003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111100E = { "_ZN3bbb9GG0111100E", // class name |
| bases__ZN3bbb9GG0111100E, 6, |
| &(vtc__ZN3bbb9GG0111100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names77, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111101 : virtual ::bbb::EE011 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01111013barEv |
| virtual void foo(); // _ZN3bbb9GG01111013fooEv |
| ~GG0111101(); // tgen |
| GG0111101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111101E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111101 ::bar(){vfunc_called(this, "_ZN3bbb9GG01111013barEv");} |
| void bbb::GG0111101 ::foo(){vfunc_called(this, "_ZN3bbb9GG01111013fooEv");} |
| bbb::GG0111101 ::~GG0111101(){ note_dtor("_ZN3bbb9GG0111101E", this);} // tgen |
| bbb::GG0111101 ::GG0111101(){ note_ctor("_ZN3bbb9GG0111101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111101E, buf); |
| ::bbb::GG0111101 *dp, &lv = *(dp=new (buf) ::bbb::GG0111101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111101E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111101E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG0111101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG0111101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG0111101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111101E); |
| dp->::bbb::GG0111101::~GG0111101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111101E(Test__ZN3bbb9GG0111101E, "_ZN3bbb9GG0111101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111101C1Ev(); |
| extern void _ZN3bbb9GG0111101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111101E[] = { |
| NSPAIR(_ZN3bbb9GG0111101C1Ev), |
| NSPAIR(_ZN3bbb9GG0111101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG0111101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111101E[]; |
| extern void _ZN3bbb9GG01111013barEv(); |
| extern void _ZN3bbb9GG01111013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111013barEv,_ZTv0_n16_N3bbb9GG01111013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111013barEv,_ZThn16_N3bbb9GG01111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01111013fooEv,_ZTv0_n20_N3bbb9GG01111013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111013fooEv,_ZThn16_N3bbb9GG01111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111013fooEv,_ZTv0_n12_N3bbb9GG01111013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111013fooEv,_ZThn28_N3bbb9GG01111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111013barEv,_ZTv0_n16_N3bbb9GG01111013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111013barEv,_ZThn28_N3bbb9GG01111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111013barEv,_ZTv0_n12_N3bbb9GG01111013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111013barEv,_ZThn36_N3bbb9GG01111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111013fooEv,_ZTv0_n16_N3bbb9GG01111013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111013fooEv,_ZThn36_N3bbb9GG01111013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01111013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01111013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111013barEv,_ZTv0_n16_N3bbb9GG01111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01111013fooEv,_ZTv0_n20_N3bbb9GG01111013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111013fooEv,_ZTv0_n12_N3bbb9GG01111013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111013barEv,_ZTv0_n16_N3bbb9GG01111013barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111013barEv,_ZTv0_n12_N3bbb9GG01111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111013fooEv,_ZTv0_n16_N3bbb9GG01111013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG0111101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0111101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111101E[] = { |
| {&(_ZTVN3bbb9GG0111101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG0111101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG0111101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111101E[]; |
| static VTBL_ENTRY alt_thunk_names78[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111013fooEv,_ZTv0_n16_N3bbb9GG01111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111013fooEv,_ZThn36_N3bbb9GG01111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111013barEv,_ZTv0_n12_N3bbb9GG01111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111013barEv,_ZThn36_N3bbb9GG01111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111013fooEv,_ZTv0_n12_N3bbb9GG01111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111013fooEv,_ZThn28_N3bbb9GG01111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01111013fooEv,_ZTv0_n20_N3bbb9GG01111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111013fooEv,_ZThn16_N3bbb9GG01111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111013barEv,_ZTv0_n16_N3bbb9GG01111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111013barEv,_ZThn28_N3bbb9GG01111013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111013barEv,_ZThn16_N3bbb9GG01111013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111101E = { "_ZN3bbb9GG0111101E", // class name |
| bases__ZN3bbb9GG0111101E, 6, |
| &(vtc__ZN3bbb9GG0111101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names78, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111110 : virtual ::bbb::EE011 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG01111103fooEv |
| virtual void bar(); // _ZN3bbb9GG01111103barEv |
| ~GG0111110(); // tgen |
| GG0111110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111110E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111110 ::foo(){vfunc_called(this, "_ZN3bbb9GG01111103fooEv");} |
| void bbb::GG0111110 ::bar(){vfunc_called(this, "_ZN3bbb9GG01111103barEv");} |
| bbb::GG0111110 ::~GG0111110(){ note_dtor("_ZN3bbb9GG0111110E", this);} // tgen |
| bbb::GG0111110 ::GG0111110(){ note_ctor("_ZN3bbb9GG0111110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111110E, buf); |
| ::bbb::GG0111110 *dp, &lv = *(dp=new (buf) ::bbb::GG0111110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111110E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111110E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0111110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0111110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0111110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111110E); |
| dp->::bbb::GG0111110::~GG0111110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111110E(Test__ZN3bbb9GG0111110E, "_ZN3bbb9GG0111110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111110C1Ev(); |
| extern void _ZN3bbb9GG0111110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111110E[] = { |
| NSPAIR(_ZN3bbb9GG0111110C1Ev), |
| NSPAIR(_ZN3bbb9GG0111110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0111110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111110E[]; |
| extern void _ZN3bbb9GG01111103barEv(); |
| extern void _ZN3bbb9GG01111103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111103barEv,_ZTv0_n16_N3bbb9GG01111103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111103barEv,_ZThn16_N3bbb9GG01111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01111103fooEv,_ZTv0_n20_N3bbb9GG01111103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111103fooEv,_ZThn16_N3bbb9GG01111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111103fooEv,_ZTv0_n12_N3bbb9GG01111103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111103fooEv,_ZThn28_N3bbb9GG01111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111103barEv,_ZTv0_n16_N3bbb9GG01111103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111103barEv,_ZThn28_N3bbb9GG01111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111103barEv,_ZTv0_n12_N3bbb9GG01111103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111103barEv,_ZThn36_N3bbb9GG01111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111103fooEv,_ZTv0_n16_N3bbb9GG01111103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111103fooEv,_ZThn36_N3bbb9GG01111103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01111103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01111103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111103barEv,_ZTv0_n16_N3bbb9GG01111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01111103fooEv,_ZTv0_n20_N3bbb9GG01111103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111103fooEv,_ZTv0_n12_N3bbb9GG01111103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111103barEv,_ZTv0_n16_N3bbb9GG01111103barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111103barEv,_ZTv0_n12_N3bbb9GG01111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111103fooEv,_ZTv0_n16_N3bbb9GG01111103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0111110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0111110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111110E[] = { |
| {&(_ZTVN3bbb9GG0111110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0111110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0111110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111110E[]; |
| static VTBL_ENTRY alt_thunk_names79[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111103fooEv,_ZTv0_n16_N3bbb9GG01111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111103fooEv,_ZThn36_N3bbb9GG01111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111103barEv,_ZTv0_n12_N3bbb9GG01111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111103barEv,_ZThn36_N3bbb9GG01111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111103fooEv,_ZTv0_n12_N3bbb9GG01111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111103fooEv,_ZThn28_N3bbb9GG01111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01111103fooEv,_ZTv0_n20_N3bbb9GG01111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111103fooEv,_ZThn16_N3bbb9GG01111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111103barEv,_ZTv0_n16_N3bbb9GG01111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111103barEv,_ZThn28_N3bbb9GG01111103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111103barEv,_ZThn16_N3bbb9GG01111103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111110E = { "_ZN3bbb9GG0111110E", // class name |
| bases__ZN3bbb9GG0111110E, 6, |
| &(vtc__ZN3bbb9GG0111110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names79, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG0111111 : virtual ::bbb::EE011 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG01111113barEv |
| virtual void foo(); // _ZN3bbb9GG01111113fooEv |
| ~GG0111111(); // tgen |
| GG0111111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG0111111E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG0111111 ::bar(){vfunc_called(this, "_ZN3bbb9GG01111113barEv");} |
| void bbb::GG0111111 ::foo(){vfunc_called(this, "_ZN3bbb9GG01111113fooEv");} |
| bbb::GG0111111 ::~GG0111111(){ note_dtor("_ZN3bbb9GG0111111E", this);} // tgen |
| bbb::GG0111111 ::GG0111111(){ note_ctor("_ZN3bbb9GG0111111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG0111111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG0111111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG0111111E, buf); |
| ::bbb::GG0111111 *dp, &lv = *(dp=new (buf) ::bbb::GG0111111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG0111111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG0111111E)"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::EE011*), ABISELECT(40,28), "_ZN3bbb9GG0111111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111111E"); |
| check_base_class_offset(lv, (::bbb::EE011*), ABISELECT(24,16), "_ZN3bbb9GG0111111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG0111111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG0111111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG0111111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG0111111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG0111111E); |
| dp->::bbb::GG0111111::~GG0111111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG0111111E(Test__ZN3bbb9GG0111111E, "_ZN3bbb9GG0111111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG0111111C1Ev(); |
| extern void _ZN3bbb9GG0111111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG0111111E[] = { |
| NSPAIR(_ZN3bbb9GG0111111C1Ev), |
| NSPAIR(_ZN3bbb9GG0111111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE011E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE011E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG0111111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA0E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE011E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111111E[]; |
| extern void _ZN3bbb9GG01111113barEv(); |
| extern void _ZN3bbb9GG01111113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111113barEv,_ZTv0_n16_N3bbb9GG01111113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111113barEv,_ZThn16_N3bbb9GG01111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG01111113fooEv,_ZTv0_n20_N3bbb9GG01111113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG01111113fooEv,_ZThn16_N3bbb9GG01111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111113fooEv,_ZTv0_n12_N3bbb9GG01111113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111113fooEv,_ZThn28_N3bbb9GG01111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111113barEv,_ZTv0_n16_N3bbb9GG01111113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG01111113barEv,_ZThn28_N3bbb9GG01111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG01111113barEv,_ZTv0_n12_N3bbb9GG01111113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111113barEv,_ZThn36_N3bbb9GG01111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG01111113fooEv,_ZTv0_n16_N3bbb9GG01111113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG01111113fooEv,_ZThn36_N3bbb9GG01111113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG0111111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG01111113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG01111113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111113barEv,_ZTv0_n16_N3bbb9GG01111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG01111113fooEv,_ZTv0_n20_N3bbb9GG01111113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111113fooEv,_ZTv0_n12_N3bbb9GG01111113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111113barEv,_ZTv0_n16_N3bbb9GG01111113barEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG0111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG01111113barEv,_ZTv0_n12_N3bbb9GG01111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG01111113fooEv,_ZTv0_n16_N3bbb9GG01111113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG0111111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0111111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE0113barEv(); |
| extern void _ZN3bbb5EE0113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE011E__NS_9GG0111111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE0113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE0113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG0111111E[] = { |
| {&(_ZTVN3bbb9GG0111111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG0111111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG0111111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG0111111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG0111111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG0111111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE011E__NS_9GG0111111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA0E__NS_5EE011E__NS_9GG0111111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG0111111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG0111111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG0111111E[]; |
| static VTBL_ENTRY alt_thunk_names80[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE0113barEv,_ZTv0_n16_N3bbb5EE0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113barEv,_ZThn12_N3bbb5EE0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE0113fooEv,_ZTv0_n12_N3bbb5EE0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE0113fooEv,_ZThn12_N3bbb5EE0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111113fooEv,_ZTv0_n16_N3bbb9GG01111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111113fooEv,_ZThn36_N3bbb9GG01111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111113barEv,_ZTv0_n12_N3bbb9GG01111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG01111113barEv,_ZThn36_N3bbb9GG01111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG01111113fooEv,_ZTv0_n12_N3bbb9GG01111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111113fooEv,_ZThn28_N3bbb9GG01111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG01111113fooEv,_ZTv0_n20_N3bbb9GG01111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111113fooEv,_ZThn16_N3bbb9GG01111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG01111113barEv,_ZTv0_n16_N3bbb9GG01111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG01111113barEv,_ZThn28_N3bbb9GG01111113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG01111113barEv,_ZThn16_N3bbb9GG01111113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG0111111E = { "_ZN3bbb9GG0111111E", // class name |
| bases__ZN3bbb9GG0111111E, 6, |
| &(vtc__ZN3bbb9GG0111111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG0111111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG0111111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG0111111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG0111111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names80, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000000 : virtual ::bbb::EE100 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10000003fooEv |
| virtual void bar(); // _ZN3bbb9GG10000003barEv |
| ~GG1000000(); // tgen |
| GG1000000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000000 ::foo(){vfunc_called(this, "_ZN3bbb9GG10000003fooEv");} |
| void bbb::GG1000000 ::bar(){vfunc_called(this, "_ZN3bbb9GG10000003barEv");} |
| bbb::GG1000000 ::~GG1000000(){ note_dtor("_ZN3bbb9GG1000000E", this);} // tgen |
| bbb::GG1000000 ::GG1000000(){ note_ctor("_ZN3bbb9GG1000000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000000E, buf); |
| ::bbb::GG1000000 *dp, &lv = *(dp=new (buf) ::bbb::GG1000000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000000E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1000000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1000000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1000000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000000E); |
| dp->::bbb::GG1000000::~GG1000000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000000E(Test__ZN3bbb9GG1000000E, "_ZN3bbb9GG1000000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000000C1Ev(); |
| extern void _ZN3bbb9GG1000000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000000E[] = { |
| NSPAIR(_ZN3bbb9GG1000000C1Ev), |
| NSPAIR(_ZN3bbb9GG1000000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1000000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000000E[]; |
| extern void _ZN3bbb9GG10000003fooEv(); |
| extern void _ZN3bbb9GG10000003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000003fooEv,_ZTv0_n16_N3bbb9GG10000003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000003fooEv,_ZThn16_N3bbb9GG10000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10000003barEv,_ZTv0_n20_N3bbb9GG10000003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000003barEv,_ZThn16_N3bbb9GG10000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000003barEv,_ZTv0_n12_N3bbb9GG10000003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000003barEv,_ZThn28_N3bbb9GG10000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000003fooEv,_ZTv0_n16_N3bbb9GG10000003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000003fooEv,_ZThn28_N3bbb9GG10000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000003fooEv,_ZTv0_n12_N3bbb9GG10000003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000003fooEv,_ZThn36_N3bbb9GG10000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000003barEv,_ZTv0_n16_N3bbb9GG10000003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000003barEv,_ZThn36_N3bbb9GG10000003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10000003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10000003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000003fooEv,_ZTv0_n16_N3bbb9GG10000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10000003barEv,_ZTv0_n20_N3bbb9GG10000003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000003barEv,_ZTv0_n12_N3bbb9GG10000003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000003fooEv,_ZTv0_n16_N3bbb9GG10000003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000003fooEv,_ZTv0_n12_N3bbb9GG10000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000003barEv,_ZTv0_n16_N3bbb9GG10000003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1000000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1000000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000000E[] = { |
| {&(_ZTVN3bbb9GG1000000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1000000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1000000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000000E[]; |
| static VTBL_ENTRY alt_thunk_names81[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000003barEv,_ZTv0_n16_N3bbb9GG10000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000003barEv,_ZThn36_N3bbb9GG10000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000003fooEv,_ZTv0_n12_N3bbb9GG10000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000003fooEv,_ZThn36_N3bbb9GG10000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000003barEv,_ZTv0_n12_N3bbb9GG10000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000003barEv,_ZThn28_N3bbb9GG10000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10000003barEv,_ZTv0_n20_N3bbb9GG10000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000003barEv,_ZThn16_N3bbb9GG10000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000003fooEv,_ZTv0_n16_N3bbb9GG10000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000003fooEv,_ZThn28_N3bbb9GG10000003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000003fooEv,_ZThn16_N3bbb9GG10000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000000E = { "_ZN3bbb9GG1000000E", // class name |
| bases__ZN3bbb9GG1000000E, 6, |
| &(vtc__ZN3bbb9GG1000000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names81, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000001 : virtual ::bbb::EE100 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10000013barEv |
| virtual void foo(); // _ZN3bbb9GG10000013fooEv |
| ~GG1000001(); // tgen |
| GG1000001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000001 ::bar(){vfunc_called(this, "_ZN3bbb9GG10000013barEv");} |
| void bbb::GG1000001 ::foo(){vfunc_called(this, "_ZN3bbb9GG10000013fooEv");} |
| bbb::GG1000001 ::~GG1000001(){ note_dtor("_ZN3bbb9GG1000001E", this);} // tgen |
| bbb::GG1000001 ::GG1000001(){ note_ctor("_ZN3bbb9GG1000001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000001E, buf); |
| ::bbb::GG1000001 *dp, &lv = *(dp=new (buf) ::bbb::GG1000001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000001E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1000001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1000001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1000001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000001E); |
| dp->::bbb::GG1000001::~GG1000001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000001E(Test__ZN3bbb9GG1000001E, "_ZN3bbb9GG1000001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000001C1Ev(); |
| extern void _ZN3bbb9GG1000001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000001E[] = { |
| NSPAIR(_ZN3bbb9GG1000001C1Ev), |
| NSPAIR(_ZN3bbb9GG1000001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1000001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000001E[]; |
| extern void _ZN3bbb9GG10000013fooEv(); |
| extern void _ZN3bbb9GG10000013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000013fooEv,_ZTv0_n16_N3bbb9GG10000013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000013fooEv,_ZThn16_N3bbb9GG10000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10000013barEv,_ZTv0_n20_N3bbb9GG10000013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000013barEv,_ZThn16_N3bbb9GG10000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000013barEv,_ZTv0_n12_N3bbb9GG10000013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000013barEv,_ZThn28_N3bbb9GG10000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000013fooEv,_ZTv0_n16_N3bbb9GG10000013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000013fooEv,_ZThn28_N3bbb9GG10000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000013fooEv,_ZTv0_n12_N3bbb9GG10000013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000013fooEv,_ZThn36_N3bbb9GG10000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000013barEv,_ZTv0_n16_N3bbb9GG10000013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000013barEv,_ZThn36_N3bbb9GG10000013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10000013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10000013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000013fooEv,_ZTv0_n16_N3bbb9GG10000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10000013barEv,_ZTv0_n20_N3bbb9GG10000013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000013barEv,_ZTv0_n12_N3bbb9GG10000013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000013fooEv,_ZTv0_n16_N3bbb9GG10000013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000013fooEv,_ZTv0_n12_N3bbb9GG10000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000013barEv,_ZTv0_n16_N3bbb9GG10000013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1000001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1000001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000001E[] = { |
| {&(_ZTVN3bbb9GG1000001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1000001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1000001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000001E[]; |
| static VTBL_ENTRY alt_thunk_names82[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000013barEv,_ZTv0_n16_N3bbb9GG10000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000013barEv,_ZThn36_N3bbb9GG10000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000013fooEv,_ZTv0_n12_N3bbb9GG10000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000013fooEv,_ZThn36_N3bbb9GG10000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000013barEv,_ZTv0_n12_N3bbb9GG10000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000013barEv,_ZThn28_N3bbb9GG10000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10000013barEv,_ZTv0_n20_N3bbb9GG10000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000013barEv,_ZThn16_N3bbb9GG10000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000013fooEv,_ZTv0_n16_N3bbb9GG10000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000013fooEv,_ZThn28_N3bbb9GG10000013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000013fooEv,_ZThn16_N3bbb9GG10000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000001E = { "_ZN3bbb9GG1000001E", // class name |
| bases__ZN3bbb9GG1000001E, 6, |
| &(vtc__ZN3bbb9GG1000001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names82, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000010 : virtual ::bbb::EE100 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10000103fooEv |
| virtual void bar(); // _ZN3bbb9GG10000103barEv |
| ~GG1000010(); // tgen |
| GG1000010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000010 ::foo(){vfunc_called(this, "_ZN3bbb9GG10000103fooEv");} |
| void bbb::GG1000010 ::bar(){vfunc_called(this, "_ZN3bbb9GG10000103barEv");} |
| bbb::GG1000010 ::~GG1000010(){ note_dtor("_ZN3bbb9GG1000010E", this);} // tgen |
| bbb::GG1000010 ::GG1000010(){ note_ctor("_ZN3bbb9GG1000010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000010E, buf); |
| ::bbb::GG1000010 *dp, &lv = *(dp=new (buf) ::bbb::GG1000010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000010E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1000010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1000010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1000010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000010E); |
| dp->::bbb::GG1000010::~GG1000010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000010E(Test__ZN3bbb9GG1000010E, "_ZN3bbb9GG1000010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000010C1Ev(); |
| extern void _ZN3bbb9GG1000010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000010E[] = { |
| NSPAIR(_ZN3bbb9GG1000010C1Ev), |
| NSPAIR(_ZN3bbb9GG1000010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1000010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000010E[]; |
| extern void _ZN3bbb9GG10000103fooEv(); |
| extern void _ZN3bbb9GG10000103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000103fooEv,_ZTv0_n16_N3bbb9GG10000103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000103fooEv,_ZThn16_N3bbb9GG10000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10000103barEv,_ZTv0_n20_N3bbb9GG10000103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000103barEv,_ZThn16_N3bbb9GG10000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000103barEv,_ZTv0_n12_N3bbb9GG10000103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000103barEv,_ZThn28_N3bbb9GG10000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000103fooEv,_ZTv0_n16_N3bbb9GG10000103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000103fooEv,_ZThn28_N3bbb9GG10000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000103fooEv,_ZTv0_n12_N3bbb9GG10000103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000103fooEv,_ZThn36_N3bbb9GG10000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000103barEv,_ZTv0_n16_N3bbb9GG10000103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000103barEv,_ZThn36_N3bbb9GG10000103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10000103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10000103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000103fooEv,_ZTv0_n16_N3bbb9GG10000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10000103barEv,_ZTv0_n20_N3bbb9GG10000103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000103barEv,_ZTv0_n12_N3bbb9GG10000103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000103fooEv,_ZTv0_n16_N3bbb9GG10000103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000103fooEv,_ZTv0_n12_N3bbb9GG10000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000103barEv,_ZTv0_n16_N3bbb9GG10000103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1000010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1000010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000010E[] = { |
| {&(_ZTVN3bbb9GG1000010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1000010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1000010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000010E[]; |
| static VTBL_ENTRY alt_thunk_names83[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000103barEv,_ZTv0_n16_N3bbb9GG10000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000103barEv,_ZThn36_N3bbb9GG10000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000103fooEv,_ZTv0_n12_N3bbb9GG10000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000103fooEv,_ZThn36_N3bbb9GG10000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000103barEv,_ZTv0_n12_N3bbb9GG10000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000103barEv,_ZThn28_N3bbb9GG10000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10000103barEv,_ZTv0_n20_N3bbb9GG10000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000103barEv,_ZThn16_N3bbb9GG10000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000103fooEv,_ZTv0_n16_N3bbb9GG10000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000103fooEv,_ZThn28_N3bbb9GG10000103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000103fooEv,_ZThn16_N3bbb9GG10000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000010E = { "_ZN3bbb9GG1000010E", // class name |
| bases__ZN3bbb9GG1000010E, 6, |
| &(vtc__ZN3bbb9GG1000010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names83, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000011 : virtual ::bbb::EE100 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10000113barEv |
| virtual void foo(); // _ZN3bbb9GG10000113fooEv |
| ~GG1000011(); // tgen |
| GG1000011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000011 ::bar(){vfunc_called(this, "_ZN3bbb9GG10000113barEv");} |
| void bbb::GG1000011 ::foo(){vfunc_called(this, "_ZN3bbb9GG10000113fooEv");} |
| bbb::GG1000011 ::~GG1000011(){ note_dtor("_ZN3bbb9GG1000011E", this);} // tgen |
| bbb::GG1000011 ::GG1000011(){ note_ctor("_ZN3bbb9GG1000011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000011E, buf); |
| ::bbb::GG1000011 *dp, &lv = *(dp=new (buf) ::bbb::GG1000011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000011E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1000011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1000011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1000011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000011E); |
| dp->::bbb::GG1000011::~GG1000011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000011E(Test__ZN3bbb9GG1000011E, "_ZN3bbb9GG1000011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000011C1Ev(); |
| extern void _ZN3bbb9GG1000011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000011E[] = { |
| NSPAIR(_ZN3bbb9GG1000011C1Ev), |
| NSPAIR(_ZN3bbb9GG1000011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1000011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000011E[]; |
| extern void _ZN3bbb9GG10000113fooEv(); |
| extern void _ZN3bbb9GG10000113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000113fooEv,_ZTv0_n16_N3bbb9GG10000113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000113fooEv,_ZThn16_N3bbb9GG10000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10000113barEv,_ZTv0_n20_N3bbb9GG10000113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10000113barEv,_ZThn16_N3bbb9GG10000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000113barEv,_ZTv0_n12_N3bbb9GG10000113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000113barEv,_ZThn28_N3bbb9GG10000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000113fooEv,_ZTv0_n16_N3bbb9GG10000113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10000113fooEv,_ZThn28_N3bbb9GG10000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10000113fooEv,_ZTv0_n12_N3bbb9GG10000113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000113fooEv,_ZThn36_N3bbb9GG10000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10000113barEv,_ZTv0_n16_N3bbb9GG10000113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10000113barEv,_ZThn36_N3bbb9GG10000113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10000113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10000113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000113fooEv,_ZTv0_n16_N3bbb9GG10000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10000113barEv,_ZTv0_n20_N3bbb9GG10000113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000113barEv,_ZTv0_n12_N3bbb9GG10000113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000113fooEv,_ZTv0_n16_N3bbb9GG10000113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10000113fooEv,_ZTv0_n12_N3bbb9GG10000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10000113barEv,_ZTv0_n16_N3bbb9GG10000113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1000011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1000011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000011E[] = { |
| {&(_ZTVN3bbb9GG1000011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1000011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1000011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000011E[]; |
| static VTBL_ENTRY alt_thunk_names84[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000113barEv,_ZTv0_n16_N3bbb9GG10000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000113barEv,_ZThn36_N3bbb9GG10000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000113fooEv,_ZTv0_n12_N3bbb9GG10000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10000113fooEv,_ZThn36_N3bbb9GG10000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10000113barEv,_ZTv0_n12_N3bbb9GG10000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000113barEv,_ZThn28_N3bbb9GG10000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10000113barEv,_ZTv0_n20_N3bbb9GG10000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000113barEv,_ZThn16_N3bbb9GG10000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10000113fooEv,_ZTv0_n16_N3bbb9GG10000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10000113fooEv,_ZThn28_N3bbb9GG10000113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10000113fooEv,_ZThn16_N3bbb9GG10000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000011E = { "_ZN3bbb9GG1000011E", // class name |
| bases__ZN3bbb9GG1000011E, 6, |
| &(vtc__ZN3bbb9GG1000011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names84, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000100 : virtual ::bbb::EE100 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10001003fooEv |
| virtual void bar(); // _ZN3bbb9GG10001003barEv |
| ~GG1000100(); // tgen |
| GG1000100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000100 ::foo(){vfunc_called(this, "_ZN3bbb9GG10001003fooEv");} |
| void bbb::GG1000100 ::bar(){vfunc_called(this, "_ZN3bbb9GG10001003barEv");} |
| bbb::GG1000100 ::~GG1000100(){ note_dtor("_ZN3bbb9GG1000100E", this);} // tgen |
| bbb::GG1000100 ::GG1000100(){ note_ctor("_ZN3bbb9GG1000100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000100E, buf); |
| ::bbb::GG1000100 *dp, &lv = *(dp=new (buf) ::bbb::GG1000100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000100E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1000100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1000100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1000100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000100E); |
| dp->::bbb::GG1000100::~GG1000100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000100E(Test__ZN3bbb9GG1000100E, "_ZN3bbb9GG1000100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000100C1Ev(); |
| extern void _ZN3bbb9GG1000100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000100E[] = { |
| NSPAIR(_ZN3bbb9GG1000100C1Ev), |
| NSPAIR(_ZN3bbb9GG1000100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1000100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000100E[]; |
| extern void _ZN3bbb9GG10001003fooEv(); |
| extern void _ZN3bbb9GG10001003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001003fooEv,_ZThn16_N3bbb9GG10001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10001003barEv,_ZTv0_n20_N3bbb9GG10001003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001003barEv,_ZThn16_N3bbb9GG10001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001003barEv,_ZTv0_n12_N3bbb9GG10001003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001003barEv,_ZThn28_N3bbb9GG10001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001003fooEv,_ZThn28_N3bbb9GG10001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001003barEv,_ZTv0_n12_N3bbb9GG10001003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001003barEv,_ZThn36_N3bbb9GG10001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001003fooEv,_ZThn36_N3bbb9GG10001003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10001003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10001003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10001003barEv,_ZTv0_n20_N3bbb9GG10001003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001003barEv,_ZTv0_n12_N3bbb9GG10001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001003barEv,_ZTv0_n12_N3bbb9GG10001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1000100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1000100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000100E[] = { |
| {&(_ZTVN3bbb9GG1000100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1000100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1000100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000100E[]; |
| static VTBL_ENTRY alt_thunk_names85[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10001003barEv,_ZTv0_n12_N3bbb9GG10001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001003barEv,_ZThn36_N3bbb9GG10001003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001003barEv,_ZThn28_N3bbb9GG10001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10001003barEv,_ZTv0_n20_N3bbb9GG10001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001003barEv,_ZThn16_N3bbb9GG10001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10001003fooEv,_ZTv0_n16_N3bbb9GG10001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001003fooEv,_ZThn36_N3bbb9GG10001003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001003fooEv,_ZThn28_N3bbb9GG10001003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001003fooEv,_ZThn16_N3bbb9GG10001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000100E = { "_ZN3bbb9GG1000100E", // class name |
| bases__ZN3bbb9GG1000100E, 6, |
| &(vtc__ZN3bbb9GG1000100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names85, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000101 : virtual ::bbb::EE100 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10001013barEv |
| virtual void foo(); // _ZN3bbb9GG10001013fooEv |
| ~GG1000101(); // tgen |
| GG1000101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000101 ::bar(){vfunc_called(this, "_ZN3bbb9GG10001013barEv");} |
| void bbb::GG1000101 ::foo(){vfunc_called(this, "_ZN3bbb9GG10001013fooEv");} |
| bbb::GG1000101 ::~GG1000101(){ note_dtor("_ZN3bbb9GG1000101E", this);} // tgen |
| bbb::GG1000101 ::GG1000101(){ note_ctor("_ZN3bbb9GG1000101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000101E, buf); |
| ::bbb::GG1000101 *dp, &lv = *(dp=new (buf) ::bbb::GG1000101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000101E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1000101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1000101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1000101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000101E); |
| dp->::bbb::GG1000101::~GG1000101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000101E(Test__ZN3bbb9GG1000101E, "_ZN3bbb9GG1000101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000101C1Ev(); |
| extern void _ZN3bbb9GG1000101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000101E[] = { |
| NSPAIR(_ZN3bbb9GG1000101C1Ev), |
| NSPAIR(_ZN3bbb9GG1000101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1000101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000101E[]; |
| extern void _ZN3bbb9GG10001013fooEv(); |
| extern void _ZN3bbb9GG10001013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001013fooEv,_ZThn16_N3bbb9GG10001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10001013barEv,_ZTv0_n20_N3bbb9GG10001013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001013barEv,_ZThn16_N3bbb9GG10001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001013barEv,_ZTv0_n12_N3bbb9GG10001013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001013barEv,_ZThn28_N3bbb9GG10001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001013fooEv,_ZThn28_N3bbb9GG10001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001013barEv,_ZTv0_n12_N3bbb9GG10001013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001013barEv,_ZThn36_N3bbb9GG10001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001013fooEv,_ZThn36_N3bbb9GG10001013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10001013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10001013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10001013barEv,_ZTv0_n20_N3bbb9GG10001013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001013barEv,_ZTv0_n12_N3bbb9GG10001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001013barEv,_ZTv0_n12_N3bbb9GG10001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1000101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1000101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000101E[] = { |
| {&(_ZTVN3bbb9GG1000101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1000101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1000101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000101E[]; |
| static VTBL_ENTRY alt_thunk_names86[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10001013barEv,_ZTv0_n12_N3bbb9GG10001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001013barEv,_ZThn36_N3bbb9GG10001013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001013barEv,_ZThn28_N3bbb9GG10001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10001013barEv,_ZTv0_n20_N3bbb9GG10001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001013barEv,_ZThn16_N3bbb9GG10001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10001013fooEv,_ZTv0_n16_N3bbb9GG10001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001013fooEv,_ZThn36_N3bbb9GG10001013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001013fooEv,_ZThn28_N3bbb9GG10001013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001013fooEv,_ZThn16_N3bbb9GG10001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000101E = { "_ZN3bbb9GG1000101E", // class name |
| bases__ZN3bbb9GG1000101E, 6, |
| &(vtc__ZN3bbb9GG1000101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names86, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000110 : virtual ::bbb::EE100 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10001103fooEv |
| virtual void bar(); // _ZN3bbb9GG10001103barEv |
| ~GG1000110(); // tgen |
| GG1000110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000110 ::foo(){vfunc_called(this, "_ZN3bbb9GG10001103fooEv");} |
| void bbb::GG1000110 ::bar(){vfunc_called(this, "_ZN3bbb9GG10001103barEv");} |
| bbb::GG1000110 ::~GG1000110(){ note_dtor("_ZN3bbb9GG1000110E", this);} // tgen |
| bbb::GG1000110 ::GG1000110(){ note_ctor("_ZN3bbb9GG1000110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000110E, buf); |
| ::bbb::GG1000110 *dp, &lv = *(dp=new (buf) ::bbb::GG1000110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000110E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1000110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1000110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1000110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000110E); |
| dp->::bbb::GG1000110::~GG1000110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000110E(Test__ZN3bbb9GG1000110E, "_ZN3bbb9GG1000110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000110C1Ev(); |
| extern void _ZN3bbb9GG1000110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000110E[] = { |
| NSPAIR(_ZN3bbb9GG1000110C1Ev), |
| NSPAIR(_ZN3bbb9GG1000110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1000110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000110E[]; |
| extern void _ZN3bbb9GG10001103fooEv(); |
| extern void _ZN3bbb9GG10001103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001103fooEv,_ZThn16_N3bbb9GG10001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10001103barEv,_ZTv0_n20_N3bbb9GG10001103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001103barEv,_ZThn16_N3bbb9GG10001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001103barEv,_ZTv0_n12_N3bbb9GG10001103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001103barEv,_ZThn28_N3bbb9GG10001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001103fooEv,_ZThn28_N3bbb9GG10001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001103barEv,_ZTv0_n12_N3bbb9GG10001103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001103barEv,_ZThn36_N3bbb9GG10001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001103fooEv,_ZThn36_N3bbb9GG10001103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10001103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10001103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10001103barEv,_ZTv0_n20_N3bbb9GG10001103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001103barEv,_ZTv0_n12_N3bbb9GG10001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001103barEv,_ZTv0_n12_N3bbb9GG10001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1000110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1000110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000110E[] = { |
| {&(_ZTVN3bbb9GG1000110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1000110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1000110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000110E[]; |
| static VTBL_ENTRY alt_thunk_names87[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10001103barEv,_ZTv0_n12_N3bbb9GG10001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001103barEv,_ZThn36_N3bbb9GG10001103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001103barEv,_ZThn28_N3bbb9GG10001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10001103barEv,_ZTv0_n20_N3bbb9GG10001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001103barEv,_ZThn16_N3bbb9GG10001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10001103fooEv,_ZTv0_n16_N3bbb9GG10001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001103fooEv,_ZThn36_N3bbb9GG10001103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001103fooEv,_ZThn28_N3bbb9GG10001103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001103fooEv,_ZThn16_N3bbb9GG10001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000110E = { "_ZN3bbb9GG1000110E", // class name |
| bases__ZN3bbb9GG1000110E, 6, |
| &(vtc__ZN3bbb9GG1000110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names87, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1000111 : virtual ::bbb::EE100 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10001113barEv |
| virtual void foo(); // _ZN3bbb9GG10001113fooEv |
| ~GG1000111(); // tgen |
| GG1000111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1000111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1000111 ::bar(){vfunc_called(this, "_ZN3bbb9GG10001113barEv");} |
| void bbb::GG1000111 ::foo(){vfunc_called(this, "_ZN3bbb9GG10001113fooEv");} |
| bbb::GG1000111 ::~GG1000111(){ note_dtor("_ZN3bbb9GG1000111E", this);} // tgen |
| bbb::GG1000111 ::GG1000111(){ note_ctor("_ZN3bbb9GG1000111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1000111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1000111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1000111E, buf); |
| ::bbb::GG1000111 *dp, &lv = *(dp=new (buf) ::bbb::GG1000111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1000111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1000111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1000111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000111E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1000111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1000111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1000111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1000111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1000111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1000111E); |
| dp->::bbb::GG1000111::~GG1000111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1000111E(Test__ZN3bbb9GG1000111E, "_ZN3bbb9GG1000111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1000111C1Ev(); |
| extern void _ZN3bbb9GG1000111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1000111E[] = { |
| NSPAIR(_ZN3bbb9GG1000111C1Ev), |
| NSPAIR(_ZN3bbb9GG1000111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1000111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000111E[]; |
| extern void _ZN3bbb9GG10001113fooEv(); |
| extern void _ZN3bbb9GG10001113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001113fooEv,_ZThn16_N3bbb9GG10001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10001113barEv,_ZTv0_n20_N3bbb9GG10001113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10001113barEv,_ZThn16_N3bbb9GG10001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001113barEv,_ZTv0_n12_N3bbb9GG10001113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001113barEv,_ZThn28_N3bbb9GG10001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10001113fooEv,_ZThn28_N3bbb9GG10001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10001113barEv,_ZTv0_n12_N3bbb9GG10001113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001113barEv,_ZThn36_N3bbb9GG10001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10001113fooEv,_ZThn36_N3bbb9GG10001113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1000111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10001113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10001113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10001113barEv,_ZTv0_n20_N3bbb9GG10001113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001113barEv,_ZTv0_n12_N3bbb9GG10001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1000111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10001113barEv,_ZTv0_n12_N3bbb9GG10001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1000111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1000111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1000111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1000111E[] = { |
| {&(_ZTVN3bbb9GG1000111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1000111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1000111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1000111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1000111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1000111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1000111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1000111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1000111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1000111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1000111E[]; |
| static VTBL_ENTRY alt_thunk_names88[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10001113barEv,_ZTv0_n12_N3bbb9GG10001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001113barEv,_ZThn36_N3bbb9GG10001113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001113barEv,_ZThn28_N3bbb9GG10001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10001113barEv,_ZTv0_n20_N3bbb9GG10001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001113barEv,_ZThn16_N3bbb9GG10001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10001113fooEv,_ZTv0_n16_N3bbb9GG10001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10001113fooEv,_ZThn36_N3bbb9GG10001113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10001113fooEv,_ZThn28_N3bbb9GG10001113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10001113fooEv,_ZThn16_N3bbb9GG10001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1000111E = { "_ZN3bbb9GG1000111E", // class name |
| bases__ZN3bbb9GG1000111E, 6, |
| &(vtc__ZN3bbb9GG1000111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1000111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1000111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1000111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1000111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names88, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001000 : virtual ::bbb::EE100 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10010003fooEv |
| virtual void bar(); // _ZN3bbb9GG10010003barEv |
| ~GG1001000(); // tgen |
| GG1001000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001000 ::foo(){vfunc_called(this, "_ZN3bbb9GG10010003fooEv");} |
| void bbb::GG1001000 ::bar(){vfunc_called(this, "_ZN3bbb9GG10010003barEv");} |
| bbb::GG1001000 ::~GG1001000(){ note_dtor("_ZN3bbb9GG1001000E", this);} // tgen |
| bbb::GG1001000 ::GG1001000(){ note_ctor("_ZN3bbb9GG1001000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001000E, buf); |
| ::bbb::GG1001000 *dp, &lv = *(dp=new (buf) ::bbb::GG1001000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001000E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1001000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1001000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1001000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001000E); |
| dp->::bbb::GG1001000::~GG1001000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001000E(Test__ZN3bbb9GG1001000E, "_ZN3bbb9GG1001000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001000C1Ev(); |
| extern void _ZN3bbb9GG1001000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001000E[] = { |
| NSPAIR(_ZN3bbb9GG1001000C1Ev), |
| NSPAIR(_ZN3bbb9GG1001000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1001000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001000E[]; |
| extern void _ZN3bbb9GG10010003barEv(); |
| extern void _ZN3bbb9GG10010003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010003fooEv,_ZTv0_n16_N3bbb9GG10010003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010003fooEv,_ZThn16_N3bbb9GG10010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10010003barEv,_ZTv0_n20_N3bbb9GG10010003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010003barEv,_ZThn16_N3bbb9GG10010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010003barEv,_ZTv0_n12_N3bbb9GG10010003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010003barEv,_ZThn28_N3bbb9GG10010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010003fooEv,_ZTv0_n16_N3bbb9GG10010003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010003fooEv,_ZThn28_N3bbb9GG10010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010003fooEv,_ZTv0_n12_N3bbb9GG10010003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010003fooEv,_ZThn36_N3bbb9GG10010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010003barEv,_ZTv0_n16_N3bbb9GG10010003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010003barEv,_ZThn36_N3bbb9GG10010003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10010003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10010003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010003fooEv,_ZTv0_n16_N3bbb9GG10010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10010003barEv,_ZTv0_n20_N3bbb9GG10010003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010003barEv,_ZTv0_n12_N3bbb9GG10010003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010003fooEv,_ZTv0_n16_N3bbb9GG10010003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010003fooEv,_ZTv0_n12_N3bbb9GG10010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010003barEv,_ZTv0_n16_N3bbb9GG10010003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1001000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1001000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001000E[] = { |
| {&(_ZTVN3bbb9GG1001000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1001000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1001000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001000E[]; |
| static VTBL_ENTRY alt_thunk_names89[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010003barEv,_ZTv0_n16_N3bbb9GG10010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010003barEv,_ZThn36_N3bbb9GG10010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010003fooEv,_ZTv0_n12_N3bbb9GG10010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010003fooEv,_ZThn36_N3bbb9GG10010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010003barEv,_ZTv0_n12_N3bbb9GG10010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010003barEv,_ZThn28_N3bbb9GG10010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10010003barEv,_ZTv0_n20_N3bbb9GG10010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010003barEv,_ZThn16_N3bbb9GG10010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010003fooEv,_ZTv0_n16_N3bbb9GG10010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010003fooEv,_ZThn28_N3bbb9GG10010003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010003fooEv,_ZThn16_N3bbb9GG10010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001000E = { "_ZN3bbb9GG1001000E", // class name |
| bases__ZN3bbb9GG1001000E, 6, |
| &(vtc__ZN3bbb9GG1001000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names89, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001001 : virtual ::bbb::EE100 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10010013barEv |
| virtual void foo(); // _ZN3bbb9GG10010013fooEv |
| ~GG1001001(); // tgen |
| GG1001001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001001 ::bar(){vfunc_called(this, "_ZN3bbb9GG10010013barEv");} |
| void bbb::GG1001001 ::foo(){vfunc_called(this, "_ZN3bbb9GG10010013fooEv");} |
| bbb::GG1001001 ::~GG1001001(){ note_dtor("_ZN3bbb9GG1001001E", this);} // tgen |
| bbb::GG1001001 ::GG1001001(){ note_ctor("_ZN3bbb9GG1001001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001001E, buf); |
| ::bbb::GG1001001 *dp, &lv = *(dp=new (buf) ::bbb::GG1001001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001001E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1001001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1001001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1001001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001001E); |
| dp->::bbb::GG1001001::~GG1001001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001001E(Test__ZN3bbb9GG1001001E, "_ZN3bbb9GG1001001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001001C1Ev(); |
| extern void _ZN3bbb9GG1001001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001001E[] = { |
| NSPAIR(_ZN3bbb9GG1001001C1Ev), |
| NSPAIR(_ZN3bbb9GG1001001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1001001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001001E[]; |
| extern void _ZN3bbb9GG10010013barEv(); |
| extern void _ZN3bbb9GG10010013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010013fooEv,_ZTv0_n16_N3bbb9GG10010013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010013fooEv,_ZThn16_N3bbb9GG10010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10010013barEv,_ZTv0_n20_N3bbb9GG10010013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010013barEv,_ZThn16_N3bbb9GG10010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010013barEv,_ZTv0_n12_N3bbb9GG10010013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010013barEv,_ZThn28_N3bbb9GG10010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010013fooEv,_ZTv0_n16_N3bbb9GG10010013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010013fooEv,_ZThn28_N3bbb9GG10010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010013fooEv,_ZTv0_n12_N3bbb9GG10010013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010013fooEv,_ZThn36_N3bbb9GG10010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010013barEv,_ZTv0_n16_N3bbb9GG10010013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010013barEv,_ZThn36_N3bbb9GG10010013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10010013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10010013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010013fooEv,_ZTv0_n16_N3bbb9GG10010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10010013barEv,_ZTv0_n20_N3bbb9GG10010013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010013barEv,_ZTv0_n12_N3bbb9GG10010013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010013fooEv,_ZTv0_n16_N3bbb9GG10010013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010013fooEv,_ZTv0_n12_N3bbb9GG10010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010013barEv,_ZTv0_n16_N3bbb9GG10010013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1001001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1001001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001001E[] = { |
| {&(_ZTVN3bbb9GG1001001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1001001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1001001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001001E[]; |
| static VTBL_ENTRY alt_thunk_names90[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010013barEv,_ZTv0_n16_N3bbb9GG10010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010013barEv,_ZThn36_N3bbb9GG10010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010013fooEv,_ZTv0_n12_N3bbb9GG10010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010013fooEv,_ZThn36_N3bbb9GG10010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010013barEv,_ZTv0_n12_N3bbb9GG10010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010013barEv,_ZThn28_N3bbb9GG10010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10010013barEv,_ZTv0_n20_N3bbb9GG10010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010013barEv,_ZThn16_N3bbb9GG10010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010013fooEv,_ZTv0_n16_N3bbb9GG10010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010013fooEv,_ZThn28_N3bbb9GG10010013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010013fooEv,_ZThn16_N3bbb9GG10010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001001E = { "_ZN3bbb9GG1001001E", // class name |
| bases__ZN3bbb9GG1001001E, 6, |
| &(vtc__ZN3bbb9GG1001001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names90, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001010 : virtual ::bbb::EE100 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10010103fooEv |
| virtual void bar(); // _ZN3bbb9GG10010103barEv |
| ~GG1001010(); // tgen |
| GG1001010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001010 ::foo(){vfunc_called(this, "_ZN3bbb9GG10010103fooEv");} |
| void bbb::GG1001010 ::bar(){vfunc_called(this, "_ZN3bbb9GG10010103barEv");} |
| bbb::GG1001010 ::~GG1001010(){ note_dtor("_ZN3bbb9GG1001010E", this);} // tgen |
| bbb::GG1001010 ::GG1001010(){ note_ctor("_ZN3bbb9GG1001010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001010E, buf); |
| ::bbb::GG1001010 *dp, &lv = *(dp=new (buf) ::bbb::GG1001010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001010E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1001010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1001010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1001010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001010E); |
| dp->::bbb::GG1001010::~GG1001010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001010E(Test__ZN3bbb9GG1001010E, "_ZN3bbb9GG1001010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001010C1Ev(); |
| extern void _ZN3bbb9GG1001010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001010E[] = { |
| NSPAIR(_ZN3bbb9GG1001010C1Ev), |
| NSPAIR(_ZN3bbb9GG1001010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1001010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001010E[]; |
| extern void _ZN3bbb9GG10010103barEv(); |
| extern void _ZN3bbb9GG10010103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010103fooEv,_ZTv0_n16_N3bbb9GG10010103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010103fooEv,_ZThn16_N3bbb9GG10010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10010103barEv,_ZTv0_n20_N3bbb9GG10010103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010103barEv,_ZThn16_N3bbb9GG10010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010103barEv,_ZTv0_n12_N3bbb9GG10010103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010103barEv,_ZThn28_N3bbb9GG10010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010103fooEv,_ZTv0_n16_N3bbb9GG10010103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010103fooEv,_ZThn28_N3bbb9GG10010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010103fooEv,_ZTv0_n12_N3bbb9GG10010103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010103fooEv,_ZThn36_N3bbb9GG10010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010103barEv,_ZTv0_n16_N3bbb9GG10010103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010103barEv,_ZThn36_N3bbb9GG10010103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10010103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10010103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010103fooEv,_ZTv0_n16_N3bbb9GG10010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10010103barEv,_ZTv0_n20_N3bbb9GG10010103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010103barEv,_ZTv0_n12_N3bbb9GG10010103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010103fooEv,_ZTv0_n16_N3bbb9GG10010103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010103fooEv,_ZTv0_n12_N3bbb9GG10010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010103barEv,_ZTv0_n16_N3bbb9GG10010103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1001010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1001010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001010E[] = { |
| {&(_ZTVN3bbb9GG1001010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1001010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1001010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001010E[]; |
| static VTBL_ENTRY alt_thunk_names91[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010103barEv,_ZTv0_n16_N3bbb9GG10010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010103barEv,_ZThn36_N3bbb9GG10010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010103fooEv,_ZTv0_n12_N3bbb9GG10010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010103fooEv,_ZThn36_N3bbb9GG10010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010103barEv,_ZTv0_n12_N3bbb9GG10010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010103barEv,_ZThn28_N3bbb9GG10010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10010103barEv,_ZTv0_n20_N3bbb9GG10010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010103barEv,_ZThn16_N3bbb9GG10010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010103fooEv,_ZTv0_n16_N3bbb9GG10010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010103fooEv,_ZThn28_N3bbb9GG10010103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010103fooEv,_ZThn16_N3bbb9GG10010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001010E = { "_ZN3bbb9GG1001010E", // class name |
| bases__ZN3bbb9GG1001010E, 6, |
| &(vtc__ZN3bbb9GG1001010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names91, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001011 : virtual ::bbb::EE100 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10010113barEv |
| virtual void foo(); // _ZN3bbb9GG10010113fooEv |
| ~GG1001011(); // tgen |
| GG1001011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001011 ::bar(){vfunc_called(this, "_ZN3bbb9GG10010113barEv");} |
| void bbb::GG1001011 ::foo(){vfunc_called(this, "_ZN3bbb9GG10010113fooEv");} |
| bbb::GG1001011 ::~GG1001011(){ note_dtor("_ZN3bbb9GG1001011E", this);} // tgen |
| bbb::GG1001011 ::GG1001011(){ note_ctor("_ZN3bbb9GG1001011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001011E, buf); |
| ::bbb::GG1001011 *dp, &lv = *(dp=new (buf) ::bbb::GG1001011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001011E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1001011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1001011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1001011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001011E); |
| dp->::bbb::GG1001011::~GG1001011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001011E(Test__ZN3bbb9GG1001011E, "_ZN3bbb9GG1001011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001011C1Ev(); |
| extern void _ZN3bbb9GG1001011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001011E[] = { |
| NSPAIR(_ZN3bbb9GG1001011C1Ev), |
| NSPAIR(_ZN3bbb9GG1001011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1001011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001011E[]; |
| extern void _ZN3bbb9GG10010113barEv(); |
| extern void _ZN3bbb9GG10010113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010113fooEv,_ZTv0_n16_N3bbb9GG10010113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010113fooEv,_ZThn16_N3bbb9GG10010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10010113barEv,_ZTv0_n20_N3bbb9GG10010113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10010113barEv,_ZThn16_N3bbb9GG10010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010113barEv,_ZTv0_n12_N3bbb9GG10010113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010113barEv,_ZThn28_N3bbb9GG10010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010113fooEv,_ZTv0_n16_N3bbb9GG10010113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10010113fooEv,_ZThn28_N3bbb9GG10010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10010113fooEv,_ZTv0_n12_N3bbb9GG10010113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010113fooEv,_ZThn36_N3bbb9GG10010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10010113barEv,_ZTv0_n16_N3bbb9GG10010113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10010113barEv,_ZThn36_N3bbb9GG10010113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10010113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10010113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010113fooEv,_ZTv0_n16_N3bbb9GG10010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10010113barEv,_ZTv0_n20_N3bbb9GG10010113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010113barEv,_ZTv0_n12_N3bbb9GG10010113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010113fooEv,_ZTv0_n16_N3bbb9GG10010113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10010113fooEv,_ZTv0_n12_N3bbb9GG10010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10010113barEv,_ZTv0_n16_N3bbb9GG10010113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1001011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1001011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001011E[] = { |
| {&(_ZTVN3bbb9GG1001011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1001011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1001011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001011E[]; |
| static VTBL_ENTRY alt_thunk_names92[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010113barEv,_ZTv0_n16_N3bbb9GG10010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010113barEv,_ZThn36_N3bbb9GG10010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010113fooEv,_ZTv0_n12_N3bbb9GG10010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10010113fooEv,_ZThn36_N3bbb9GG10010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10010113barEv,_ZTv0_n12_N3bbb9GG10010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010113barEv,_ZThn28_N3bbb9GG10010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10010113barEv,_ZTv0_n20_N3bbb9GG10010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010113barEv,_ZThn16_N3bbb9GG10010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10010113fooEv,_ZTv0_n16_N3bbb9GG10010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10010113fooEv,_ZThn28_N3bbb9GG10010113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10010113fooEv,_ZThn16_N3bbb9GG10010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001011E = { "_ZN3bbb9GG1001011E", // class name |
| bases__ZN3bbb9GG1001011E, 6, |
| &(vtc__ZN3bbb9GG1001011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names92, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001100 : virtual ::bbb::EE100 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10011003fooEv |
| virtual void bar(); // _ZN3bbb9GG10011003barEv |
| ~GG1001100(); // tgen |
| GG1001100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001100 ::foo(){vfunc_called(this, "_ZN3bbb9GG10011003fooEv");} |
| void bbb::GG1001100 ::bar(){vfunc_called(this, "_ZN3bbb9GG10011003barEv");} |
| bbb::GG1001100 ::~GG1001100(){ note_dtor("_ZN3bbb9GG1001100E", this);} // tgen |
| bbb::GG1001100 ::GG1001100(){ note_ctor("_ZN3bbb9GG1001100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001100E, buf); |
| ::bbb::GG1001100 *dp, &lv = *(dp=new (buf) ::bbb::GG1001100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001100E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1001100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1001100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1001100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001100E); |
| dp->::bbb::GG1001100::~GG1001100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001100E(Test__ZN3bbb9GG1001100E, "_ZN3bbb9GG1001100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001100C1Ev(); |
| extern void _ZN3bbb9GG1001100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001100E[] = { |
| NSPAIR(_ZN3bbb9GG1001100C1Ev), |
| NSPAIR(_ZN3bbb9GG1001100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1001100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001100E[]; |
| extern void _ZN3bbb9GG10011003barEv(); |
| extern void _ZN3bbb9GG10011003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011003fooEv,_ZThn16_N3bbb9GG10011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10011003barEv,_ZTv0_n20_N3bbb9GG10011003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011003barEv,_ZThn16_N3bbb9GG10011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011003barEv,_ZTv0_n12_N3bbb9GG10011003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011003barEv,_ZThn28_N3bbb9GG10011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011003fooEv,_ZThn28_N3bbb9GG10011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011003barEv,_ZTv0_n12_N3bbb9GG10011003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011003barEv,_ZThn36_N3bbb9GG10011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011003fooEv,_ZThn36_N3bbb9GG10011003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10011003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10011003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10011003barEv,_ZTv0_n20_N3bbb9GG10011003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011003barEv,_ZTv0_n12_N3bbb9GG10011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011003barEv,_ZTv0_n12_N3bbb9GG10011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1001100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1001100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001100E[] = { |
| {&(_ZTVN3bbb9GG1001100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1001100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1001100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001100E[]; |
| static VTBL_ENTRY alt_thunk_names93[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10011003barEv,_ZTv0_n12_N3bbb9GG10011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011003barEv,_ZThn36_N3bbb9GG10011003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011003barEv,_ZThn28_N3bbb9GG10011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10011003barEv,_ZTv0_n20_N3bbb9GG10011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011003barEv,_ZThn16_N3bbb9GG10011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10011003fooEv,_ZTv0_n16_N3bbb9GG10011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011003fooEv,_ZThn36_N3bbb9GG10011003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011003fooEv,_ZThn28_N3bbb9GG10011003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011003fooEv,_ZThn16_N3bbb9GG10011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001100E = { "_ZN3bbb9GG1001100E", // class name |
| bases__ZN3bbb9GG1001100E, 6, |
| &(vtc__ZN3bbb9GG1001100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names93, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001101 : virtual ::bbb::EE100 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10011013barEv |
| virtual void foo(); // _ZN3bbb9GG10011013fooEv |
| ~GG1001101(); // tgen |
| GG1001101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001101 ::bar(){vfunc_called(this, "_ZN3bbb9GG10011013barEv");} |
| void bbb::GG1001101 ::foo(){vfunc_called(this, "_ZN3bbb9GG10011013fooEv");} |
| bbb::GG1001101 ::~GG1001101(){ note_dtor("_ZN3bbb9GG1001101E", this);} // tgen |
| bbb::GG1001101 ::GG1001101(){ note_ctor("_ZN3bbb9GG1001101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001101E, buf); |
| ::bbb::GG1001101 *dp, &lv = *(dp=new (buf) ::bbb::GG1001101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001101E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1001101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1001101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1001101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001101E); |
| dp->::bbb::GG1001101::~GG1001101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001101E(Test__ZN3bbb9GG1001101E, "_ZN3bbb9GG1001101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001101C1Ev(); |
| extern void _ZN3bbb9GG1001101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001101E[] = { |
| NSPAIR(_ZN3bbb9GG1001101C1Ev), |
| NSPAIR(_ZN3bbb9GG1001101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1001101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001101E[]; |
| extern void _ZN3bbb9GG10011013barEv(); |
| extern void _ZN3bbb9GG10011013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011013fooEv,_ZThn16_N3bbb9GG10011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10011013barEv,_ZTv0_n20_N3bbb9GG10011013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011013barEv,_ZThn16_N3bbb9GG10011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011013barEv,_ZTv0_n12_N3bbb9GG10011013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011013barEv,_ZThn28_N3bbb9GG10011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011013fooEv,_ZThn28_N3bbb9GG10011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011013barEv,_ZTv0_n12_N3bbb9GG10011013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011013barEv,_ZThn36_N3bbb9GG10011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011013fooEv,_ZThn36_N3bbb9GG10011013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10011013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10011013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10011013barEv,_ZTv0_n20_N3bbb9GG10011013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011013barEv,_ZTv0_n12_N3bbb9GG10011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011013barEv,_ZTv0_n12_N3bbb9GG10011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1001101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1001101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001101E[] = { |
| {&(_ZTVN3bbb9GG1001101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1001101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1001101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001101E[]; |
| static VTBL_ENTRY alt_thunk_names94[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10011013barEv,_ZTv0_n12_N3bbb9GG10011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011013barEv,_ZThn36_N3bbb9GG10011013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011013barEv,_ZThn28_N3bbb9GG10011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10011013barEv,_ZTv0_n20_N3bbb9GG10011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011013barEv,_ZThn16_N3bbb9GG10011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10011013fooEv,_ZTv0_n16_N3bbb9GG10011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011013fooEv,_ZThn36_N3bbb9GG10011013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011013fooEv,_ZThn28_N3bbb9GG10011013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011013fooEv,_ZThn16_N3bbb9GG10011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001101E = { "_ZN3bbb9GG1001101E", // class name |
| bases__ZN3bbb9GG1001101E, 6, |
| &(vtc__ZN3bbb9GG1001101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names94, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001110 : virtual ::bbb::EE100 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10011103fooEv |
| virtual void bar(); // _ZN3bbb9GG10011103barEv |
| ~GG1001110(); // tgen |
| GG1001110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001110 ::foo(){vfunc_called(this, "_ZN3bbb9GG10011103fooEv");} |
| void bbb::GG1001110 ::bar(){vfunc_called(this, "_ZN3bbb9GG10011103barEv");} |
| bbb::GG1001110 ::~GG1001110(){ note_dtor("_ZN3bbb9GG1001110E", this);} // tgen |
| bbb::GG1001110 ::GG1001110(){ note_ctor("_ZN3bbb9GG1001110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001110E, buf); |
| ::bbb::GG1001110 *dp, &lv = *(dp=new (buf) ::bbb::GG1001110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001110E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1001110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1001110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1001110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001110E); |
| dp->::bbb::GG1001110::~GG1001110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001110E(Test__ZN3bbb9GG1001110E, "_ZN3bbb9GG1001110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001110C1Ev(); |
| extern void _ZN3bbb9GG1001110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001110E[] = { |
| NSPAIR(_ZN3bbb9GG1001110C1Ev), |
| NSPAIR(_ZN3bbb9GG1001110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1001110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001110E[]; |
| extern void _ZN3bbb9GG10011103barEv(); |
| extern void _ZN3bbb9GG10011103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011103fooEv,_ZThn16_N3bbb9GG10011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10011103barEv,_ZTv0_n20_N3bbb9GG10011103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011103barEv,_ZThn16_N3bbb9GG10011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011103barEv,_ZTv0_n12_N3bbb9GG10011103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011103barEv,_ZThn28_N3bbb9GG10011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011103fooEv,_ZThn28_N3bbb9GG10011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011103barEv,_ZTv0_n12_N3bbb9GG10011103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011103barEv,_ZThn36_N3bbb9GG10011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011103fooEv,_ZThn36_N3bbb9GG10011103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10011103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10011103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10011103barEv,_ZTv0_n20_N3bbb9GG10011103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011103barEv,_ZTv0_n12_N3bbb9GG10011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011103barEv,_ZTv0_n12_N3bbb9GG10011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1001110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1001110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001110E[] = { |
| {&(_ZTVN3bbb9GG1001110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1001110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1001110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001110E[]; |
| static VTBL_ENTRY alt_thunk_names95[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10011103barEv,_ZTv0_n12_N3bbb9GG10011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011103barEv,_ZThn36_N3bbb9GG10011103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011103barEv,_ZThn28_N3bbb9GG10011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10011103barEv,_ZTv0_n20_N3bbb9GG10011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011103barEv,_ZThn16_N3bbb9GG10011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10011103fooEv,_ZTv0_n16_N3bbb9GG10011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011103fooEv,_ZThn36_N3bbb9GG10011103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011103fooEv,_ZThn28_N3bbb9GG10011103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011103fooEv,_ZThn16_N3bbb9GG10011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001110E = { "_ZN3bbb9GG1001110E", // class name |
| bases__ZN3bbb9GG1001110E, 6, |
| &(vtc__ZN3bbb9GG1001110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names95, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1001111 : virtual ::bbb::EE100 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10011113barEv |
| virtual void foo(); // _ZN3bbb9GG10011113fooEv |
| ~GG1001111(); // tgen |
| GG1001111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1001111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1001111 ::bar(){vfunc_called(this, "_ZN3bbb9GG10011113barEv");} |
| void bbb::GG1001111 ::foo(){vfunc_called(this, "_ZN3bbb9GG10011113fooEv");} |
| bbb::GG1001111 ::~GG1001111(){ note_dtor("_ZN3bbb9GG1001111E", this);} // tgen |
| bbb::GG1001111 ::GG1001111(){ note_ctor("_ZN3bbb9GG1001111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1001111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1001111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1001111E, buf); |
| ::bbb::GG1001111 *dp, &lv = *(dp=new (buf) ::bbb::GG1001111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1001111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1001111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE100*), ABISELECT(40,28), "_ZN3bbb9GG1001111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001111E"); |
| check_base_class_offset(lv, (::bbb::EE100*), ABISELECT(24,16), "_ZN3bbb9GG1001111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1001111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1001111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1001111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1001111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1001111E); |
| dp->::bbb::GG1001111::~GG1001111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1001111E(Test__ZN3bbb9GG1001111E, "_ZN3bbb9GG1001111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1001111C1Ev(); |
| extern void _ZN3bbb9GG1001111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1001111E[] = { |
| NSPAIR(_ZN3bbb9GG1001111C1Ev), |
| NSPAIR(_ZN3bbb9GG1001111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE100E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE100E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1001111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE100E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001111E[]; |
| extern void _ZN3bbb9GG10011113barEv(); |
| extern void _ZN3bbb9GG10011113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011113fooEv,_ZThn16_N3bbb9GG10011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10011113barEv,_ZTv0_n20_N3bbb9GG10011113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10011113barEv,_ZThn16_N3bbb9GG10011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011113barEv,_ZTv0_n12_N3bbb9GG10011113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011113barEv,_ZThn28_N3bbb9GG10011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10011113fooEv,_ZThn28_N3bbb9GG10011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10011113barEv,_ZTv0_n12_N3bbb9GG10011113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011113barEv,_ZThn36_N3bbb9GG10011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10011113fooEv,_ZThn36_N3bbb9GG10011113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1001111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10011113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10011113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10011113barEv,_ZTv0_n20_N3bbb9GG10011113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011113barEv,_ZTv0_n12_N3bbb9GG10011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1001111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10011113barEv,_ZTv0_n12_N3bbb9GG10011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1001111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1001111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1003fooEv(); |
| extern void _ZN3bbb5EE1003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE100E__NS_9GG1001111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1001111E[] = { |
| {&(_ZTVN3bbb9GG1001111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1001111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1001111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1001111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1001111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1001111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE100E__NS_9GG1001111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE100E__NS_9GG1001111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1001111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1001111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1001111E[]; |
| static VTBL_ENTRY alt_thunk_names96[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1003fooEv,_ZTv0_n16_N3bbb5EE1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003fooEv,_ZThn12_N3bbb5EE1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1003barEv,_ZTv0_n12_N3bbb5EE1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1003barEv,_ZThn12_N3bbb5EE1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10011113barEv,_ZTv0_n12_N3bbb9GG10011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011113barEv,_ZThn36_N3bbb9GG10011113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011113barEv,_ZThn28_N3bbb9GG10011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10011113barEv,_ZTv0_n20_N3bbb9GG10011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011113barEv,_ZThn16_N3bbb9GG10011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10011113fooEv,_ZTv0_n16_N3bbb9GG10011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10011113fooEv,_ZThn36_N3bbb9GG10011113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10011113fooEv,_ZThn28_N3bbb9GG10011113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10011113fooEv,_ZThn16_N3bbb9GG10011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1001111E = { "_ZN3bbb9GG1001111E", // class name |
| bases__ZN3bbb9GG1001111E, 6, |
| &(vtc__ZN3bbb9GG1001111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1001111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1001111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1001111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1001111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names96, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010000 : virtual ::bbb::EE101 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10100003fooEv |
| virtual void bar(); // _ZN3bbb9GG10100003barEv |
| ~GG1010000(); // tgen |
| GG1010000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010000 ::foo(){vfunc_called(this, "_ZN3bbb9GG10100003fooEv");} |
| void bbb::GG1010000 ::bar(){vfunc_called(this, "_ZN3bbb9GG10100003barEv");} |
| bbb::GG1010000 ::~GG1010000(){ note_dtor("_ZN3bbb9GG1010000E", this);} // tgen |
| bbb::GG1010000 ::GG1010000(){ note_ctor("_ZN3bbb9GG1010000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010000E, buf); |
| ::bbb::GG1010000 *dp, &lv = *(dp=new (buf) ::bbb::GG1010000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010000E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1010000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1010000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1010000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010000E); |
| dp->::bbb::GG1010000::~GG1010000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010000E(Test__ZN3bbb9GG1010000E, "_ZN3bbb9GG1010000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010000C1Ev(); |
| extern void _ZN3bbb9GG1010000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010000E[] = { |
| NSPAIR(_ZN3bbb9GG1010000C1Ev), |
| NSPAIR(_ZN3bbb9GG1010000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1010000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010000E[]; |
| extern void _ZN3bbb9GG10100003fooEv(); |
| extern void _ZN3bbb9GG10100003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100003fooEv,_ZTv0_n16_N3bbb9GG10100003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100003fooEv,_ZThn16_N3bbb9GG10100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10100003barEv,_ZTv0_n20_N3bbb9GG10100003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100003barEv,_ZThn16_N3bbb9GG10100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100003barEv,_ZTv0_n12_N3bbb9GG10100003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100003barEv,_ZThn28_N3bbb9GG10100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100003fooEv,_ZTv0_n16_N3bbb9GG10100003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100003fooEv,_ZThn28_N3bbb9GG10100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100003fooEv,_ZTv0_n12_N3bbb9GG10100003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100003fooEv,_ZThn36_N3bbb9GG10100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100003barEv,_ZTv0_n16_N3bbb9GG10100003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100003barEv,_ZThn36_N3bbb9GG10100003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10100003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10100003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100003fooEv,_ZTv0_n16_N3bbb9GG10100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10100003barEv,_ZTv0_n20_N3bbb9GG10100003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100003barEv,_ZTv0_n12_N3bbb9GG10100003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100003fooEv,_ZTv0_n16_N3bbb9GG10100003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100003fooEv,_ZTv0_n12_N3bbb9GG10100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100003barEv,_ZTv0_n16_N3bbb9GG10100003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1010000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1010000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010000E[] = { |
| {&(_ZTVN3bbb9GG1010000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1010000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1010000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010000E[]; |
| static VTBL_ENTRY alt_thunk_names97[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100003barEv,_ZTv0_n16_N3bbb9GG10100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100003barEv,_ZThn36_N3bbb9GG10100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100003fooEv,_ZTv0_n12_N3bbb9GG10100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100003fooEv,_ZThn36_N3bbb9GG10100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100003barEv,_ZTv0_n12_N3bbb9GG10100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100003barEv,_ZThn28_N3bbb9GG10100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10100003barEv,_ZTv0_n20_N3bbb9GG10100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100003barEv,_ZThn16_N3bbb9GG10100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100003fooEv,_ZTv0_n16_N3bbb9GG10100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100003fooEv,_ZThn28_N3bbb9GG10100003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100003fooEv,_ZThn16_N3bbb9GG10100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010000E = { "_ZN3bbb9GG1010000E", // class name |
| bases__ZN3bbb9GG1010000E, 6, |
| &(vtc__ZN3bbb9GG1010000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names97, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010001 : virtual ::bbb::EE101 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10100013barEv |
| virtual void foo(); // _ZN3bbb9GG10100013fooEv |
| ~GG1010001(); // tgen |
| GG1010001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010001 ::bar(){vfunc_called(this, "_ZN3bbb9GG10100013barEv");} |
| void bbb::GG1010001 ::foo(){vfunc_called(this, "_ZN3bbb9GG10100013fooEv");} |
| bbb::GG1010001 ::~GG1010001(){ note_dtor("_ZN3bbb9GG1010001E", this);} // tgen |
| bbb::GG1010001 ::GG1010001(){ note_ctor("_ZN3bbb9GG1010001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010001E, buf); |
| ::bbb::GG1010001 *dp, &lv = *(dp=new (buf) ::bbb::GG1010001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010001E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1010001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1010001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1010001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010001E); |
| dp->::bbb::GG1010001::~GG1010001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010001E(Test__ZN3bbb9GG1010001E, "_ZN3bbb9GG1010001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010001C1Ev(); |
| extern void _ZN3bbb9GG1010001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010001E[] = { |
| NSPAIR(_ZN3bbb9GG1010001C1Ev), |
| NSPAIR(_ZN3bbb9GG1010001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1010001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010001E[]; |
| extern void _ZN3bbb9GG10100013fooEv(); |
| extern void _ZN3bbb9GG10100013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100013fooEv,_ZTv0_n16_N3bbb9GG10100013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100013fooEv,_ZThn16_N3bbb9GG10100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10100013barEv,_ZTv0_n20_N3bbb9GG10100013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100013barEv,_ZThn16_N3bbb9GG10100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100013barEv,_ZTv0_n12_N3bbb9GG10100013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100013barEv,_ZThn28_N3bbb9GG10100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100013fooEv,_ZTv0_n16_N3bbb9GG10100013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100013fooEv,_ZThn28_N3bbb9GG10100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100013fooEv,_ZTv0_n12_N3bbb9GG10100013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100013fooEv,_ZThn36_N3bbb9GG10100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100013barEv,_ZTv0_n16_N3bbb9GG10100013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100013barEv,_ZThn36_N3bbb9GG10100013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10100013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10100013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100013fooEv,_ZTv0_n16_N3bbb9GG10100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10100013barEv,_ZTv0_n20_N3bbb9GG10100013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100013barEv,_ZTv0_n12_N3bbb9GG10100013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100013fooEv,_ZTv0_n16_N3bbb9GG10100013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100013fooEv,_ZTv0_n12_N3bbb9GG10100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100013barEv,_ZTv0_n16_N3bbb9GG10100013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1010001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1010001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010001E[] = { |
| {&(_ZTVN3bbb9GG1010001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1010001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1010001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010001E[]; |
| static VTBL_ENTRY alt_thunk_names98[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100013barEv,_ZTv0_n16_N3bbb9GG10100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100013barEv,_ZThn36_N3bbb9GG10100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100013fooEv,_ZTv0_n12_N3bbb9GG10100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100013fooEv,_ZThn36_N3bbb9GG10100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100013barEv,_ZTv0_n12_N3bbb9GG10100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100013barEv,_ZThn28_N3bbb9GG10100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10100013barEv,_ZTv0_n20_N3bbb9GG10100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100013barEv,_ZThn16_N3bbb9GG10100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100013fooEv,_ZTv0_n16_N3bbb9GG10100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100013fooEv,_ZThn28_N3bbb9GG10100013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100013fooEv,_ZThn16_N3bbb9GG10100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010001E = { "_ZN3bbb9GG1010001E", // class name |
| bases__ZN3bbb9GG1010001E, 6, |
| &(vtc__ZN3bbb9GG1010001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names98, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010010 : virtual ::bbb::EE101 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10100103fooEv |
| virtual void bar(); // _ZN3bbb9GG10100103barEv |
| ~GG1010010(); // tgen |
| GG1010010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010010 ::foo(){vfunc_called(this, "_ZN3bbb9GG10100103fooEv");} |
| void bbb::GG1010010 ::bar(){vfunc_called(this, "_ZN3bbb9GG10100103barEv");} |
| bbb::GG1010010 ::~GG1010010(){ note_dtor("_ZN3bbb9GG1010010E", this);} // tgen |
| bbb::GG1010010 ::GG1010010(){ note_ctor("_ZN3bbb9GG1010010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010010E, buf); |
| ::bbb::GG1010010 *dp, &lv = *(dp=new (buf) ::bbb::GG1010010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010010E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1010010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1010010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1010010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010010E); |
| dp->::bbb::GG1010010::~GG1010010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010010E(Test__ZN3bbb9GG1010010E, "_ZN3bbb9GG1010010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010010C1Ev(); |
| extern void _ZN3bbb9GG1010010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010010E[] = { |
| NSPAIR(_ZN3bbb9GG1010010C1Ev), |
| NSPAIR(_ZN3bbb9GG1010010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1010010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010010E[]; |
| extern void _ZN3bbb9GG10100103fooEv(); |
| extern void _ZN3bbb9GG10100103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100103fooEv,_ZTv0_n16_N3bbb9GG10100103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100103fooEv,_ZThn16_N3bbb9GG10100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10100103barEv,_ZTv0_n20_N3bbb9GG10100103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100103barEv,_ZThn16_N3bbb9GG10100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100103barEv,_ZTv0_n12_N3bbb9GG10100103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100103barEv,_ZThn28_N3bbb9GG10100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100103fooEv,_ZTv0_n16_N3bbb9GG10100103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100103fooEv,_ZThn28_N3bbb9GG10100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100103fooEv,_ZTv0_n12_N3bbb9GG10100103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100103fooEv,_ZThn36_N3bbb9GG10100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100103barEv,_ZTv0_n16_N3bbb9GG10100103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100103barEv,_ZThn36_N3bbb9GG10100103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10100103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10100103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100103fooEv,_ZTv0_n16_N3bbb9GG10100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10100103barEv,_ZTv0_n20_N3bbb9GG10100103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100103barEv,_ZTv0_n12_N3bbb9GG10100103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100103fooEv,_ZTv0_n16_N3bbb9GG10100103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100103fooEv,_ZTv0_n12_N3bbb9GG10100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100103barEv,_ZTv0_n16_N3bbb9GG10100103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1010010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1010010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010010E[] = { |
| {&(_ZTVN3bbb9GG1010010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1010010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1010010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010010E[]; |
| static VTBL_ENTRY alt_thunk_names99[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100103barEv,_ZTv0_n16_N3bbb9GG10100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100103barEv,_ZThn36_N3bbb9GG10100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100103fooEv,_ZTv0_n12_N3bbb9GG10100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100103fooEv,_ZThn36_N3bbb9GG10100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100103barEv,_ZTv0_n12_N3bbb9GG10100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100103barEv,_ZThn28_N3bbb9GG10100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10100103barEv,_ZTv0_n20_N3bbb9GG10100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100103barEv,_ZThn16_N3bbb9GG10100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100103fooEv,_ZTv0_n16_N3bbb9GG10100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100103fooEv,_ZThn28_N3bbb9GG10100103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100103fooEv,_ZThn16_N3bbb9GG10100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010010E = { "_ZN3bbb9GG1010010E", // class name |
| bases__ZN3bbb9GG1010010E, 6, |
| &(vtc__ZN3bbb9GG1010010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names99, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010011 : virtual ::bbb::EE101 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10100113barEv |
| virtual void foo(); // _ZN3bbb9GG10100113fooEv |
| ~GG1010011(); // tgen |
| GG1010011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010011 ::bar(){vfunc_called(this, "_ZN3bbb9GG10100113barEv");} |
| void bbb::GG1010011 ::foo(){vfunc_called(this, "_ZN3bbb9GG10100113fooEv");} |
| bbb::GG1010011 ::~GG1010011(){ note_dtor("_ZN3bbb9GG1010011E", this);} // tgen |
| bbb::GG1010011 ::GG1010011(){ note_ctor("_ZN3bbb9GG1010011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010011E, buf); |
| ::bbb::GG1010011 *dp, &lv = *(dp=new (buf) ::bbb::GG1010011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010011E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1010011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1010011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1010011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010011E); |
| dp->::bbb::GG1010011::~GG1010011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010011E(Test__ZN3bbb9GG1010011E, "_ZN3bbb9GG1010011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010011C1Ev(); |
| extern void _ZN3bbb9GG1010011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010011E[] = { |
| NSPAIR(_ZN3bbb9GG1010011C1Ev), |
| NSPAIR(_ZN3bbb9GG1010011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1010011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010011E[]; |
| extern void _ZN3bbb9GG10100113fooEv(); |
| extern void _ZN3bbb9GG10100113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100113fooEv,_ZTv0_n16_N3bbb9GG10100113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100113fooEv,_ZThn16_N3bbb9GG10100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10100113barEv,_ZTv0_n20_N3bbb9GG10100113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10100113barEv,_ZThn16_N3bbb9GG10100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100113barEv,_ZTv0_n12_N3bbb9GG10100113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100113barEv,_ZThn28_N3bbb9GG10100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100113fooEv,_ZTv0_n16_N3bbb9GG10100113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10100113fooEv,_ZThn28_N3bbb9GG10100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10100113fooEv,_ZTv0_n12_N3bbb9GG10100113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100113fooEv,_ZThn36_N3bbb9GG10100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10100113barEv,_ZTv0_n16_N3bbb9GG10100113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10100113barEv,_ZThn36_N3bbb9GG10100113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10100113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10100113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100113fooEv,_ZTv0_n16_N3bbb9GG10100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10100113barEv,_ZTv0_n20_N3bbb9GG10100113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100113barEv,_ZTv0_n12_N3bbb9GG10100113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100113fooEv,_ZTv0_n16_N3bbb9GG10100113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10100113fooEv,_ZTv0_n12_N3bbb9GG10100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10100113barEv,_ZTv0_n16_N3bbb9GG10100113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1010011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1010011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010011E[] = { |
| {&(_ZTVN3bbb9GG1010011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1010011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1010011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010011E[]; |
| static VTBL_ENTRY alt_thunk_names100[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100113barEv,_ZTv0_n16_N3bbb9GG10100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100113barEv,_ZThn36_N3bbb9GG10100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100113fooEv,_ZTv0_n12_N3bbb9GG10100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10100113fooEv,_ZThn36_N3bbb9GG10100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10100113barEv,_ZTv0_n12_N3bbb9GG10100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100113barEv,_ZThn28_N3bbb9GG10100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10100113barEv,_ZTv0_n20_N3bbb9GG10100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100113barEv,_ZThn16_N3bbb9GG10100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10100113fooEv,_ZTv0_n16_N3bbb9GG10100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10100113fooEv,_ZThn28_N3bbb9GG10100113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10100113fooEv,_ZThn16_N3bbb9GG10100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010011E = { "_ZN3bbb9GG1010011E", // class name |
| bases__ZN3bbb9GG1010011E, 6, |
| &(vtc__ZN3bbb9GG1010011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names100, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010100 : virtual ::bbb::EE101 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10101003fooEv |
| virtual void bar(); // _ZN3bbb9GG10101003barEv |
| ~GG1010100(); // tgen |
| GG1010100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010100 ::foo(){vfunc_called(this, "_ZN3bbb9GG10101003fooEv");} |
| void bbb::GG1010100 ::bar(){vfunc_called(this, "_ZN3bbb9GG10101003barEv");} |
| bbb::GG1010100 ::~GG1010100(){ note_dtor("_ZN3bbb9GG1010100E", this);} // tgen |
| bbb::GG1010100 ::GG1010100(){ note_ctor("_ZN3bbb9GG1010100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010100E, buf); |
| ::bbb::GG1010100 *dp, &lv = *(dp=new (buf) ::bbb::GG1010100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010100E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1010100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1010100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1010100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010100E); |
| dp->::bbb::GG1010100::~GG1010100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010100E(Test__ZN3bbb9GG1010100E, "_ZN3bbb9GG1010100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010100C1Ev(); |
| extern void _ZN3bbb9GG1010100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010100E[] = { |
| NSPAIR(_ZN3bbb9GG1010100C1Ev), |
| NSPAIR(_ZN3bbb9GG1010100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1010100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010100E[]; |
| extern void _ZN3bbb9GG10101003fooEv(); |
| extern void _ZN3bbb9GG10101003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101003fooEv,_ZThn16_N3bbb9GG10101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10101003barEv,_ZTv0_n20_N3bbb9GG10101003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101003barEv,_ZThn16_N3bbb9GG10101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101003barEv,_ZTv0_n12_N3bbb9GG10101003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101003barEv,_ZThn28_N3bbb9GG10101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101003fooEv,_ZThn28_N3bbb9GG10101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101003barEv,_ZTv0_n12_N3bbb9GG10101003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101003barEv,_ZThn36_N3bbb9GG10101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101003fooEv,_ZThn36_N3bbb9GG10101003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10101003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10101003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10101003barEv,_ZTv0_n20_N3bbb9GG10101003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101003barEv,_ZTv0_n12_N3bbb9GG10101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101003barEv,_ZTv0_n12_N3bbb9GG10101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1010100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1010100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010100E[] = { |
| {&(_ZTVN3bbb9GG1010100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1010100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1010100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010100E[]; |
| static VTBL_ENTRY alt_thunk_names101[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10101003barEv,_ZTv0_n12_N3bbb9GG10101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101003barEv,_ZThn36_N3bbb9GG10101003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101003barEv,_ZThn28_N3bbb9GG10101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10101003barEv,_ZTv0_n20_N3bbb9GG10101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101003barEv,_ZThn16_N3bbb9GG10101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10101003fooEv,_ZTv0_n16_N3bbb9GG10101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101003fooEv,_ZThn36_N3bbb9GG10101003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101003fooEv,_ZThn28_N3bbb9GG10101003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101003fooEv,_ZThn16_N3bbb9GG10101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010100E = { "_ZN3bbb9GG1010100E", // class name |
| bases__ZN3bbb9GG1010100E, 6, |
| &(vtc__ZN3bbb9GG1010100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names101, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010101 : virtual ::bbb::EE101 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10101013barEv |
| virtual void foo(); // _ZN3bbb9GG10101013fooEv |
| ~GG1010101(); // tgen |
| GG1010101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010101 ::bar(){vfunc_called(this, "_ZN3bbb9GG10101013barEv");} |
| void bbb::GG1010101 ::foo(){vfunc_called(this, "_ZN3bbb9GG10101013fooEv");} |
| bbb::GG1010101 ::~GG1010101(){ note_dtor("_ZN3bbb9GG1010101E", this);} // tgen |
| bbb::GG1010101 ::GG1010101(){ note_ctor("_ZN3bbb9GG1010101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010101E, buf); |
| ::bbb::GG1010101 *dp, &lv = *(dp=new (buf) ::bbb::GG1010101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010101E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1010101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1010101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1010101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010101E); |
| dp->::bbb::GG1010101::~GG1010101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010101E(Test__ZN3bbb9GG1010101E, "_ZN3bbb9GG1010101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010101C1Ev(); |
| extern void _ZN3bbb9GG1010101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010101E[] = { |
| NSPAIR(_ZN3bbb9GG1010101C1Ev), |
| NSPAIR(_ZN3bbb9GG1010101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1010101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010101E[]; |
| extern void _ZN3bbb9GG10101013fooEv(); |
| extern void _ZN3bbb9GG10101013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101013fooEv,_ZThn16_N3bbb9GG10101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10101013barEv,_ZTv0_n20_N3bbb9GG10101013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101013barEv,_ZThn16_N3bbb9GG10101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101013barEv,_ZTv0_n12_N3bbb9GG10101013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101013barEv,_ZThn28_N3bbb9GG10101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101013fooEv,_ZThn28_N3bbb9GG10101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101013barEv,_ZTv0_n12_N3bbb9GG10101013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101013barEv,_ZThn36_N3bbb9GG10101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101013fooEv,_ZThn36_N3bbb9GG10101013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10101013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10101013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10101013barEv,_ZTv0_n20_N3bbb9GG10101013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101013barEv,_ZTv0_n12_N3bbb9GG10101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101013barEv,_ZTv0_n12_N3bbb9GG10101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1010101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1010101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010101E[] = { |
| {&(_ZTVN3bbb9GG1010101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1010101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1010101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010101E[]; |
| static VTBL_ENTRY alt_thunk_names102[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10101013barEv,_ZTv0_n12_N3bbb9GG10101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101013barEv,_ZThn36_N3bbb9GG10101013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101013barEv,_ZThn28_N3bbb9GG10101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10101013barEv,_ZTv0_n20_N3bbb9GG10101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101013barEv,_ZThn16_N3bbb9GG10101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10101013fooEv,_ZTv0_n16_N3bbb9GG10101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101013fooEv,_ZThn36_N3bbb9GG10101013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101013fooEv,_ZThn28_N3bbb9GG10101013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101013fooEv,_ZThn16_N3bbb9GG10101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010101E = { "_ZN3bbb9GG1010101E", // class name |
| bases__ZN3bbb9GG1010101E, 6, |
| &(vtc__ZN3bbb9GG1010101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names102, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010110 : virtual ::bbb::EE101 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10101103fooEv |
| virtual void bar(); // _ZN3bbb9GG10101103barEv |
| ~GG1010110(); // tgen |
| GG1010110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010110 ::foo(){vfunc_called(this, "_ZN3bbb9GG10101103fooEv");} |
| void bbb::GG1010110 ::bar(){vfunc_called(this, "_ZN3bbb9GG10101103barEv");} |
| bbb::GG1010110 ::~GG1010110(){ note_dtor("_ZN3bbb9GG1010110E", this);} // tgen |
| bbb::GG1010110 ::GG1010110(){ note_ctor("_ZN3bbb9GG1010110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010110E, buf); |
| ::bbb::GG1010110 *dp, &lv = *(dp=new (buf) ::bbb::GG1010110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010110E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1010110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1010110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1010110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010110E); |
| dp->::bbb::GG1010110::~GG1010110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010110E(Test__ZN3bbb9GG1010110E, "_ZN3bbb9GG1010110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010110C1Ev(); |
| extern void _ZN3bbb9GG1010110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010110E[] = { |
| NSPAIR(_ZN3bbb9GG1010110C1Ev), |
| NSPAIR(_ZN3bbb9GG1010110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1010110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010110E[]; |
| extern void _ZN3bbb9GG10101103fooEv(); |
| extern void _ZN3bbb9GG10101103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101103fooEv,_ZThn16_N3bbb9GG10101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10101103barEv,_ZTv0_n20_N3bbb9GG10101103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101103barEv,_ZThn16_N3bbb9GG10101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101103barEv,_ZTv0_n12_N3bbb9GG10101103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101103barEv,_ZThn28_N3bbb9GG10101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101103fooEv,_ZThn28_N3bbb9GG10101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101103barEv,_ZTv0_n12_N3bbb9GG10101103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101103barEv,_ZThn36_N3bbb9GG10101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101103fooEv,_ZThn36_N3bbb9GG10101103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10101103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10101103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10101103barEv,_ZTv0_n20_N3bbb9GG10101103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101103barEv,_ZTv0_n12_N3bbb9GG10101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101103barEv,_ZTv0_n12_N3bbb9GG10101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1010110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1010110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010110E[] = { |
| {&(_ZTVN3bbb9GG1010110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1010110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1010110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010110E[]; |
| static VTBL_ENTRY alt_thunk_names103[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10101103barEv,_ZTv0_n12_N3bbb9GG10101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101103barEv,_ZThn36_N3bbb9GG10101103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101103barEv,_ZThn28_N3bbb9GG10101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10101103barEv,_ZTv0_n20_N3bbb9GG10101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101103barEv,_ZThn16_N3bbb9GG10101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10101103fooEv,_ZTv0_n16_N3bbb9GG10101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101103fooEv,_ZThn36_N3bbb9GG10101103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101103fooEv,_ZThn28_N3bbb9GG10101103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101103fooEv,_ZThn16_N3bbb9GG10101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010110E = { "_ZN3bbb9GG1010110E", // class name |
| bases__ZN3bbb9GG1010110E, 6, |
| &(vtc__ZN3bbb9GG1010110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names103, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1010111 : virtual ::bbb::EE101 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10101113barEv |
| virtual void foo(); // _ZN3bbb9GG10101113fooEv |
| ~GG1010111(); // tgen |
| GG1010111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1010111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1010111 ::bar(){vfunc_called(this, "_ZN3bbb9GG10101113barEv");} |
| void bbb::GG1010111 ::foo(){vfunc_called(this, "_ZN3bbb9GG10101113fooEv");} |
| bbb::GG1010111 ::~GG1010111(){ note_dtor("_ZN3bbb9GG1010111E", this);} // tgen |
| bbb::GG1010111 ::GG1010111(){ note_ctor("_ZN3bbb9GG1010111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1010111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1010111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1010111E, buf); |
| ::bbb::GG1010111 *dp, &lv = *(dp=new (buf) ::bbb::GG1010111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1010111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1010111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1010111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010111E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1010111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1010111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1010111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1010111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1010111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1010111E); |
| dp->::bbb::GG1010111::~GG1010111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1010111E(Test__ZN3bbb9GG1010111E, "_ZN3bbb9GG1010111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1010111C1Ev(); |
| extern void _ZN3bbb9GG1010111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1010111E[] = { |
| NSPAIR(_ZN3bbb9GG1010111C1Ev), |
| NSPAIR(_ZN3bbb9GG1010111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1010111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010111E[]; |
| extern void _ZN3bbb9GG10101113fooEv(); |
| extern void _ZN3bbb9GG10101113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101113fooEv,_ZThn16_N3bbb9GG10101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10101113barEv,_ZTv0_n20_N3bbb9GG10101113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10101113barEv,_ZThn16_N3bbb9GG10101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101113barEv,_ZTv0_n12_N3bbb9GG10101113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101113barEv,_ZThn28_N3bbb9GG10101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10101113fooEv,_ZThn28_N3bbb9GG10101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10101113barEv,_ZTv0_n12_N3bbb9GG10101113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101113barEv,_ZThn36_N3bbb9GG10101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10101113fooEv,_ZThn36_N3bbb9GG10101113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1010111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10101113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10101113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10101113barEv,_ZTv0_n20_N3bbb9GG10101113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101113barEv,_ZTv0_n12_N3bbb9GG10101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1010111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10101113barEv,_ZTv0_n12_N3bbb9GG10101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1010111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1010111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1010111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1010111E[] = { |
| {&(_ZTVN3bbb9GG1010111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1010111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1010111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1010111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1010111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1010111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1010111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1010111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1010111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1010111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1010111E[]; |
| static VTBL_ENTRY alt_thunk_names104[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10101113barEv,_ZTv0_n12_N3bbb9GG10101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101113barEv,_ZThn36_N3bbb9GG10101113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101113barEv,_ZThn28_N3bbb9GG10101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10101113barEv,_ZTv0_n20_N3bbb9GG10101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101113barEv,_ZThn16_N3bbb9GG10101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10101113fooEv,_ZTv0_n16_N3bbb9GG10101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10101113fooEv,_ZThn36_N3bbb9GG10101113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10101113fooEv,_ZThn28_N3bbb9GG10101113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10101113fooEv,_ZThn16_N3bbb9GG10101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1010111E = { "_ZN3bbb9GG1010111E", // class name |
| bases__ZN3bbb9GG1010111E, 6, |
| &(vtc__ZN3bbb9GG1010111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1010111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1010111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1010111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1010111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names104, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011000 : virtual ::bbb::EE101 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10110003fooEv |
| virtual void bar(); // _ZN3bbb9GG10110003barEv |
| ~GG1011000(); // tgen |
| GG1011000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011000 ::foo(){vfunc_called(this, "_ZN3bbb9GG10110003fooEv");} |
| void bbb::GG1011000 ::bar(){vfunc_called(this, "_ZN3bbb9GG10110003barEv");} |
| bbb::GG1011000 ::~GG1011000(){ note_dtor("_ZN3bbb9GG1011000E", this);} // tgen |
| bbb::GG1011000 ::GG1011000(){ note_ctor("_ZN3bbb9GG1011000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011000E, buf); |
| ::bbb::GG1011000 *dp, &lv = *(dp=new (buf) ::bbb::GG1011000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011000E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1011000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1011000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1011000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011000E); |
| dp->::bbb::GG1011000::~GG1011000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011000E(Test__ZN3bbb9GG1011000E, "_ZN3bbb9GG1011000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011000C1Ev(); |
| extern void _ZN3bbb9GG1011000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011000E[] = { |
| NSPAIR(_ZN3bbb9GG1011000C1Ev), |
| NSPAIR(_ZN3bbb9GG1011000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1011000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011000E[]; |
| extern void _ZN3bbb9GG10110003barEv(); |
| extern void _ZN3bbb9GG10110003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110003fooEv,_ZTv0_n16_N3bbb9GG10110003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110003fooEv,_ZThn16_N3bbb9GG10110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10110003barEv,_ZTv0_n20_N3bbb9GG10110003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110003barEv,_ZThn16_N3bbb9GG10110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110003barEv,_ZTv0_n12_N3bbb9GG10110003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110003barEv,_ZThn28_N3bbb9GG10110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110003fooEv,_ZTv0_n16_N3bbb9GG10110003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110003fooEv,_ZThn28_N3bbb9GG10110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110003fooEv,_ZTv0_n12_N3bbb9GG10110003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110003fooEv,_ZThn36_N3bbb9GG10110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110003barEv,_ZTv0_n16_N3bbb9GG10110003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110003barEv,_ZThn36_N3bbb9GG10110003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10110003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10110003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110003fooEv,_ZTv0_n16_N3bbb9GG10110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10110003barEv,_ZTv0_n20_N3bbb9GG10110003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110003barEv,_ZTv0_n12_N3bbb9GG10110003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110003fooEv,_ZTv0_n16_N3bbb9GG10110003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110003fooEv,_ZTv0_n12_N3bbb9GG10110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110003barEv,_ZTv0_n16_N3bbb9GG10110003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1011000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1011000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011000E[] = { |
| {&(_ZTVN3bbb9GG1011000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1011000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1011000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011000E[]; |
| static VTBL_ENTRY alt_thunk_names105[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110003barEv,_ZTv0_n16_N3bbb9GG10110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110003barEv,_ZThn36_N3bbb9GG10110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110003fooEv,_ZTv0_n12_N3bbb9GG10110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110003fooEv,_ZThn36_N3bbb9GG10110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110003barEv,_ZTv0_n12_N3bbb9GG10110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110003barEv,_ZThn28_N3bbb9GG10110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10110003barEv,_ZTv0_n20_N3bbb9GG10110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110003barEv,_ZThn16_N3bbb9GG10110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110003fooEv,_ZTv0_n16_N3bbb9GG10110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110003fooEv,_ZThn28_N3bbb9GG10110003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110003fooEv,_ZThn16_N3bbb9GG10110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011000E = { "_ZN3bbb9GG1011000E", // class name |
| bases__ZN3bbb9GG1011000E, 6, |
| &(vtc__ZN3bbb9GG1011000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names105, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011001 : virtual ::bbb::EE101 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10110013barEv |
| virtual void foo(); // _ZN3bbb9GG10110013fooEv |
| ~GG1011001(); // tgen |
| GG1011001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011001 ::bar(){vfunc_called(this, "_ZN3bbb9GG10110013barEv");} |
| void bbb::GG1011001 ::foo(){vfunc_called(this, "_ZN3bbb9GG10110013fooEv");} |
| bbb::GG1011001 ::~GG1011001(){ note_dtor("_ZN3bbb9GG1011001E", this);} // tgen |
| bbb::GG1011001 ::GG1011001(){ note_ctor("_ZN3bbb9GG1011001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011001E, buf); |
| ::bbb::GG1011001 *dp, &lv = *(dp=new (buf) ::bbb::GG1011001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011001E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1011001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1011001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1011001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011001E); |
| dp->::bbb::GG1011001::~GG1011001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011001E(Test__ZN3bbb9GG1011001E, "_ZN3bbb9GG1011001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011001C1Ev(); |
| extern void _ZN3bbb9GG1011001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011001E[] = { |
| NSPAIR(_ZN3bbb9GG1011001C1Ev), |
| NSPAIR(_ZN3bbb9GG1011001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1011001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011001E[]; |
| extern void _ZN3bbb9GG10110013barEv(); |
| extern void _ZN3bbb9GG10110013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110013fooEv,_ZTv0_n16_N3bbb9GG10110013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110013fooEv,_ZThn16_N3bbb9GG10110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10110013barEv,_ZTv0_n20_N3bbb9GG10110013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110013barEv,_ZThn16_N3bbb9GG10110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110013barEv,_ZTv0_n12_N3bbb9GG10110013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110013barEv,_ZThn28_N3bbb9GG10110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110013fooEv,_ZTv0_n16_N3bbb9GG10110013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110013fooEv,_ZThn28_N3bbb9GG10110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110013fooEv,_ZTv0_n12_N3bbb9GG10110013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110013fooEv,_ZThn36_N3bbb9GG10110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110013barEv,_ZTv0_n16_N3bbb9GG10110013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110013barEv,_ZThn36_N3bbb9GG10110013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10110013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10110013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110013fooEv,_ZTv0_n16_N3bbb9GG10110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10110013barEv,_ZTv0_n20_N3bbb9GG10110013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110013barEv,_ZTv0_n12_N3bbb9GG10110013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110013fooEv,_ZTv0_n16_N3bbb9GG10110013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110013fooEv,_ZTv0_n12_N3bbb9GG10110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110013barEv,_ZTv0_n16_N3bbb9GG10110013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1011001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1011001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011001E[] = { |
| {&(_ZTVN3bbb9GG1011001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1011001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1011001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011001E[]; |
| static VTBL_ENTRY alt_thunk_names106[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110013barEv,_ZTv0_n16_N3bbb9GG10110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110013barEv,_ZThn36_N3bbb9GG10110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110013fooEv,_ZTv0_n12_N3bbb9GG10110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110013fooEv,_ZThn36_N3bbb9GG10110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110013barEv,_ZTv0_n12_N3bbb9GG10110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110013barEv,_ZThn28_N3bbb9GG10110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10110013barEv,_ZTv0_n20_N3bbb9GG10110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110013barEv,_ZThn16_N3bbb9GG10110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110013fooEv,_ZTv0_n16_N3bbb9GG10110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110013fooEv,_ZThn28_N3bbb9GG10110013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110013fooEv,_ZThn16_N3bbb9GG10110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011001E = { "_ZN3bbb9GG1011001E", // class name |
| bases__ZN3bbb9GG1011001E, 6, |
| &(vtc__ZN3bbb9GG1011001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names106, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011010 : virtual ::bbb::EE101 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10110103fooEv |
| virtual void bar(); // _ZN3bbb9GG10110103barEv |
| ~GG1011010(); // tgen |
| GG1011010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011010 ::foo(){vfunc_called(this, "_ZN3bbb9GG10110103fooEv");} |
| void bbb::GG1011010 ::bar(){vfunc_called(this, "_ZN3bbb9GG10110103barEv");} |
| bbb::GG1011010 ::~GG1011010(){ note_dtor("_ZN3bbb9GG1011010E", this);} // tgen |
| bbb::GG1011010 ::GG1011010(){ note_ctor("_ZN3bbb9GG1011010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011010E, buf); |
| ::bbb::GG1011010 *dp, &lv = *(dp=new (buf) ::bbb::GG1011010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011010E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1011010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1011010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1011010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011010E); |
| dp->::bbb::GG1011010::~GG1011010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011010E(Test__ZN3bbb9GG1011010E, "_ZN3bbb9GG1011010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011010C1Ev(); |
| extern void _ZN3bbb9GG1011010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011010E[] = { |
| NSPAIR(_ZN3bbb9GG1011010C1Ev), |
| NSPAIR(_ZN3bbb9GG1011010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1011010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011010E[]; |
| extern void _ZN3bbb9GG10110103barEv(); |
| extern void _ZN3bbb9GG10110103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110103fooEv,_ZTv0_n16_N3bbb9GG10110103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110103fooEv,_ZThn16_N3bbb9GG10110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10110103barEv,_ZTv0_n20_N3bbb9GG10110103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110103barEv,_ZThn16_N3bbb9GG10110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110103barEv,_ZTv0_n12_N3bbb9GG10110103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110103barEv,_ZThn28_N3bbb9GG10110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110103fooEv,_ZTv0_n16_N3bbb9GG10110103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110103fooEv,_ZThn28_N3bbb9GG10110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110103fooEv,_ZTv0_n12_N3bbb9GG10110103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110103fooEv,_ZThn36_N3bbb9GG10110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110103barEv,_ZTv0_n16_N3bbb9GG10110103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110103barEv,_ZThn36_N3bbb9GG10110103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10110103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10110103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110103fooEv,_ZTv0_n16_N3bbb9GG10110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10110103barEv,_ZTv0_n20_N3bbb9GG10110103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110103barEv,_ZTv0_n12_N3bbb9GG10110103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110103fooEv,_ZTv0_n16_N3bbb9GG10110103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110103fooEv,_ZTv0_n12_N3bbb9GG10110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110103barEv,_ZTv0_n16_N3bbb9GG10110103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1011010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1011010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011010E[] = { |
| {&(_ZTVN3bbb9GG1011010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1011010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1011010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011010E[]; |
| static VTBL_ENTRY alt_thunk_names107[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110103barEv,_ZTv0_n16_N3bbb9GG10110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110103barEv,_ZThn36_N3bbb9GG10110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110103fooEv,_ZTv0_n12_N3bbb9GG10110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110103fooEv,_ZThn36_N3bbb9GG10110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110103barEv,_ZTv0_n12_N3bbb9GG10110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110103barEv,_ZThn28_N3bbb9GG10110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10110103barEv,_ZTv0_n20_N3bbb9GG10110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110103barEv,_ZThn16_N3bbb9GG10110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110103fooEv,_ZTv0_n16_N3bbb9GG10110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110103fooEv,_ZThn28_N3bbb9GG10110103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110103fooEv,_ZThn16_N3bbb9GG10110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011010E = { "_ZN3bbb9GG1011010E", // class name |
| bases__ZN3bbb9GG1011010E, 6, |
| &(vtc__ZN3bbb9GG1011010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names107, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011011 : virtual ::bbb::EE101 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10110113barEv |
| virtual void foo(); // _ZN3bbb9GG10110113fooEv |
| ~GG1011011(); // tgen |
| GG1011011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011011 ::bar(){vfunc_called(this, "_ZN3bbb9GG10110113barEv");} |
| void bbb::GG1011011 ::foo(){vfunc_called(this, "_ZN3bbb9GG10110113fooEv");} |
| bbb::GG1011011 ::~GG1011011(){ note_dtor("_ZN3bbb9GG1011011E", this);} // tgen |
| bbb::GG1011011 ::GG1011011(){ note_ctor("_ZN3bbb9GG1011011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011011E, buf); |
| ::bbb::GG1011011 *dp, &lv = *(dp=new (buf) ::bbb::GG1011011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011011E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1011011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1011011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1011011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011011E); |
| dp->::bbb::GG1011011::~GG1011011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011011E(Test__ZN3bbb9GG1011011E, "_ZN3bbb9GG1011011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011011C1Ev(); |
| extern void _ZN3bbb9GG1011011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011011E[] = { |
| NSPAIR(_ZN3bbb9GG1011011C1Ev), |
| NSPAIR(_ZN3bbb9GG1011011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1011011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011011E[]; |
| extern void _ZN3bbb9GG10110113barEv(); |
| extern void _ZN3bbb9GG10110113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110113fooEv,_ZTv0_n16_N3bbb9GG10110113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110113fooEv,_ZThn16_N3bbb9GG10110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10110113barEv,_ZTv0_n20_N3bbb9GG10110113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10110113barEv,_ZThn16_N3bbb9GG10110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110113barEv,_ZTv0_n12_N3bbb9GG10110113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110113barEv,_ZThn28_N3bbb9GG10110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110113fooEv,_ZTv0_n16_N3bbb9GG10110113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10110113fooEv,_ZThn28_N3bbb9GG10110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10110113fooEv,_ZTv0_n12_N3bbb9GG10110113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110113fooEv,_ZThn36_N3bbb9GG10110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10110113barEv,_ZTv0_n16_N3bbb9GG10110113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10110113barEv,_ZThn36_N3bbb9GG10110113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10110113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10110113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110113fooEv,_ZTv0_n16_N3bbb9GG10110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10110113barEv,_ZTv0_n20_N3bbb9GG10110113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110113barEv,_ZTv0_n12_N3bbb9GG10110113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110113fooEv,_ZTv0_n16_N3bbb9GG10110113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10110113fooEv,_ZTv0_n12_N3bbb9GG10110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10110113barEv,_ZTv0_n16_N3bbb9GG10110113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1011011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1011011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011011E[] = { |
| {&(_ZTVN3bbb9GG1011011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1011011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1011011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011011E[]; |
| static VTBL_ENTRY alt_thunk_names108[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110113barEv,_ZTv0_n16_N3bbb9GG10110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110113barEv,_ZThn36_N3bbb9GG10110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110113fooEv,_ZTv0_n12_N3bbb9GG10110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10110113fooEv,_ZThn36_N3bbb9GG10110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10110113barEv,_ZTv0_n12_N3bbb9GG10110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110113barEv,_ZThn28_N3bbb9GG10110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10110113barEv,_ZTv0_n20_N3bbb9GG10110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110113barEv,_ZThn16_N3bbb9GG10110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10110113fooEv,_ZTv0_n16_N3bbb9GG10110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10110113fooEv,_ZThn28_N3bbb9GG10110113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10110113fooEv,_ZThn16_N3bbb9GG10110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011011E = { "_ZN3bbb9GG1011011E", // class name |
| bases__ZN3bbb9GG1011011E, 6, |
| &(vtc__ZN3bbb9GG1011011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names108, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011100 : virtual ::bbb::EE101 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10111003fooEv |
| virtual void bar(); // _ZN3bbb9GG10111003barEv |
| ~GG1011100(); // tgen |
| GG1011100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011100 ::foo(){vfunc_called(this, "_ZN3bbb9GG10111003fooEv");} |
| void bbb::GG1011100 ::bar(){vfunc_called(this, "_ZN3bbb9GG10111003barEv");} |
| bbb::GG1011100 ::~GG1011100(){ note_dtor("_ZN3bbb9GG1011100E", this);} // tgen |
| bbb::GG1011100 ::GG1011100(){ note_ctor("_ZN3bbb9GG1011100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011100E, buf); |
| ::bbb::GG1011100 *dp, &lv = *(dp=new (buf) ::bbb::GG1011100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011100E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011100E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1011100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1011100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1011100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011100E); |
| dp->::bbb::GG1011100::~GG1011100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011100E(Test__ZN3bbb9GG1011100E, "_ZN3bbb9GG1011100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011100C1Ev(); |
| extern void _ZN3bbb9GG1011100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011100E[] = { |
| NSPAIR(_ZN3bbb9GG1011100C1Ev), |
| NSPAIR(_ZN3bbb9GG1011100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1011100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011100E[]; |
| extern void _ZN3bbb9GG10111003barEv(); |
| extern void _ZN3bbb9GG10111003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111003fooEv,_ZThn16_N3bbb9GG10111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10111003barEv,_ZTv0_n20_N3bbb9GG10111003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111003barEv,_ZThn16_N3bbb9GG10111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111003barEv,_ZTv0_n12_N3bbb9GG10111003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111003barEv,_ZThn28_N3bbb9GG10111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111003fooEv,_ZThn28_N3bbb9GG10111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111003barEv,_ZTv0_n12_N3bbb9GG10111003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111003barEv,_ZThn36_N3bbb9GG10111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111003fooEv,_ZThn36_N3bbb9GG10111003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10111003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10111003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10111003barEv,_ZTv0_n20_N3bbb9GG10111003barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111003barEv,_ZTv0_n12_N3bbb9GG10111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111003barEv,_ZTv0_n12_N3bbb9GG10111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1011100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1011100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011100E[] = { |
| {&(_ZTVN3bbb9GG1011100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1011100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1011100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011100E[]; |
| static VTBL_ENTRY alt_thunk_names109[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10111003barEv,_ZTv0_n12_N3bbb9GG10111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111003barEv,_ZThn36_N3bbb9GG10111003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111003barEv,_ZThn28_N3bbb9GG10111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10111003barEv,_ZTv0_n20_N3bbb9GG10111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111003barEv,_ZThn16_N3bbb9GG10111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10111003fooEv,_ZTv0_n16_N3bbb9GG10111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111003fooEv,_ZThn36_N3bbb9GG10111003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111003fooEv,_ZThn28_N3bbb9GG10111003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111003fooEv,_ZThn16_N3bbb9GG10111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011100E = { "_ZN3bbb9GG1011100E", // class name |
| bases__ZN3bbb9GG1011100E, 6, |
| &(vtc__ZN3bbb9GG1011100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names109, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011101 : virtual ::bbb::EE101 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10111013barEv |
| virtual void foo(); // _ZN3bbb9GG10111013fooEv |
| ~GG1011101(); // tgen |
| GG1011101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011101 ::bar(){vfunc_called(this, "_ZN3bbb9GG10111013barEv");} |
| void bbb::GG1011101 ::foo(){vfunc_called(this, "_ZN3bbb9GG10111013fooEv");} |
| bbb::GG1011101 ::~GG1011101(){ note_dtor("_ZN3bbb9GG1011101E", this);} // tgen |
| bbb::GG1011101 ::GG1011101(){ note_ctor("_ZN3bbb9GG1011101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011101E, buf); |
| ::bbb::GG1011101 *dp, &lv = *(dp=new (buf) ::bbb::GG1011101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011101E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011101E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1011101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1011101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1011101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011101E); |
| dp->::bbb::GG1011101::~GG1011101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011101E(Test__ZN3bbb9GG1011101E, "_ZN3bbb9GG1011101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011101C1Ev(); |
| extern void _ZN3bbb9GG1011101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011101E[] = { |
| NSPAIR(_ZN3bbb9GG1011101C1Ev), |
| NSPAIR(_ZN3bbb9GG1011101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1011101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011101E[]; |
| extern void _ZN3bbb9GG10111013barEv(); |
| extern void _ZN3bbb9GG10111013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111013fooEv,_ZThn16_N3bbb9GG10111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10111013barEv,_ZTv0_n20_N3bbb9GG10111013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111013barEv,_ZThn16_N3bbb9GG10111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111013barEv,_ZTv0_n12_N3bbb9GG10111013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111013barEv,_ZThn28_N3bbb9GG10111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111013fooEv,_ZThn28_N3bbb9GG10111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111013barEv,_ZTv0_n12_N3bbb9GG10111013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111013barEv,_ZThn36_N3bbb9GG10111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111013fooEv,_ZThn36_N3bbb9GG10111013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10111013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10111013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10111013barEv,_ZTv0_n20_N3bbb9GG10111013barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111013barEv,_ZTv0_n12_N3bbb9GG10111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111013barEv,_ZTv0_n12_N3bbb9GG10111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1011101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1011101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011101E[] = { |
| {&(_ZTVN3bbb9GG1011101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1011101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1011101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011101E[]; |
| static VTBL_ENTRY alt_thunk_names110[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10111013barEv,_ZTv0_n12_N3bbb9GG10111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111013barEv,_ZThn36_N3bbb9GG10111013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111013barEv,_ZThn28_N3bbb9GG10111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10111013barEv,_ZTv0_n20_N3bbb9GG10111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111013barEv,_ZThn16_N3bbb9GG10111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10111013fooEv,_ZTv0_n16_N3bbb9GG10111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111013fooEv,_ZThn36_N3bbb9GG10111013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111013fooEv,_ZThn28_N3bbb9GG10111013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111013fooEv,_ZThn16_N3bbb9GG10111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011101E = { "_ZN3bbb9GG1011101E", // class name |
| bases__ZN3bbb9GG1011101E, 6, |
| &(vtc__ZN3bbb9GG1011101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names110, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011110 : virtual ::bbb::EE101 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG10111103fooEv |
| virtual void bar(); // _ZN3bbb9GG10111103barEv |
| ~GG1011110(); // tgen |
| GG1011110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011110 ::foo(){vfunc_called(this, "_ZN3bbb9GG10111103fooEv");} |
| void bbb::GG1011110 ::bar(){vfunc_called(this, "_ZN3bbb9GG10111103barEv");} |
| bbb::GG1011110 ::~GG1011110(){ note_dtor("_ZN3bbb9GG1011110E", this);} // tgen |
| bbb::GG1011110 ::GG1011110(){ note_ctor("_ZN3bbb9GG1011110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011110E, buf); |
| ::bbb::GG1011110 *dp, &lv = *(dp=new (buf) ::bbb::GG1011110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011110E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011110E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1011110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1011110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1011110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011110E); |
| dp->::bbb::GG1011110::~GG1011110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011110E(Test__ZN3bbb9GG1011110E, "_ZN3bbb9GG1011110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011110C1Ev(); |
| extern void _ZN3bbb9GG1011110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011110E[] = { |
| NSPAIR(_ZN3bbb9GG1011110C1Ev), |
| NSPAIR(_ZN3bbb9GG1011110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1011110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011110E[]; |
| extern void _ZN3bbb9GG10111103barEv(); |
| extern void _ZN3bbb9GG10111103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111103fooEv,_ZThn16_N3bbb9GG10111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10111103barEv,_ZTv0_n20_N3bbb9GG10111103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111103barEv,_ZThn16_N3bbb9GG10111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111103barEv,_ZTv0_n12_N3bbb9GG10111103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111103barEv,_ZThn28_N3bbb9GG10111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111103fooEv,_ZThn28_N3bbb9GG10111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111103barEv,_ZTv0_n12_N3bbb9GG10111103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111103barEv,_ZThn36_N3bbb9GG10111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111103fooEv,_ZThn36_N3bbb9GG10111103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10111103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10111103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10111103barEv,_ZTv0_n20_N3bbb9GG10111103barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111103barEv,_ZTv0_n12_N3bbb9GG10111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111103barEv,_ZTv0_n12_N3bbb9GG10111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1011110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1011110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011110E[] = { |
| {&(_ZTVN3bbb9GG1011110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1011110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1011110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011110E[]; |
| static VTBL_ENTRY alt_thunk_names111[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10111103barEv,_ZTv0_n12_N3bbb9GG10111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111103barEv,_ZThn36_N3bbb9GG10111103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111103barEv,_ZThn28_N3bbb9GG10111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10111103barEv,_ZTv0_n20_N3bbb9GG10111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111103barEv,_ZThn16_N3bbb9GG10111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10111103fooEv,_ZTv0_n16_N3bbb9GG10111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111103fooEv,_ZThn36_N3bbb9GG10111103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111103fooEv,_ZThn28_N3bbb9GG10111103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111103fooEv,_ZThn16_N3bbb9GG10111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011110E = { "_ZN3bbb9GG1011110E", // class name |
| bases__ZN3bbb9GG1011110E, 6, |
| &(vtc__ZN3bbb9GG1011110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names111, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1011111 : virtual ::bbb::EE101 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG10111113barEv |
| virtual void foo(); // _ZN3bbb9GG10111113fooEv |
| ~GG1011111(); // tgen |
| GG1011111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1011111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1011111 ::bar(){vfunc_called(this, "_ZN3bbb9GG10111113barEv");} |
| void bbb::GG1011111 ::foo(){vfunc_called(this, "_ZN3bbb9GG10111113fooEv");} |
| bbb::GG1011111 ::~GG1011111(){ note_dtor("_ZN3bbb9GG1011111E", this);} // tgen |
| bbb::GG1011111 ::GG1011111(){ note_ctor("_ZN3bbb9GG1011111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1011111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1011111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1011111E, buf); |
| ::bbb::GG1011111 *dp, &lv = *(dp=new (buf) ::bbb::GG1011111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1011111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1011111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE101*), ABISELECT(40,28), "_ZN3bbb9GG1011111E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011111E"); |
| check_base_class_offset(lv, (::bbb::EE101*), ABISELECT(24,16), "_ZN3bbb9GG1011111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1011111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1011111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1011111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1011111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1011111E); |
| dp->::bbb::GG1011111::~GG1011111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1011111E(Test__ZN3bbb9GG1011111E, "_ZN3bbb9GG1011111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1011111C1Ev(); |
| extern void _ZN3bbb9GG1011111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1011111E[] = { |
| NSPAIR(_ZN3bbb9GG1011111C1Ev), |
| NSPAIR(_ZN3bbb9GG1011111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE101E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE101E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1011111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE101E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011111E[]; |
| extern void _ZN3bbb9GG10111113barEv(); |
| extern void _ZN3bbb9GG10111113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111113fooEv,_ZThn16_N3bbb9GG10111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG10111113barEv,_ZTv0_n20_N3bbb9GG10111113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG10111113barEv,_ZThn16_N3bbb9GG10111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111113barEv,_ZTv0_n12_N3bbb9GG10111113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111113barEv,_ZThn28_N3bbb9GG10111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG10111113fooEv,_ZThn28_N3bbb9GG10111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG10111113barEv,_ZTv0_n12_N3bbb9GG10111113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111113barEv,_ZThn36_N3bbb9GG10111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG10111113fooEv,_ZThn36_N3bbb9GG10111113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1011111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG10111113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG10111113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG10111113barEv,_ZTv0_n20_N3bbb9GG10111113barEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111113barEv,_ZTv0_n12_N3bbb9GG10111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1011111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG10111113barEv,_ZTv0_n12_N3bbb9GG10111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1011111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1011111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1013fooEv(); |
| extern void _ZN3bbb5EE1013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE101E__NS_9GG1011111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1011111E[] = { |
| {&(_ZTVN3bbb9GG1011111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1011111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1011111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1011111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1011111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1011111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE101E__NS_9GG1011111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE101E__NS_9GG1011111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1011111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1011111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1011111E[]; |
| static VTBL_ENTRY alt_thunk_names112[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1013fooEv,_ZTv0_n16_N3bbb5EE1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013fooEv,_ZThn12_N3bbb5EE1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1013barEv,_ZTv0_n12_N3bbb5EE1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1013barEv,_ZThn12_N3bbb5EE1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG10111113barEv,_ZTv0_n12_N3bbb9GG10111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111113barEv,_ZThn36_N3bbb9GG10111113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111113barEv,_ZThn28_N3bbb9GG10111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG10111113barEv,_ZTv0_n20_N3bbb9GG10111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111113barEv,_ZThn16_N3bbb9GG10111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG10111113fooEv,_ZTv0_n16_N3bbb9GG10111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG10111113fooEv,_ZThn36_N3bbb9GG10111113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG10111113fooEv,_ZThn28_N3bbb9GG10111113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG10111113fooEv,_ZThn16_N3bbb9GG10111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1011111E = { "_ZN3bbb9GG1011111E", // class name |
| bases__ZN3bbb9GG1011111E, 6, |
| &(vtc__ZN3bbb9GG1011111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1011111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1011111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1011111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1011111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names112, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100000 : virtual ::bbb::EE110 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11000003fooEv |
| virtual void bar(); // _ZN3bbb9GG11000003barEv |
| ~GG1100000(); // tgen |
| GG1100000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100000 ::foo(){vfunc_called(this, "_ZN3bbb9GG11000003fooEv");} |
| void bbb::GG1100000 ::bar(){vfunc_called(this, "_ZN3bbb9GG11000003barEv");} |
| bbb::GG1100000 ::~GG1100000(){ note_dtor("_ZN3bbb9GG1100000E", this);} // tgen |
| bbb::GG1100000 ::GG1100000(){ note_ctor("_ZN3bbb9GG1100000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100000E, buf); |
| ::bbb::GG1100000 *dp, &lv = *(dp=new (buf) ::bbb::GG1100000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100000E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1100000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1100000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1100000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100000E); |
| dp->::bbb::GG1100000::~GG1100000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100000E(Test__ZN3bbb9GG1100000E, "_ZN3bbb9GG1100000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100000C1Ev(); |
| extern void _ZN3bbb9GG1100000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100000E[] = { |
| NSPAIR(_ZN3bbb9GG1100000C1Ev), |
| NSPAIR(_ZN3bbb9GG1100000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1100000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100000E[]; |
| extern void _ZN3bbb9GG11000003fooEv(); |
| extern void _ZN3bbb9GG11000003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000003barEv,_ZTv0_n16_N3bbb9GG11000003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000003barEv,_ZThn16_N3bbb9GG11000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11000003fooEv,_ZTv0_n20_N3bbb9GG11000003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000003fooEv,_ZThn16_N3bbb9GG11000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000003barEv,_ZTv0_n12_N3bbb9GG11000003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000003barEv,_ZThn28_N3bbb9GG11000003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000003fooEv,_ZTv0_n16_N3bbb9GG11000003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000003fooEv,_ZThn28_N3bbb9GG11000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000003fooEv,_ZTv0_n12_N3bbb9GG11000003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000003fooEv,_ZThn36_N3bbb9GG11000003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000003barEv,_ZTv0_n16_N3bbb9GG11000003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000003barEv,_ZThn36_N3bbb9GG11000003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11000003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11000003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000003barEv,_ZTv0_n16_N3bbb9GG11000003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11000003fooEv,_ZTv0_n20_N3bbb9GG11000003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000003barEv,_ZTv0_n12_N3bbb9GG11000003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000003fooEv,_ZTv0_n16_N3bbb9GG11000003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000003fooEv,_ZTv0_n12_N3bbb9GG11000003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000003barEv,_ZTv0_n16_N3bbb9GG11000003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1100000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1100000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100000E[] = { |
| {&(_ZTVN3bbb9GG1100000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1100000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1100000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100000E[]; |
| static VTBL_ENTRY alt_thunk_names113[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000003fooEv,_ZTv0_n12_N3bbb9GG11000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000003fooEv,_ZThn36_N3bbb9GG11000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000003fooEv,_ZTv0_n16_N3bbb9GG11000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000003fooEv,_ZThn28_N3bbb9GG11000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000003barEv,_ZTv0_n12_N3bbb9GG11000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000003barEv,_ZThn28_N3bbb9GG11000003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11000003fooEv,_ZTv0_n20_N3bbb9GG11000003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000003fooEv,_ZThn16_N3bbb9GG11000003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000003barEv,_ZTv0_n16_N3bbb9GG11000003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000003barEv,_ZThn36_N3bbb9GG11000003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000003barEv,_ZThn16_N3bbb9GG11000003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100000E = { "_ZN3bbb9GG1100000E", // class name |
| bases__ZN3bbb9GG1100000E, 6, |
| &(vtc__ZN3bbb9GG1100000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names113, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100001 : virtual ::bbb::EE110 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11000013barEv |
| virtual void foo(); // _ZN3bbb9GG11000013fooEv |
| ~GG1100001(); // tgen |
| GG1100001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100001 ::bar(){vfunc_called(this, "_ZN3bbb9GG11000013barEv");} |
| void bbb::GG1100001 ::foo(){vfunc_called(this, "_ZN3bbb9GG11000013fooEv");} |
| bbb::GG1100001 ::~GG1100001(){ note_dtor("_ZN3bbb9GG1100001E", this);} // tgen |
| bbb::GG1100001 ::GG1100001(){ note_ctor("_ZN3bbb9GG1100001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100001E, buf); |
| ::bbb::GG1100001 *dp, &lv = *(dp=new (buf) ::bbb::GG1100001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100001E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1100001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1100001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1100001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100001E); |
| dp->::bbb::GG1100001::~GG1100001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100001E(Test__ZN3bbb9GG1100001E, "_ZN3bbb9GG1100001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100001C1Ev(); |
| extern void _ZN3bbb9GG1100001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100001E[] = { |
| NSPAIR(_ZN3bbb9GG1100001C1Ev), |
| NSPAIR(_ZN3bbb9GG1100001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1100001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100001E[]; |
| extern void _ZN3bbb9GG11000013fooEv(); |
| extern void _ZN3bbb9GG11000013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000013barEv,_ZTv0_n16_N3bbb9GG11000013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000013barEv,_ZThn16_N3bbb9GG11000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11000013fooEv,_ZTv0_n20_N3bbb9GG11000013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000013fooEv,_ZThn16_N3bbb9GG11000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000013barEv,_ZTv0_n12_N3bbb9GG11000013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000013barEv,_ZThn28_N3bbb9GG11000013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000013fooEv,_ZTv0_n16_N3bbb9GG11000013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000013fooEv,_ZThn28_N3bbb9GG11000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000013fooEv,_ZTv0_n12_N3bbb9GG11000013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000013fooEv,_ZThn36_N3bbb9GG11000013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000013barEv,_ZTv0_n16_N3bbb9GG11000013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000013barEv,_ZThn36_N3bbb9GG11000013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11000013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11000013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000013barEv,_ZTv0_n16_N3bbb9GG11000013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11000013fooEv,_ZTv0_n20_N3bbb9GG11000013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000013barEv,_ZTv0_n12_N3bbb9GG11000013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000013fooEv,_ZTv0_n16_N3bbb9GG11000013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000013fooEv,_ZTv0_n12_N3bbb9GG11000013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000013barEv,_ZTv0_n16_N3bbb9GG11000013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1100001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1100001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100001E[] = { |
| {&(_ZTVN3bbb9GG1100001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1100001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1100001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100001E[]; |
| static VTBL_ENTRY alt_thunk_names114[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000013fooEv,_ZTv0_n12_N3bbb9GG11000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000013fooEv,_ZThn36_N3bbb9GG11000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000013fooEv,_ZTv0_n16_N3bbb9GG11000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000013fooEv,_ZThn28_N3bbb9GG11000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000013barEv,_ZTv0_n12_N3bbb9GG11000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000013barEv,_ZThn28_N3bbb9GG11000013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11000013fooEv,_ZTv0_n20_N3bbb9GG11000013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000013fooEv,_ZThn16_N3bbb9GG11000013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000013barEv,_ZTv0_n16_N3bbb9GG11000013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000013barEv,_ZThn36_N3bbb9GG11000013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000013barEv,_ZThn16_N3bbb9GG11000013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100001E = { "_ZN3bbb9GG1100001E", // class name |
| bases__ZN3bbb9GG1100001E, 6, |
| &(vtc__ZN3bbb9GG1100001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names114, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100010 : virtual ::bbb::EE110 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11000103fooEv |
| virtual void bar(); // _ZN3bbb9GG11000103barEv |
| ~GG1100010(); // tgen |
| GG1100010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100010 ::foo(){vfunc_called(this, "_ZN3bbb9GG11000103fooEv");} |
| void bbb::GG1100010 ::bar(){vfunc_called(this, "_ZN3bbb9GG11000103barEv");} |
| bbb::GG1100010 ::~GG1100010(){ note_dtor("_ZN3bbb9GG1100010E", this);} // tgen |
| bbb::GG1100010 ::GG1100010(){ note_ctor("_ZN3bbb9GG1100010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100010E, buf); |
| ::bbb::GG1100010 *dp, &lv = *(dp=new (buf) ::bbb::GG1100010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100010E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1100010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1100010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1100010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100010E); |
| dp->::bbb::GG1100010::~GG1100010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100010E(Test__ZN3bbb9GG1100010E, "_ZN3bbb9GG1100010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100010C1Ev(); |
| extern void _ZN3bbb9GG1100010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100010E[] = { |
| NSPAIR(_ZN3bbb9GG1100010C1Ev), |
| NSPAIR(_ZN3bbb9GG1100010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1100010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100010E[]; |
| extern void _ZN3bbb9GG11000103fooEv(); |
| extern void _ZN3bbb9GG11000103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000103barEv,_ZTv0_n16_N3bbb9GG11000103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000103barEv,_ZThn16_N3bbb9GG11000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11000103fooEv,_ZTv0_n20_N3bbb9GG11000103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000103fooEv,_ZThn16_N3bbb9GG11000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000103barEv,_ZTv0_n12_N3bbb9GG11000103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000103barEv,_ZThn28_N3bbb9GG11000103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000103fooEv,_ZTv0_n16_N3bbb9GG11000103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000103fooEv,_ZThn28_N3bbb9GG11000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000103fooEv,_ZTv0_n12_N3bbb9GG11000103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000103fooEv,_ZThn36_N3bbb9GG11000103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000103barEv,_ZTv0_n16_N3bbb9GG11000103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000103barEv,_ZThn36_N3bbb9GG11000103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11000103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11000103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000103barEv,_ZTv0_n16_N3bbb9GG11000103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11000103fooEv,_ZTv0_n20_N3bbb9GG11000103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000103barEv,_ZTv0_n12_N3bbb9GG11000103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000103fooEv,_ZTv0_n16_N3bbb9GG11000103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000103fooEv,_ZTv0_n12_N3bbb9GG11000103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000103barEv,_ZTv0_n16_N3bbb9GG11000103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1100010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1100010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100010E[] = { |
| {&(_ZTVN3bbb9GG1100010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1100010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1100010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100010E[]; |
| static VTBL_ENTRY alt_thunk_names115[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000103fooEv,_ZTv0_n12_N3bbb9GG11000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000103fooEv,_ZThn36_N3bbb9GG11000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000103fooEv,_ZTv0_n16_N3bbb9GG11000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000103fooEv,_ZThn28_N3bbb9GG11000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000103barEv,_ZTv0_n12_N3bbb9GG11000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000103barEv,_ZThn28_N3bbb9GG11000103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11000103fooEv,_ZTv0_n20_N3bbb9GG11000103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000103fooEv,_ZThn16_N3bbb9GG11000103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000103barEv,_ZTv0_n16_N3bbb9GG11000103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000103barEv,_ZThn36_N3bbb9GG11000103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000103barEv,_ZThn16_N3bbb9GG11000103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100010E = { "_ZN3bbb9GG1100010E", // class name |
| bases__ZN3bbb9GG1100010E, 6, |
| &(vtc__ZN3bbb9GG1100010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names115, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100011 : virtual ::bbb::EE110 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11000113barEv |
| virtual void foo(); // _ZN3bbb9GG11000113fooEv |
| ~GG1100011(); // tgen |
| GG1100011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100011 ::bar(){vfunc_called(this, "_ZN3bbb9GG11000113barEv");} |
| void bbb::GG1100011 ::foo(){vfunc_called(this, "_ZN3bbb9GG11000113fooEv");} |
| bbb::GG1100011 ::~GG1100011(){ note_dtor("_ZN3bbb9GG1100011E", this);} // tgen |
| bbb::GG1100011 ::GG1100011(){ note_ctor("_ZN3bbb9GG1100011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100011E, buf); |
| ::bbb::GG1100011 *dp, &lv = *(dp=new (buf) ::bbb::GG1100011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100011E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1100011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1100011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1100011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100011E); |
| dp->::bbb::GG1100011::~GG1100011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100011E(Test__ZN3bbb9GG1100011E, "_ZN3bbb9GG1100011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100011C1Ev(); |
| extern void _ZN3bbb9GG1100011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100011E[] = { |
| NSPAIR(_ZN3bbb9GG1100011C1Ev), |
| NSPAIR(_ZN3bbb9GG1100011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1100011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100011E[]; |
| extern void _ZN3bbb9GG11000113fooEv(); |
| extern void _ZN3bbb9GG11000113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000113barEv,_ZTv0_n16_N3bbb9GG11000113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000113barEv,_ZThn16_N3bbb9GG11000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11000113fooEv,_ZTv0_n20_N3bbb9GG11000113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11000113fooEv,_ZThn16_N3bbb9GG11000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000113barEv,_ZTv0_n12_N3bbb9GG11000113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000113barEv,_ZThn28_N3bbb9GG11000113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000113fooEv,_ZTv0_n16_N3bbb9GG11000113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11000113fooEv,_ZThn28_N3bbb9GG11000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11000113fooEv,_ZTv0_n12_N3bbb9GG11000113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000113fooEv,_ZThn36_N3bbb9GG11000113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11000113barEv,_ZTv0_n16_N3bbb9GG11000113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11000113barEv,_ZThn36_N3bbb9GG11000113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11000113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11000113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000113barEv,_ZTv0_n16_N3bbb9GG11000113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11000113fooEv,_ZTv0_n20_N3bbb9GG11000113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000113barEv,_ZTv0_n12_N3bbb9GG11000113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000113fooEv,_ZTv0_n16_N3bbb9GG11000113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11000113fooEv,_ZTv0_n12_N3bbb9GG11000113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11000113barEv,_ZTv0_n16_N3bbb9GG11000113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1100011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1100011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100011E[] = { |
| {&(_ZTVN3bbb9GG1100011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1100011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1100011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100011E[]; |
| static VTBL_ENTRY alt_thunk_names116[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000113fooEv,_ZTv0_n12_N3bbb9GG11000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000113fooEv,_ZThn36_N3bbb9GG11000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000113fooEv,_ZTv0_n16_N3bbb9GG11000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000113fooEv,_ZThn28_N3bbb9GG11000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11000113barEv,_ZTv0_n12_N3bbb9GG11000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11000113barEv,_ZThn28_N3bbb9GG11000113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11000113fooEv,_ZTv0_n20_N3bbb9GG11000113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000113fooEv,_ZThn16_N3bbb9GG11000113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11000113barEv,_ZTv0_n16_N3bbb9GG11000113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11000113barEv,_ZThn36_N3bbb9GG11000113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11000113barEv,_ZThn16_N3bbb9GG11000113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100011E = { "_ZN3bbb9GG1100011E", // class name |
| bases__ZN3bbb9GG1100011E, 6, |
| &(vtc__ZN3bbb9GG1100011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names116, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100100 : virtual ::bbb::EE110 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11001003fooEv |
| virtual void bar(); // _ZN3bbb9GG11001003barEv |
| ~GG1100100(); // tgen |
| GG1100100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100100 ::foo(){vfunc_called(this, "_ZN3bbb9GG11001003fooEv");} |
| void bbb::GG1100100 ::bar(){vfunc_called(this, "_ZN3bbb9GG11001003barEv");} |
| bbb::GG1100100 ::~GG1100100(){ note_dtor("_ZN3bbb9GG1100100E", this);} // tgen |
| bbb::GG1100100 ::GG1100100(){ note_ctor("_ZN3bbb9GG1100100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100100E, buf); |
| ::bbb::GG1100100 *dp, &lv = *(dp=new (buf) ::bbb::GG1100100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100100E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1100100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1100100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1100100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100100E); |
| dp->::bbb::GG1100100::~GG1100100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100100E(Test__ZN3bbb9GG1100100E, "_ZN3bbb9GG1100100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100100C1Ev(); |
| extern void _ZN3bbb9GG1100100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100100E[] = { |
| NSPAIR(_ZN3bbb9GG1100100C1Ev), |
| NSPAIR(_ZN3bbb9GG1100100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1100100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100100E[]; |
| extern void _ZN3bbb9GG11001003fooEv(); |
| extern void _ZN3bbb9GG11001003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001003barEv,_ZTv0_n16_N3bbb9GG11001003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001003barEv,_ZThn16_N3bbb9GG11001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11001003fooEv,_ZTv0_n20_N3bbb9GG11001003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001003fooEv,_ZThn16_N3bbb9GG11001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001003barEv,_ZTv0_n12_N3bbb9GG11001003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001003barEv,_ZThn28_N3bbb9GG11001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001003fooEv,_ZTv0_n16_N3bbb9GG11001003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001003fooEv,_ZThn28_N3bbb9GG11001003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001003barEv,_ZTv0_n12_N3bbb9GG11001003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001003barEv,_ZThn36_N3bbb9GG11001003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001003fooEv,_ZTv0_n16_N3bbb9GG11001003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001003fooEv,_ZThn36_N3bbb9GG11001003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11001003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11001003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001003barEv,_ZTv0_n16_N3bbb9GG11001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11001003fooEv,_ZTv0_n20_N3bbb9GG11001003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001003barEv,_ZTv0_n12_N3bbb9GG11001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001003fooEv,_ZTv0_n16_N3bbb9GG11001003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001003barEv,_ZTv0_n12_N3bbb9GG11001003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001003fooEv,_ZTv0_n16_N3bbb9GG11001003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1100100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1100100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100100E[] = { |
| {&(_ZTVN3bbb9GG1100100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1100100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1100100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100100E[]; |
| static VTBL_ENTRY alt_thunk_names117[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001003fooEv,_ZTv0_n16_N3bbb9GG11001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001003fooEv,_ZThn36_N3bbb9GG11001003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001003fooEv,_ZThn28_N3bbb9GG11001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11001003barEv,_ZTv0_n12_N3bbb9GG11001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001003barEv,_ZThn36_N3bbb9GG11001003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001003barEv,_ZThn28_N3bbb9GG11001003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11001003fooEv,_ZTv0_n20_N3bbb9GG11001003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001003fooEv,_ZThn16_N3bbb9GG11001003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001003barEv,_ZTv0_n16_N3bbb9GG11001003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001003barEv,_ZThn16_N3bbb9GG11001003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100100E = { "_ZN3bbb9GG1100100E", // class name |
| bases__ZN3bbb9GG1100100E, 6, |
| &(vtc__ZN3bbb9GG1100100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names117, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100101 : virtual ::bbb::EE110 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11001013barEv |
| virtual void foo(); // _ZN3bbb9GG11001013fooEv |
| ~GG1100101(); // tgen |
| GG1100101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100101 ::bar(){vfunc_called(this, "_ZN3bbb9GG11001013barEv");} |
| void bbb::GG1100101 ::foo(){vfunc_called(this, "_ZN3bbb9GG11001013fooEv");} |
| bbb::GG1100101 ::~GG1100101(){ note_dtor("_ZN3bbb9GG1100101E", this);} // tgen |
| bbb::GG1100101 ::GG1100101(){ note_ctor("_ZN3bbb9GG1100101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100101E, buf); |
| ::bbb::GG1100101 *dp, &lv = *(dp=new (buf) ::bbb::GG1100101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100101E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1100101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1100101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1100101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100101E); |
| dp->::bbb::GG1100101::~GG1100101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100101E(Test__ZN3bbb9GG1100101E, "_ZN3bbb9GG1100101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100101C1Ev(); |
| extern void _ZN3bbb9GG1100101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100101E[] = { |
| NSPAIR(_ZN3bbb9GG1100101C1Ev), |
| NSPAIR(_ZN3bbb9GG1100101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1100101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100101E[]; |
| extern void _ZN3bbb9GG11001013fooEv(); |
| extern void _ZN3bbb9GG11001013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001013barEv,_ZTv0_n16_N3bbb9GG11001013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001013barEv,_ZThn16_N3bbb9GG11001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11001013fooEv,_ZTv0_n20_N3bbb9GG11001013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001013fooEv,_ZThn16_N3bbb9GG11001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001013barEv,_ZTv0_n12_N3bbb9GG11001013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001013barEv,_ZThn28_N3bbb9GG11001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001013fooEv,_ZTv0_n16_N3bbb9GG11001013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001013fooEv,_ZThn28_N3bbb9GG11001013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001013barEv,_ZTv0_n12_N3bbb9GG11001013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001013barEv,_ZThn36_N3bbb9GG11001013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001013fooEv,_ZTv0_n16_N3bbb9GG11001013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001013fooEv,_ZThn36_N3bbb9GG11001013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11001013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11001013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001013barEv,_ZTv0_n16_N3bbb9GG11001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11001013fooEv,_ZTv0_n20_N3bbb9GG11001013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001013barEv,_ZTv0_n12_N3bbb9GG11001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001013fooEv,_ZTv0_n16_N3bbb9GG11001013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001013barEv,_ZTv0_n12_N3bbb9GG11001013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001013fooEv,_ZTv0_n16_N3bbb9GG11001013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1100101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1100101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100101E[] = { |
| {&(_ZTVN3bbb9GG1100101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1100101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1100101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100101E[]; |
| static VTBL_ENTRY alt_thunk_names118[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001013fooEv,_ZTv0_n16_N3bbb9GG11001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001013fooEv,_ZThn36_N3bbb9GG11001013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001013fooEv,_ZThn28_N3bbb9GG11001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11001013barEv,_ZTv0_n12_N3bbb9GG11001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001013barEv,_ZThn36_N3bbb9GG11001013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001013barEv,_ZThn28_N3bbb9GG11001013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11001013fooEv,_ZTv0_n20_N3bbb9GG11001013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001013fooEv,_ZThn16_N3bbb9GG11001013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001013barEv,_ZTv0_n16_N3bbb9GG11001013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001013barEv,_ZThn16_N3bbb9GG11001013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100101E = { "_ZN3bbb9GG1100101E", // class name |
| bases__ZN3bbb9GG1100101E, 6, |
| &(vtc__ZN3bbb9GG1100101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names118, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100110 : virtual ::bbb::EE110 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11001103fooEv |
| virtual void bar(); // _ZN3bbb9GG11001103barEv |
| ~GG1100110(); // tgen |
| GG1100110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100110 ::foo(){vfunc_called(this, "_ZN3bbb9GG11001103fooEv");} |
| void bbb::GG1100110 ::bar(){vfunc_called(this, "_ZN3bbb9GG11001103barEv");} |
| bbb::GG1100110 ::~GG1100110(){ note_dtor("_ZN3bbb9GG1100110E", this);} // tgen |
| bbb::GG1100110 ::GG1100110(){ note_ctor("_ZN3bbb9GG1100110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100110E, buf); |
| ::bbb::GG1100110 *dp, &lv = *(dp=new (buf) ::bbb::GG1100110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100110E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1100110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1100110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1100110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100110E); |
| dp->::bbb::GG1100110::~GG1100110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100110E(Test__ZN3bbb9GG1100110E, "_ZN3bbb9GG1100110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100110C1Ev(); |
| extern void _ZN3bbb9GG1100110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100110E[] = { |
| NSPAIR(_ZN3bbb9GG1100110C1Ev), |
| NSPAIR(_ZN3bbb9GG1100110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1100110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100110E[]; |
| extern void _ZN3bbb9GG11001103fooEv(); |
| extern void _ZN3bbb9GG11001103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001103barEv,_ZTv0_n16_N3bbb9GG11001103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001103barEv,_ZThn16_N3bbb9GG11001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11001103fooEv,_ZTv0_n20_N3bbb9GG11001103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001103fooEv,_ZThn16_N3bbb9GG11001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001103barEv,_ZTv0_n12_N3bbb9GG11001103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001103barEv,_ZThn28_N3bbb9GG11001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001103fooEv,_ZTv0_n16_N3bbb9GG11001103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001103fooEv,_ZThn28_N3bbb9GG11001103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001103barEv,_ZTv0_n12_N3bbb9GG11001103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001103barEv,_ZThn36_N3bbb9GG11001103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001103fooEv,_ZTv0_n16_N3bbb9GG11001103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001103fooEv,_ZThn36_N3bbb9GG11001103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11001103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11001103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001103barEv,_ZTv0_n16_N3bbb9GG11001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11001103fooEv,_ZTv0_n20_N3bbb9GG11001103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001103barEv,_ZTv0_n12_N3bbb9GG11001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001103fooEv,_ZTv0_n16_N3bbb9GG11001103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001103barEv,_ZTv0_n12_N3bbb9GG11001103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001103fooEv,_ZTv0_n16_N3bbb9GG11001103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1100110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1100110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100110E[] = { |
| {&(_ZTVN3bbb9GG1100110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1100110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1100110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100110E[]; |
| static VTBL_ENTRY alt_thunk_names119[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001103fooEv,_ZTv0_n16_N3bbb9GG11001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001103fooEv,_ZThn36_N3bbb9GG11001103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001103fooEv,_ZThn28_N3bbb9GG11001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11001103barEv,_ZTv0_n12_N3bbb9GG11001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001103barEv,_ZThn36_N3bbb9GG11001103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001103barEv,_ZThn28_N3bbb9GG11001103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11001103fooEv,_ZTv0_n20_N3bbb9GG11001103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001103fooEv,_ZThn16_N3bbb9GG11001103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001103barEv,_ZTv0_n16_N3bbb9GG11001103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001103barEv,_ZThn16_N3bbb9GG11001103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100110E = { "_ZN3bbb9GG1100110E", // class name |
| bases__ZN3bbb9GG1100110E, 6, |
| &(vtc__ZN3bbb9GG1100110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names119, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1100111 : virtual ::bbb::EE110 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11001113barEv |
| virtual void foo(); // _ZN3bbb9GG11001113fooEv |
| ~GG1100111(); // tgen |
| GG1100111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1100111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1100111 ::bar(){vfunc_called(this, "_ZN3bbb9GG11001113barEv");} |
| void bbb::GG1100111 ::foo(){vfunc_called(this, "_ZN3bbb9GG11001113fooEv");} |
| bbb::GG1100111 ::~GG1100111(){ note_dtor("_ZN3bbb9GG1100111E", this);} // tgen |
| bbb::GG1100111 ::GG1100111(){ note_ctor("_ZN3bbb9GG1100111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1100111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1100111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1100111E, buf); |
| ::bbb::GG1100111 *dp, &lv = *(dp=new (buf) ::bbb::GG1100111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1100111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1100111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1100111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100111E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1100111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1100111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1100111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1100111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1100111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1100111E); |
| dp->::bbb::GG1100111::~GG1100111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1100111E(Test__ZN3bbb9GG1100111E, "_ZN3bbb9GG1100111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1100111C1Ev(); |
| extern void _ZN3bbb9GG1100111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1100111E[] = { |
| NSPAIR(_ZN3bbb9GG1100111C1Ev), |
| NSPAIR(_ZN3bbb9GG1100111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1100111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100111E[]; |
| extern void _ZN3bbb9GG11001113fooEv(); |
| extern void _ZN3bbb9GG11001113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001113barEv,_ZTv0_n16_N3bbb9GG11001113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001113barEv,_ZThn16_N3bbb9GG11001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11001113fooEv,_ZTv0_n20_N3bbb9GG11001113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11001113fooEv,_ZThn16_N3bbb9GG11001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001113barEv,_ZTv0_n12_N3bbb9GG11001113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001113barEv,_ZThn28_N3bbb9GG11001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001113fooEv,_ZTv0_n16_N3bbb9GG11001113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11001113fooEv,_ZThn28_N3bbb9GG11001113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11001113barEv,_ZTv0_n12_N3bbb9GG11001113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001113barEv,_ZThn36_N3bbb9GG11001113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11001113fooEv,_ZTv0_n16_N3bbb9GG11001113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11001113fooEv,_ZThn36_N3bbb9GG11001113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1100111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11001113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11001113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001113barEv,_ZTv0_n16_N3bbb9GG11001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11001113fooEv,_ZTv0_n20_N3bbb9GG11001113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001113barEv,_ZTv0_n12_N3bbb9GG11001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001113fooEv,_ZTv0_n16_N3bbb9GG11001113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1100111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11001113barEv,_ZTv0_n12_N3bbb9GG11001113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11001113fooEv,_ZTv0_n16_N3bbb9GG11001113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1100111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1100111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1100111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1100111E[] = { |
| {&(_ZTVN3bbb9GG1100111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1100111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1100111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1100111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1100111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1100111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1100111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1100111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1100111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1100111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1100111E[]; |
| static VTBL_ENTRY alt_thunk_names120[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001113fooEv,_ZTv0_n16_N3bbb9GG11001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001113fooEv,_ZThn36_N3bbb9GG11001113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001113fooEv,_ZThn28_N3bbb9GG11001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11001113barEv,_ZTv0_n12_N3bbb9GG11001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11001113barEv,_ZThn36_N3bbb9GG11001113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11001113barEv,_ZThn28_N3bbb9GG11001113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11001113fooEv,_ZTv0_n20_N3bbb9GG11001113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001113fooEv,_ZThn16_N3bbb9GG11001113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11001113barEv,_ZTv0_n16_N3bbb9GG11001113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11001113barEv,_ZThn16_N3bbb9GG11001113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1100111E = { "_ZN3bbb9GG1100111E", // class name |
| bases__ZN3bbb9GG1100111E, 6, |
| &(vtc__ZN3bbb9GG1100111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1100111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1100111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1100111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1100111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names120, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101000 : virtual ::bbb::EE110 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11010003fooEv |
| virtual void bar(); // _ZN3bbb9GG11010003barEv |
| ~GG1101000(); // tgen |
| GG1101000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101000 ::foo(){vfunc_called(this, "_ZN3bbb9GG11010003fooEv");} |
| void bbb::GG1101000 ::bar(){vfunc_called(this, "_ZN3bbb9GG11010003barEv");} |
| bbb::GG1101000 ::~GG1101000(){ note_dtor("_ZN3bbb9GG1101000E", this);} // tgen |
| bbb::GG1101000 ::GG1101000(){ note_ctor("_ZN3bbb9GG1101000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101000E, buf); |
| ::bbb::GG1101000 *dp, &lv = *(dp=new (buf) ::bbb::GG1101000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101000E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1101000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1101000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1101000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101000E); |
| dp->::bbb::GG1101000::~GG1101000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101000E(Test__ZN3bbb9GG1101000E, "_ZN3bbb9GG1101000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101000C1Ev(); |
| extern void _ZN3bbb9GG1101000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101000E[] = { |
| NSPAIR(_ZN3bbb9GG1101000C1Ev), |
| NSPAIR(_ZN3bbb9GG1101000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1101000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101000E[]; |
| extern void _ZN3bbb9GG11010003barEv(); |
| extern void _ZN3bbb9GG11010003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010003barEv,_ZTv0_n16_N3bbb9GG11010003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010003barEv,_ZThn16_N3bbb9GG11010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11010003fooEv,_ZTv0_n20_N3bbb9GG11010003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010003fooEv,_ZThn16_N3bbb9GG11010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010003barEv,_ZTv0_n12_N3bbb9GG11010003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010003barEv,_ZThn28_N3bbb9GG11010003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010003fooEv,_ZTv0_n16_N3bbb9GG11010003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010003fooEv,_ZThn28_N3bbb9GG11010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010003fooEv,_ZTv0_n12_N3bbb9GG11010003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010003fooEv,_ZThn36_N3bbb9GG11010003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010003barEv,_ZTv0_n16_N3bbb9GG11010003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010003barEv,_ZThn36_N3bbb9GG11010003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11010003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11010003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010003barEv,_ZTv0_n16_N3bbb9GG11010003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11010003fooEv,_ZTv0_n20_N3bbb9GG11010003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010003barEv,_ZTv0_n12_N3bbb9GG11010003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010003fooEv,_ZTv0_n16_N3bbb9GG11010003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010003fooEv,_ZTv0_n12_N3bbb9GG11010003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010003barEv,_ZTv0_n16_N3bbb9GG11010003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1101000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1101000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101000E[] = { |
| {&(_ZTVN3bbb9GG1101000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1101000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1101000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101000E[]; |
| static VTBL_ENTRY alt_thunk_names121[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010003fooEv,_ZTv0_n12_N3bbb9GG11010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010003fooEv,_ZThn36_N3bbb9GG11010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010003fooEv,_ZTv0_n16_N3bbb9GG11010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010003fooEv,_ZThn28_N3bbb9GG11010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010003barEv,_ZTv0_n12_N3bbb9GG11010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010003barEv,_ZThn28_N3bbb9GG11010003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11010003fooEv,_ZTv0_n20_N3bbb9GG11010003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010003fooEv,_ZThn16_N3bbb9GG11010003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010003barEv,_ZTv0_n16_N3bbb9GG11010003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010003barEv,_ZThn36_N3bbb9GG11010003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010003barEv,_ZThn16_N3bbb9GG11010003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101000E = { "_ZN3bbb9GG1101000E", // class name |
| bases__ZN3bbb9GG1101000E, 6, |
| &(vtc__ZN3bbb9GG1101000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names121, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101001 : virtual ::bbb::EE110 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11010013barEv |
| virtual void foo(); // _ZN3bbb9GG11010013fooEv |
| ~GG1101001(); // tgen |
| GG1101001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101001 ::bar(){vfunc_called(this, "_ZN3bbb9GG11010013barEv");} |
| void bbb::GG1101001 ::foo(){vfunc_called(this, "_ZN3bbb9GG11010013fooEv");} |
| bbb::GG1101001 ::~GG1101001(){ note_dtor("_ZN3bbb9GG1101001E", this);} // tgen |
| bbb::GG1101001 ::GG1101001(){ note_ctor("_ZN3bbb9GG1101001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101001E, buf); |
| ::bbb::GG1101001 *dp, &lv = *(dp=new (buf) ::bbb::GG1101001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101001E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1101001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1101001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1101001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101001E); |
| dp->::bbb::GG1101001::~GG1101001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101001E(Test__ZN3bbb9GG1101001E, "_ZN3bbb9GG1101001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101001C1Ev(); |
| extern void _ZN3bbb9GG1101001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101001E[] = { |
| NSPAIR(_ZN3bbb9GG1101001C1Ev), |
| NSPAIR(_ZN3bbb9GG1101001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1101001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101001E[]; |
| extern void _ZN3bbb9GG11010013barEv(); |
| extern void _ZN3bbb9GG11010013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010013barEv,_ZTv0_n16_N3bbb9GG11010013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010013barEv,_ZThn16_N3bbb9GG11010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11010013fooEv,_ZTv0_n20_N3bbb9GG11010013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010013fooEv,_ZThn16_N3bbb9GG11010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010013barEv,_ZTv0_n12_N3bbb9GG11010013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010013barEv,_ZThn28_N3bbb9GG11010013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010013fooEv,_ZTv0_n16_N3bbb9GG11010013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010013fooEv,_ZThn28_N3bbb9GG11010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010013fooEv,_ZTv0_n12_N3bbb9GG11010013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010013fooEv,_ZThn36_N3bbb9GG11010013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010013barEv,_ZTv0_n16_N3bbb9GG11010013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010013barEv,_ZThn36_N3bbb9GG11010013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11010013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11010013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010013barEv,_ZTv0_n16_N3bbb9GG11010013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11010013fooEv,_ZTv0_n20_N3bbb9GG11010013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010013barEv,_ZTv0_n12_N3bbb9GG11010013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010013fooEv,_ZTv0_n16_N3bbb9GG11010013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010013fooEv,_ZTv0_n12_N3bbb9GG11010013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010013barEv,_ZTv0_n16_N3bbb9GG11010013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1101001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1101001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101001E[] = { |
| {&(_ZTVN3bbb9GG1101001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1101001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1101001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101001E[]; |
| static VTBL_ENTRY alt_thunk_names122[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010013fooEv,_ZTv0_n12_N3bbb9GG11010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010013fooEv,_ZThn36_N3bbb9GG11010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010013fooEv,_ZTv0_n16_N3bbb9GG11010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010013fooEv,_ZThn28_N3bbb9GG11010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010013barEv,_ZTv0_n12_N3bbb9GG11010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010013barEv,_ZThn28_N3bbb9GG11010013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11010013fooEv,_ZTv0_n20_N3bbb9GG11010013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010013fooEv,_ZThn16_N3bbb9GG11010013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010013barEv,_ZTv0_n16_N3bbb9GG11010013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010013barEv,_ZThn36_N3bbb9GG11010013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010013barEv,_ZThn16_N3bbb9GG11010013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101001E = { "_ZN3bbb9GG1101001E", // class name |
| bases__ZN3bbb9GG1101001E, 6, |
| &(vtc__ZN3bbb9GG1101001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names122, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101010 : virtual ::bbb::EE110 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11010103fooEv |
| virtual void bar(); // _ZN3bbb9GG11010103barEv |
| ~GG1101010(); // tgen |
| GG1101010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101010 ::foo(){vfunc_called(this, "_ZN3bbb9GG11010103fooEv");} |
| void bbb::GG1101010 ::bar(){vfunc_called(this, "_ZN3bbb9GG11010103barEv");} |
| bbb::GG1101010 ::~GG1101010(){ note_dtor("_ZN3bbb9GG1101010E", this);} // tgen |
| bbb::GG1101010 ::GG1101010(){ note_ctor("_ZN3bbb9GG1101010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101010E, buf); |
| ::bbb::GG1101010 *dp, &lv = *(dp=new (buf) ::bbb::GG1101010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101010E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1101010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1101010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1101010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101010E); |
| dp->::bbb::GG1101010::~GG1101010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101010E(Test__ZN3bbb9GG1101010E, "_ZN3bbb9GG1101010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101010C1Ev(); |
| extern void _ZN3bbb9GG1101010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101010E[] = { |
| NSPAIR(_ZN3bbb9GG1101010C1Ev), |
| NSPAIR(_ZN3bbb9GG1101010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1101010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101010E[]; |
| extern void _ZN3bbb9GG11010103barEv(); |
| extern void _ZN3bbb9GG11010103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010103barEv,_ZTv0_n16_N3bbb9GG11010103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010103barEv,_ZThn16_N3bbb9GG11010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11010103fooEv,_ZTv0_n20_N3bbb9GG11010103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010103fooEv,_ZThn16_N3bbb9GG11010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010103barEv,_ZTv0_n12_N3bbb9GG11010103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010103barEv,_ZThn28_N3bbb9GG11010103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010103fooEv,_ZTv0_n16_N3bbb9GG11010103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010103fooEv,_ZThn28_N3bbb9GG11010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010103fooEv,_ZTv0_n12_N3bbb9GG11010103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010103fooEv,_ZThn36_N3bbb9GG11010103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010103barEv,_ZTv0_n16_N3bbb9GG11010103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010103barEv,_ZThn36_N3bbb9GG11010103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11010103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11010103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010103barEv,_ZTv0_n16_N3bbb9GG11010103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11010103fooEv,_ZTv0_n20_N3bbb9GG11010103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010103barEv,_ZTv0_n12_N3bbb9GG11010103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010103fooEv,_ZTv0_n16_N3bbb9GG11010103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010103fooEv,_ZTv0_n12_N3bbb9GG11010103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010103barEv,_ZTv0_n16_N3bbb9GG11010103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1101010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1101010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101010E[] = { |
| {&(_ZTVN3bbb9GG1101010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1101010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1101010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101010E[]; |
| static VTBL_ENTRY alt_thunk_names123[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010103fooEv,_ZTv0_n12_N3bbb9GG11010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010103fooEv,_ZThn36_N3bbb9GG11010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010103fooEv,_ZTv0_n16_N3bbb9GG11010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010103fooEv,_ZThn28_N3bbb9GG11010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010103barEv,_ZTv0_n12_N3bbb9GG11010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010103barEv,_ZThn28_N3bbb9GG11010103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11010103fooEv,_ZTv0_n20_N3bbb9GG11010103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010103fooEv,_ZThn16_N3bbb9GG11010103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010103barEv,_ZTv0_n16_N3bbb9GG11010103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010103barEv,_ZThn36_N3bbb9GG11010103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010103barEv,_ZThn16_N3bbb9GG11010103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101010E = { "_ZN3bbb9GG1101010E", // class name |
| bases__ZN3bbb9GG1101010E, 6, |
| &(vtc__ZN3bbb9GG1101010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names123, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101011 : virtual ::bbb::EE110 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11010113barEv |
| virtual void foo(); // _ZN3bbb9GG11010113fooEv |
| ~GG1101011(); // tgen |
| GG1101011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101011 ::bar(){vfunc_called(this, "_ZN3bbb9GG11010113barEv");} |
| void bbb::GG1101011 ::foo(){vfunc_called(this, "_ZN3bbb9GG11010113fooEv");} |
| bbb::GG1101011 ::~GG1101011(){ note_dtor("_ZN3bbb9GG1101011E", this);} // tgen |
| bbb::GG1101011 ::GG1101011(){ note_ctor("_ZN3bbb9GG1101011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101011E, buf); |
| ::bbb::GG1101011 *dp, &lv = *(dp=new (buf) ::bbb::GG1101011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101011E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1101011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1101011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1101011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101011E); |
| dp->::bbb::GG1101011::~GG1101011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101011E(Test__ZN3bbb9GG1101011E, "_ZN3bbb9GG1101011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101011C1Ev(); |
| extern void _ZN3bbb9GG1101011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101011E[] = { |
| NSPAIR(_ZN3bbb9GG1101011C1Ev), |
| NSPAIR(_ZN3bbb9GG1101011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1101011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101011E[]; |
| extern void _ZN3bbb9GG11010113barEv(); |
| extern void _ZN3bbb9GG11010113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010113barEv,_ZTv0_n16_N3bbb9GG11010113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010113barEv,_ZThn16_N3bbb9GG11010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11010113fooEv,_ZTv0_n20_N3bbb9GG11010113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11010113fooEv,_ZThn16_N3bbb9GG11010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010113barEv,_ZTv0_n12_N3bbb9GG11010113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010113barEv,_ZThn28_N3bbb9GG11010113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010113fooEv,_ZTv0_n16_N3bbb9GG11010113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11010113fooEv,_ZThn28_N3bbb9GG11010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11010113fooEv,_ZTv0_n12_N3bbb9GG11010113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010113fooEv,_ZThn36_N3bbb9GG11010113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11010113barEv,_ZTv0_n16_N3bbb9GG11010113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11010113barEv,_ZThn36_N3bbb9GG11010113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11010113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11010113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010113barEv,_ZTv0_n16_N3bbb9GG11010113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11010113fooEv,_ZTv0_n20_N3bbb9GG11010113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010113barEv,_ZTv0_n12_N3bbb9GG11010113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010113fooEv,_ZTv0_n16_N3bbb9GG11010113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11010113fooEv,_ZTv0_n12_N3bbb9GG11010113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11010113barEv,_ZTv0_n16_N3bbb9GG11010113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1101011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1101011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101011E[] = { |
| {&(_ZTVN3bbb9GG1101011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1101011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1101011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101011E[]; |
| static VTBL_ENTRY alt_thunk_names124[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010113fooEv,_ZTv0_n12_N3bbb9GG11010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010113fooEv,_ZThn36_N3bbb9GG11010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010113fooEv,_ZTv0_n16_N3bbb9GG11010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010113fooEv,_ZThn28_N3bbb9GG11010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11010113barEv,_ZTv0_n12_N3bbb9GG11010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11010113barEv,_ZThn28_N3bbb9GG11010113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11010113fooEv,_ZTv0_n20_N3bbb9GG11010113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010113fooEv,_ZThn16_N3bbb9GG11010113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11010113barEv,_ZTv0_n16_N3bbb9GG11010113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11010113barEv,_ZThn36_N3bbb9GG11010113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11010113barEv,_ZThn16_N3bbb9GG11010113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101011E = { "_ZN3bbb9GG1101011E", // class name |
| bases__ZN3bbb9GG1101011E, 6, |
| &(vtc__ZN3bbb9GG1101011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names124, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101100 : virtual ::bbb::EE110 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11011003fooEv |
| virtual void bar(); // _ZN3bbb9GG11011003barEv |
| ~GG1101100(); // tgen |
| GG1101100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101100 ::foo(){vfunc_called(this, "_ZN3bbb9GG11011003fooEv");} |
| void bbb::GG1101100 ::bar(){vfunc_called(this, "_ZN3bbb9GG11011003barEv");} |
| bbb::GG1101100 ::~GG1101100(){ note_dtor("_ZN3bbb9GG1101100E", this);} // tgen |
| bbb::GG1101100 ::GG1101100(){ note_ctor("_ZN3bbb9GG1101100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101100E, buf); |
| ::bbb::GG1101100 *dp, &lv = *(dp=new (buf) ::bbb::GG1101100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101100E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1101100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1101100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1101100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101100E); |
| dp->::bbb::GG1101100::~GG1101100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101100E(Test__ZN3bbb9GG1101100E, "_ZN3bbb9GG1101100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101100C1Ev(); |
| extern void _ZN3bbb9GG1101100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101100E[] = { |
| NSPAIR(_ZN3bbb9GG1101100C1Ev), |
| NSPAIR(_ZN3bbb9GG1101100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1101100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101100E[]; |
| extern void _ZN3bbb9GG11011003barEv(); |
| extern void _ZN3bbb9GG11011003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011003barEv,_ZTv0_n16_N3bbb9GG11011003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011003barEv,_ZThn16_N3bbb9GG11011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11011003fooEv,_ZTv0_n20_N3bbb9GG11011003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011003fooEv,_ZThn16_N3bbb9GG11011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011003barEv,_ZTv0_n12_N3bbb9GG11011003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011003barEv,_ZThn28_N3bbb9GG11011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011003fooEv,_ZTv0_n16_N3bbb9GG11011003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011003fooEv,_ZThn28_N3bbb9GG11011003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011003barEv,_ZTv0_n12_N3bbb9GG11011003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011003barEv,_ZThn36_N3bbb9GG11011003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011003fooEv,_ZTv0_n16_N3bbb9GG11011003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011003fooEv,_ZThn36_N3bbb9GG11011003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11011003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11011003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011003barEv,_ZTv0_n16_N3bbb9GG11011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11011003fooEv,_ZTv0_n20_N3bbb9GG11011003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011003barEv,_ZTv0_n12_N3bbb9GG11011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011003fooEv,_ZTv0_n16_N3bbb9GG11011003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011003barEv,_ZTv0_n12_N3bbb9GG11011003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011003fooEv,_ZTv0_n16_N3bbb9GG11011003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1101100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1101100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101100E[] = { |
| {&(_ZTVN3bbb9GG1101100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1101100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1101100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101100E[]; |
| static VTBL_ENTRY alt_thunk_names125[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011003fooEv,_ZTv0_n16_N3bbb9GG11011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011003fooEv,_ZThn36_N3bbb9GG11011003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011003fooEv,_ZThn28_N3bbb9GG11011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11011003barEv,_ZTv0_n12_N3bbb9GG11011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011003barEv,_ZThn36_N3bbb9GG11011003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011003barEv,_ZThn28_N3bbb9GG11011003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11011003fooEv,_ZTv0_n20_N3bbb9GG11011003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011003fooEv,_ZThn16_N3bbb9GG11011003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011003barEv,_ZTv0_n16_N3bbb9GG11011003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011003barEv,_ZThn16_N3bbb9GG11011003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101100E = { "_ZN3bbb9GG1101100E", // class name |
| bases__ZN3bbb9GG1101100E, 6, |
| &(vtc__ZN3bbb9GG1101100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names125, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101101 : virtual ::bbb::EE110 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11011013barEv |
| virtual void foo(); // _ZN3bbb9GG11011013fooEv |
| ~GG1101101(); // tgen |
| GG1101101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101101 ::bar(){vfunc_called(this, "_ZN3bbb9GG11011013barEv");} |
| void bbb::GG1101101 ::foo(){vfunc_called(this, "_ZN3bbb9GG11011013fooEv");} |
| bbb::GG1101101 ::~GG1101101(){ note_dtor("_ZN3bbb9GG1101101E", this);} // tgen |
| bbb::GG1101101 ::GG1101101(){ note_ctor("_ZN3bbb9GG1101101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101101E, buf); |
| ::bbb::GG1101101 *dp, &lv = *(dp=new (buf) ::bbb::GG1101101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101101E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1101101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1101101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1101101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101101E); |
| dp->::bbb::GG1101101::~GG1101101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101101E(Test__ZN3bbb9GG1101101E, "_ZN3bbb9GG1101101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101101C1Ev(); |
| extern void _ZN3bbb9GG1101101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101101E[] = { |
| NSPAIR(_ZN3bbb9GG1101101C1Ev), |
| NSPAIR(_ZN3bbb9GG1101101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1101101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101101E[]; |
| extern void _ZN3bbb9GG11011013barEv(); |
| extern void _ZN3bbb9GG11011013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011013barEv,_ZTv0_n16_N3bbb9GG11011013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011013barEv,_ZThn16_N3bbb9GG11011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11011013fooEv,_ZTv0_n20_N3bbb9GG11011013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011013fooEv,_ZThn16_N3bbb9GG11011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011013barEv,_ZTv0_n12_N3bbb9GG11011013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011013barEv,_ZThn28_N3bbb9GG11011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011013fooEv,_ZTv0_n16_N3bbb9GG11011013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011013fooEv,_ZThn28_N3bbb9GG11011013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011013barEv,_ZTv0_n12_N3bbb9GG11011013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011013barEv,_ZThn36_N3bbb9GG11011013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011013fooEv,_ZTv0_n16_N3bbb9GG11011013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011013fooEv,_ZThn36_N3bbb9GG11011013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11011013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11011013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011013barEv,_ZTv0_n16_N3bbb9GG11011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11011013fooEv,_ZTv0_n20_N3bbb9GG11011013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011013barEv,_ZTv0_n12_N3bbb9GG11011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011013fooEv,_ZTv0_n16_N3bbb9GG11011013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011013barEv,_ZTv0_n12_N3bbb9GG11011013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011013fooEv,_ZTv0_n16_N3bbb9GG11011013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1101101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1101101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101101E[] = { |
| {&(_ZTVN3bbb9GG1101101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1101101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1101101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101101E[]; |
| static VTBL_ENTRY alt_thunk_names126[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011013fooEv,_ZTv0_n16_N3bbb9GG11011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011013fooEv,_ZThn36_N3bbb9GG11011013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011013fooEv,_ZThn28_N3bbb9GG11011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11011013barEv,_ZTv0_n12_N3bbb9GG11011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011013barEv,_ZThn36_N3bbb9GG11011013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011013barEv,_ZThn28_N3bbb9GG11011013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11011013fooEv,_ZTv0_n20_N3bbb9GG11011013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011013fooEv,_ZThn16_N3bbb9GG11011013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011013barEv,_ZTv0_n16_N3bbb9GG11011013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011013barEv,_ZThn16_N3bbb9GG11011013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101101E = { "_ZN3bbb9GG1101101E", // class name |
| bases__ZN3bbb9GG1101101E, 6, |
| &(vtc__ZN3bbb9GG1101101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names126, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101110 : virtual ::bbb::EE110 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11011103fooEv |
| virtual void bar(); // _ZN3bbb9GG11011103barEv |
| ~GG1101110(); // tgen |
| GG1101110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101110 ::foo(){vfunc_called(this, "_ZN3bbb9GG11011103fooEv");} |
| void bbb::GG1101110 ::bar(){vfunc_called(this, "_ZN3bbb9GG11011103barEv");} |
| bbb::GG1101110 ::~GG1101110(){ note_dtor("_ZN3bbb9GG1101110E", this);} // tgen |
| bbb::GG1101110 ::GG1101110(){ note_ctor("_ZN3bbb9GG1101110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101110E, buf); |
| ::bbb::GG1101110 *dp, &lv = *(dp=new (buf) ::bbb::GG1101110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101110E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1101110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1101110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1101110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101110E); |
| dp->::bbb::GG1101110::~GG1101110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101110E(Test__ZN3bbb9GG1101110E, "_ZN3bbb9GG1101110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101110C1Ev(); |
| extern void _ZN3bbb9GG1101110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101110E[] = { |
| NSPAIR(_ZN3bbb9GG1101110C1Ev), |
| NSPAIR(_ZN3bbb9GG1101110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1101110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101110E[]; |
| extern void _ZN3bbb9GG11011103barEv(); |
| extern void _ZN3bbb9GG11011103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011103barEv,_ZTv0_n16_N3bbb9GG11011103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011103barEv,_ZThn16_N3bbb9GG11011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11011103fooEv,_ZTv0_n20_N3bbb9GG11011103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011103fooEv,_ZThn16_N3bbb9GG11011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011103barEv,_ZTv0_n12_N3bbb9GG11011103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011103barEv,_ZThn28_N3bbb9GG11011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011103fooEv,_ZTv0_n16_N3bbb9GG11011103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011103fooEv,_ZThn28_N3bbb9GG11011103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011103barEv,_ZTv0_n12_N3bbb9GG11011103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011103barEv,_ZThn36_N3bbb9GG11011103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011103fooEv,_ZTv0_n16_N3bbb9GG11011103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011103fooEv,_ZThn36_N3bbb9GG11011103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11011103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11011103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011103barEv,_ZTv0_n16_N3bbb9GG11011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11011103fooEv,_ZTv0_n20_N3bbb9GG11011103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011103barEv,_ZTv0_n12_N3bbb9GG11011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011103fooEv,_ZTv0_n16_N3bbb9GG11011103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011103barEv,_ZTv0_n12_N3bbb9GG11011103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011103fooEv,_ZTv0_n16_N3bbb9GG11011103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1101110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1101110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101110E[] = { |
| {&(_ZTVN3bbb9GG1101110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1101110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1101110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101110E[]; |
| static VTBL_ENTRY alt_thunk_names127[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011103fooEv,_ZTv0_n16_N3bbb9GG11011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011103fooEv,_ZThn36_N3bbb9GG11011103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011103fooEv,_ZThn28_N3bbb9GG11011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11011103barEv,_ZTv0_n12_N3bbb9GG11011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011103barEv,_ZThn36_N3bbb9GG11011103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011103barEv,_ZThn28_N3bbb9GG11011103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11011103fooEv,_ZTv0_n20_N3bbb9GG11011103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011103fooEv,_ZThn16_N3bbb9GG11011103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011103barEv,_ZTv0_n16_N3bbb9GG11011103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011103barEv,_ZThn16_N3bbb9GG11011103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101110E = { "_ZN3bbb9GG1101110E", // class name |
| bases__ZN3bbb9GG1101110E, 6, |
| &(vtc__ZN3bbb9GG1101110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names127, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1101111 : virtual ::bbb::EE110 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11011113barEv |
| virtual void foo(); // _ZN3bbb9GG11011113fooEv |
| ~GG1101111(); // tgen |
| GG1101111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1101111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1101111 ::bar(){vfunc_called(this, "_ZN3bbb9GG11011113barEv");} |
| void bbb::GG1101111 ::foo(){vfunc_called(this, "_ZN3bbb9GG11011113fooEv");} |
| bbb::GG1101111 ::~GG1101111(){ note_dtor("_ZN3bbb9GG1101111E", this);} // tgen |
| bbb::GG1101111 ::GG1101111(){ note_ctor("_ZN3bbb9GG1101111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1101111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1101111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1101111E, buf); |
| ::bbb::GG1101111 *dp, &lv = *(dp=new (buf) ::bbb::GG1101111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1101111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1101111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE110*), ABISELECT(40,28), "_ZN3bbb9GG1101111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101111E"); |
| check_base_class_offset(lv, (::bbb::EE110*), ABISELECT(24,16), "_ZN3bbb9GG1101111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1101111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1101111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1101111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1101111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1101111E); |
| dp->::bbb::GG1101111::~GG1101111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1101111E(Test__ZN3bbb9GG1101111E, "_ZN3bbb9GG1101111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1101111C1Ev(); |
| extern void _ZN3bbb9GG1101111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1101111E[] = { |
| NSPAIR(_ZN3bbb9GG1101111C1Ev), |
| NSPAIR(_ZN3bbb9GG1101111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE110E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE110E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1101111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE110E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101111E[]; |
| extern void _ZN3bbb9GG11011113barEv(); |
| extern void _ZN3bbb9GG11011113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011113barEv,_ZTv0_n16_N3bbb9GG11011113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011113barEv,_ZThn16_N3bbb9GG11011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11011113fooEv,_ZTv0_n20_N3bbb9GG11011113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11011113fooEv,_ZThn16_N3bbb9GG11011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011113barEv,_ZTv0_n12_N3bbb9GG11011113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011113barEv,_ZThn28_N3bbb9GG11011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011113fooEv,_ZTv0_n16_N3bbb9GG11011113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11011113fooEv,_ZThn28_N3bbb9GG11011113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11011113barEv,_ZTv0_n12_N3bbb9GG11011113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011113barEv,_ZThn36_N3bbb9GG11011113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11011113fooEv,_ZTv0_n16_N3bbb9GG11011113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11011113fooEv,_ZThn36_N3bbb9GG11011113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1101111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11011113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11011113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011113barEv,_ZTv0_n16_N3bbb9GG11011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11011113fooEv,_ZTv0_n20_N3bbb9GG11011113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011113barEv,_ZTv0_n12_N3bbb9GG11011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011113fooEv,_ZTv0_n16_N3bbb9GG11011113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1101111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11011113barEv,_ZTv0_n12_N3bbb9GG11011113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11011113fooEv,_ZTv0_n16_N3bbb9GG11011113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1101111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1101111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1103barEv(); |
| extern void _ZN3bbb5EE1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE110E__NS_9GG1101111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1101111E[] = { |
| {&(_ZTVN3bbb9GG1101111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1101111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1101111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1101111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1101111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1101111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE110E__NS_9GG1101111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE110E__NS_9GG1101111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1101111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1101111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1101111E[]; |
| static VTBL_ENTRY alt_thunk_names128[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1103fooEv,_ZTv0_n16_N3bbb5EE1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103fooEv,_ZThn12_N3bbb5EE1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1103barEv,_ZTv0_n12_N3bbb5EE1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1103barEv,_ZThn12_N3bbb5EE1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011113fooEv,_ZTv0_n16_N3bbb9GG11011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011113fooEv,_ZThn36_N3bbb9GG11011113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011113fooEv,_ZThn28_N3bbb9GG11011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11011113barEv,_ZTv0_n12_N3bbb9GG11011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11011113barEv,_ZThn36_N3bbb9GG11011113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11011113barEv,_ZThn28_N3bbb9GG11011113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11011113fooEv,_ZTv0_n20_N3bbb9GG11011113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011113fooEv,_ZThn16_N3bbb9GG11011113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11011113barEv,_ZTv0_n16_N3bbb9GG11011113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11011113barEv,_ZThn16_N3bbb9GG11011113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1101111E = { "_ZN3bbb9GG1101111E", // class name |
| bases__ZN3bbb9GG1101111E, 6, |
| &(vtc__ZN3bbb9GG1101111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1101111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1101111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1101111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1101111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names128, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110000 : virtual ::bbb::EE111 , ::bbb::FF000 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11100003fooEv |
| virtual void bar(); // _ZN3bbb9GG11100003barEv |
| ~GG1110000(); // tgen |
| GG1110000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110000 ::foo(){vfunc_called(this, "_ZN3bbb9GG11100003fooEv");} |
| void bbb::GG1110000 ::bar(){vfunc_called(this, "_ZN3bbb9GG11100003barEv");} |
| bbb::GG1110000 ::~GG1110000(){ note_dtor("_ZN3bbb9GG1110000E", this);} // tgen |
| bbb::GG1110000 ::GG1110000(){ note_ctor("_ZN3bbb9GG1110000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110000E, buf); |
| ::bbb::GG1110000 *dp, &lv = *(dp=new (buf) ::bbb::GG1110000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110000E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110000E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1110000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1110000E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1110000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110000E); |
| dp->::bbb::GG1110000::~GG1110000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110000E(Test__ZN3bbb9GG1110000E, "_ZN3bbb9GG1110000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110000C1Ev(); |
| extern void _ZN3bbb9GG1110000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110000E[] = { |
| NSPAIR(_ZN3bbb9GG1110000C1Ev), |
| NSPAIR(_ZN3bbb9GG1110000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1110000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110000E[]; |
| extern void _ZN3bbb9GG11100003fooEv(); |
| extern void _ZN3bbb9GG11100003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100003barEv,_ZTv0_n16_N3bbb9GG11100003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100003barEv,_ZThn16_N3bbb9GG11100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11100003fooEv,_ZTv0_n20_N3bbb9GG11100003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100003fooEv,_ZThn16_N3bbb9GG11100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100003barEv,_ZTv0_n12_N3bbb9GG11100003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100003barEv,_ZThn28_N3bbb9GG11100003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100003fooEv,_ZTv0_n16_N3bbb9GG11100003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100003fooEv,_ZThn28_N3bbb9GG11100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100003fooEv,_ZTv0_n12_N3bbb9GG11100003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100003fooEv,_ZThn36_N3bbb9GG11100003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100003barEv,_ZTv0_n16_N3bbb9GG11100003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100003barEv,_ZThn36_N3bbb9GG11100003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11100003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11100003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100003barEv,_ZTv0_n16_N3bbb9GG11100003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11100003fooEv,_ZTv0_n20_N3bbb9GG11100003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100003barEv,_ZTv0_n12_N3bbb9GG11100003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100003fooEv,_ZTv0_n16_N3bbb9GG11100003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100003fooEv,_ZTv0_n12_N3bbb9GG11100003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100003barEv,_ZTv0_n16_N3bbb9GG11100003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110000E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1110000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1110000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110000E[] = { |
| {&(_ZTVN3bbb9GG1110000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1110000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1110000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110000E[]; |
| static VTBL_ENTRY alt_thunk_names129[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100003fooEv,_ZTv0_n12_N3bbb9GG11100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100003fooEv,_ZThn36_N3bbb9GG11100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100003fooEv,_ZTv0_n16_N3bbb9GG11100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100003fooEv,_ZThn28_N3bbb9GG11100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100003barEv,_ZTv0_n12_N3bbb9GG11100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100003barEv,_ZThn28_N3bbb9GG11100003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11100003fooEv,_ZTv0_n20_N3bbb9GG11100003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100003fooEv,_ZThn16_N3bbb9GG11100003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100003barEv,_ZTv0_n16_N3bbb9GG11100003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100003barEv,_ZThn36_N3bbb9GG11100003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100003barEv,_ZThn16_N3bbb9GG11100003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110000E = { "_ZN3bbb9GG1110000E", // class name |
| bases__ZN3bbb9GG1110000E, 6, |
| &(vtc__ZN3bbb9GG1110000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names129, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110001 : virtual ::bbb::EE111 , ::bbb::FF000 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11100013barEv |
| virtual void foo(); // _ZN3bbb9GG11100013fooEv |
| ~GG1110001(); // tgen |
| GG1110001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110001 ::bar(){vfunc_called(this, "_ZN3bbb9GG11100013barEv");} |
| void bbb::GG1110001 ::foo(){vfunc_called(this, "_ZN3bbb9GG11100013fooEv");} |
| bbb::GG1110001 ::~GG1110001(){ note_dtor("_ZN3bbb9GG1110001E", this);} // tgen |
| bbb::GG1110001 ::GG1110001(){ note_ctor("_ZN3bbb9GG1110001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110001E, buf); |
| ::bbb::GG1110001 *dp, &lv = *(dp=new (buf) ::bbb::GG1110001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110001E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110001E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF000*), 0, "_ZN3bbb9GG1110001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF000*), ABISELECT(56,36), "_ZN3bbb9GG1110001E"); |
| check_base_class_offset(lv, (::bbb::FF000*), 0, "_ZN3bbb9GG1110001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110001E); |
| dp->::bbb::GG1110001::~GG1110001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110001E(Test__ZN3bbb9GG1110001E, "_ZN3bbb9GG1110001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110001C1Ev(); |
| extern void _ZN3bbb9GG1110001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110001E[] = { |
| NSPAIR(_ZN3bbb9GG1110001C1Ev), |
| NSPAIR(_ZN3bbb9GG1110001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF000E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF000E[]; |
| static Base_Class bases__ZN3bbb9GG1110001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF000E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110001E[]; |
| extern void _ZN3bbb9GG11100013fooEv(); |
| extern void _ZN3bbb9GG11100013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100013barEv,_ZTv0_n16_N3bbb9GG11100013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100013barEv,_ZThn16_N3bbb9GG11100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11100013fooEv,_ZTv0_n20_N3bbb9GG11100013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100013fooEv,_ZThn16_N3bbb9GG11100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100013barEv,_ZTv0_n12_N3bbb9GG11100013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100013barEv,_ZThn28_N3bbb9GG11100013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100013fooEv,_ZTv0_n16_N3bbb9GG11100013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100013fooEv,_ZThn28_N3bbb9GG11100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100013fooEv,_ZTv0_n12_N3bbb9GG11100013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100013fooEv,_ZThn36_N3bbb9GG11100013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100013barEv,_ZTv0_n16_N3bbb9GG11100013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100013barEv,_ZThn36_N3bbb9GG11100013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11100013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11100013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100013barEv,_ZTv0_n16_N3bbb9GG11100013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11100013fooEv,_ZTv0_n20_N3bbb9GG11100013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100013barEv,_ZTv0_n12_N3bbb9GG11100013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100013fooEv,_ZTv0_n16_N3bbb9GG11100013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100013fooEv,_ZTv0_n12_N3bbb9GG11100013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100013barEv,_ZTv0_n16_N3bbb9GG11100013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110001E[]; |
| extern void _ZN3bbb5FF0003fooEv(); |
| extern void _ZN3bbb5FF0003barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF000E__NS_9GG1110001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0003barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1110001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110001E[] = { |
| {&(_ZTVN3bbb9GG1110001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF000E__NS_9GG1110001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF000E__NS_9GG1110001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110001E[]; |
| static VTBL_ENTRY alt_thunk_names130[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0003barEv,_ZTv0_n16_N3bbb5FF0003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003barEv,_ZThn36_N3bbb5FF0003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0003fooEv,_ZTv0_n12_N3bbb5FF0003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0003fooEv,_ZThn36_N3bbb5FF0003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100013fooEv,_ZTv0_n12_N3bbb9GG11100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100013fooEv,_ZThn36_N3bbb9GG11100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100013fooEv,_ZTv0_n16_N3bbb9GG11100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100013fooEv,_ZThn28_N3bbb9GG11100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100013barEv,_ZTv0_n12_N3bbb9GG11100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100013barEv,_ZThn28_N3bbb9GG11100013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11100013fooEv,_ZTv0_n20_N3bbb9GG11100013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100013fooEv,_ZThn16_N3bbb9GG11100013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100013barEv,_ZTv0_n16_N3bbb9GG11100013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100013barEv,_ZThn36_N3bbb9GG11100013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100013barEv,_ZThn16_N3bbb9GG11100013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110001E = { "_ZN3bbb9GG1110001E", // class name |
| bases__ZN3bbb9GG1110001E, 6, |
| &(vtc__ZN3bbb9GG1110001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names130, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110010 : virtual ::bbb::EE111 , ::bbb::FF001 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11100103fooEv |
| virtual void bar(); // _ZN3bbb9GG11100103barEv |
| ~GG1110010(); // tgen |
| GG1110010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110010 ::foo(){vfunc_called(this, "_ZN3bbb9GG11100103fooEv");} |
| void bbb::GG1110010 ::bar(){vfunc_called(this, "_ZN3bbb9GG11100103barEv");} |
| bbb::GG1110010 ::~GG1110010(){ note_dtor("_ZN3bbb9GG1110010E", this);} // tgen |
| bbb::GG1110010 ::GG1110010(){ note_ctor("_ZN3bbb9GG1110010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110010E, buf); |
| ::bbb::GG1110010 *dp, &lv = *(dp=new (buf) ::bbb::GG1110010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110010E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110010E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1110010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1110010E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1110010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110010E); |
| dp->::bbb::GG1110010::~GG1110010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110010E(Test__ZN3bbb9GG1110010E, "_ZN3bbb9GG1110010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110010C1Ev(); |
| extern void _ZN3bbb9GG1110010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110010E[] = { |
| NSPAIR(_ZN3bbb9GG1110010C1Ev), |
| NSPAIR(_ZN3bbb9GG1110010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1110010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110010E[]; |
| extern void _ZN3bbb9GG11100103fooEv(); |
| extern void _ZN3bbb9GG11100103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100103barEv,_ZTv0_n16_N3bbb9GG11100103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100103barEv,_ZThn16_N3bbb9GG11100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11100103fooEv,_ZTv0_n20_N3bbb9GG11100103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100103fooEv,_ZThn16_N3bbb9GG11100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100103barEv,_ZTv0_n12_N3bbb9GG11100103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100103barEv,_ZThn28_N3bbb9GG11100103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100103fooEv,_ZTv0_n16_N3bbb9GG11100103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100103fooEv,_ZThn28_N3bbb9GG11100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100103fooEv,_ZTv0_n12_N3bbb9GG11100103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100103fooEv,_ZThn36_N3bbb9GG11100103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100103barEv,_ZTv0_n16_N3bbb9GG11100103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100103barEv,_ZThn36_N3bbb9GG11100103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11100103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11100103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100103barEv,_ZTv0_n16_N3bbb9GG11100103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11100103fooEv,_ZTv0_n20_N3bbb9GG11100103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100103barEv,_ZTv0_n12_N3bbb9GG11100103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100103fooEv,_ZTv0_n16_N3bbb9GG11100103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100103fooEv,_ZTv0_n12_N3bbb9GG11100103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100103barEv,_ZTv0_n16_N3bbb9GG11100103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110010E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1110010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1110010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110010E[] = { |
| {&(_ZTVN3bbb9GG1110010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1110010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1110010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110010E[]; |
| static VTBL_ENTRY alt_thunk_names131[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100103fooEv,_ZTv0_n12_N3bbb9GG11100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100103fooEv,_ZThn36_N3bbb9GG11100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100103fooEv,_ZTv0_n16_N3bbb9GG11100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100103fooEv,_ZThn28_N3bbb9GG11100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100103barEv,_ZTv0_n12_N3bbb9GG11100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100103barEv,_ZThn28_N3bbb9GG11100103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11100103fooEv,_ZTv0_n20_N3bbb9GG11100103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100103fooEv,_ZThn16_N3bbb9GG11100103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100103barEv,_ZTv0_n16_N3bbb9GG11100103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100103barEv,_ZThn36_N3bbb9GG11100103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100103barEv,_ZThn16_N3bbb9GG11100103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110010E = { "_ZN3bbb9GG1110010E", // class name |
| bases__ZN3bbb9GG1110010E, 6, |
| &(vtc__ZN3bbb9GG1110010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names131, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110011 : virtual ::bbb::EE111 , ::bbb::FF001 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11100113barEv |
| virtual void foo(); // _ZN3bbb9GG11100113fooEv |
| ~GG1110011(); // tgen |
| GG1110011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110011 ::bar(){vfunc_called(this, "_ZN3bbb9GG11100113barEv");} |
| void bbb::GG1110011 ::foo(){vfunc_called(this, "_ZN3bbb9GG11100113fooEv");} |
| bbb::GG1110011 ::~GG1110011(){ note_dtor("_ZN3bbb9GG1110011E", this);} // tgen |
| bbb::GG1110011 ::GG1110011(){ note_ctor("_ZN3bbb9GG1110011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110011E, buf); |
| ::bbb::GG1110011 *dp, &lv = *(dp=new (buf) ::bbb::GG1110011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110011E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110011E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF001*), 0, "_ZN3bbb9GG1110011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF001*), ABISELECT(56,36), "_ZN3bbb9GG1110011E"); |
| check_base_class_offset(lv, (::bbb::FF001*), 0, "_ZN3bbb9GG1110011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110011E); |
| dp->::bbb::GG1110011::~GG1110011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110011E(Test__ZN3bbb9GG1110011E, "_ZN3bbb9GG1110011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110011C1Ev(); |
| extern void _ZN3bbb9GG1110011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110011E[] = { |
| NSPAIR(_ZN3bbb9GG1110011C1Ev), |
| NSPAIR(_ZN3bbb9GG1110011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF001E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF001E[]; |
| static Base_Class bases__ZN3bbb9GG1110011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF001E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110011E[]; |
| extern void _ZN3bbb9GG11100113fooEv(); |
| extern void _ZN3bbb9GG11100113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100113barEv,_ZTv0_n16_N3bbb9GG11100113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100113barEv,_ZThn16_N3bbb9GG11100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11100113fooEv,_ZTv0_n20_N3bbb9GG11100113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11100113fooEv,_ZThn16_N3bbb9GG11100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100113barEv,_ZTv0_n12_N3bbb9GG11100113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100113barEv,_ZThn28_N3bbb9GG11100113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100113fooEv,_ZTv0_n16_N3bbb9GG11100113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11100113fooEv,_ZThn28_N3bbb9GG11100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11100113fooEv,_ZTv0_n12_N3bbb9GG11100113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100113fooEv,_ZThn36_N3bbb9GG11100113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11100113barEv,_ZTv0_n16_N3bbb9GG11100113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11100113barEv,_ZThn36_N3bbb9GG11100113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11100113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11100113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100113barEv,_ZTv0_n16_N3bbb9GG11100113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11100113fooEv,_ZTv0_n20_N3bbb9GG11100113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100113barEv,_ZTv0_n12_N3bbb9GG11100113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100113fooEv,_ZTv0_n16_N3bbb9GG11100113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11100113fooEv,_ZTv0_n12_N3bbb9GG11100113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11100113barEv,_ZTv0_n16_N3bbb9GG11100113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110011E[]; |
| extern void _ZN3bbb5FF0013fooEv(); |
| extern void _ZN3bbb5FF0013barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF001E__NS_9GG1110011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0013barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1110011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110011E[] = { |
| {&(_ZTVN3bbb9GG1110011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF001E__NS_9GG1110011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF001E__NS_9GG1110011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110011E[]; |
| static VTBL_ENTRY alt_thunk_names132[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0013barEv,_ZTv0_n16_N3bbb5FF0013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013barEv,_ZThn36_N3bbb5FF0013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0013fooEv,_ZTv0_n12_N3bbb5FF0013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0013fooEv,_ZThn36_N3bbb5FF0013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100113fooEv,_ZTv0_n12_N3bbb9GG11100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100113fooEv,_ZThn36_N3bbb9GG11100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100113fooEv,_ZTv0_n16_N3bbb9GG11100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100113fooEv,_ZThn28_N3bbb9GG11100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11100113barEv,_ZTv0_n12_N3bbb9GG11100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11100113barEv,_ZThn28_N3bbb9GG11100113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11100113fooEv,_ZTv0_n20_N3bbb9GG11100113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100113fooEv,_ZThn16_N3bbb9GG11100113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11100113barEv,_ZTv0_n16_N3bbb9GG11100113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11100113barEv,_ZThn36_N3bbb9GG11100113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11100113barEv,_ZThn16_N3bbb9GG11100113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110011E = { "_ZN3bbb9GG1110011E", // class name |
| bases__ZN3bbb9GG1110011E, 6, |
| &(vtc__ZN3bbb9GG1110011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names132, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110100 : virtual ::bbb::EE111 , ::bbb::FF010 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11101003fooEv |
| virtual void bar(); // _ZN3bbb9GG11101003barEv |
| ~GG1110100(); // tgen |
| GG1110100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110100 ::foo(){vfunc_called(this, "_ZN3bbb9GG11101003fooEv");} |
| void bbb::GG1110100 ::bar(){vfunc_called(this, "_ZN3bbb9GG11101003barEv");} |
| bbb::GG1110100 ::~GG1110100(){ note_dtor("_ZN3bbb9GG1110100E", this);} // tgen |
| bbb::GG1110100 ::GG1110100(){ note_ctor("_ZN3bbb9GG1110100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110100E, buf); |
| ::bbb::GG1110100 *dp, &lv = *(dp=new (buf) ::bbb::GG1110100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110100E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110100E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1110100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1110100E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1110100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110100E); |
| dp->::bbb::GG1110100::~GG1110100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110100E(Test__ZN3bbb9GG1110100E, "_ZN3bbb9GG1110100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110100C1Ev(); |
| extern void _ZN3bbb9GG1110100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110100E[] = { |
| NSPAIR(_ZN3bbb9GG1110100C1Ev), |
| NSPAIR(_ZN3bbb9GG1110100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1110100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110100E[]; |
| extern void _ZN3bbb9GG11101003fooEv(); |
| extern void _ZN3bbb9GG11101003barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101003barEv,_ZTv0_n16_N3bbb9GG11101003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101003barEv,_ZThn16_N3bbb9GG11101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11101003fooEv,_ZTv0_n20_N3bbb9GG11101003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101003fooEv,_ZThn16_N3bbb9GG11101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101003barEv,_ZTv0_n12_N3bbb9GG11101003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101003barEv,_ZThn28_N3bbb9GG11101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101003fooEv,_ZTv0_n16_N3bbb9GG11101003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101003fooEv,_ZThn28_N3bbb9GG11101003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101003barEv,_ZTv0_n12_N3bbb9GG11101003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101003barEv,_ZThn36_N3bbb9GG11101003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101003fooEv,_ZTv0_n16_N3bbb9GG11101003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101003fooEv,_ZThn36_N3bbb9GG11101003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11101003fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11101003barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101003barEv,_ZTv0_n16_N3bbb9GG11101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11101003fooEv,_ZTv0_n20_N3bbb9GG11101003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101003barEv,_ZTv0_n12_N3bbb9GG11101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101003fooEv,_ZTv0_n16_N3bbb9GG11101003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101003barEv,_ZTv0_n12_N3bbb9GG11101003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101003fooEv,_ZTv0_n16_N3bbb9GG11101003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110100E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1110100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1110100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110100E[] = { |
| {&(_ZTVN3bbb9GG1110100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1110100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1110100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110100E[]; |
| static VTBL_ENTRY alt_thunk_names133[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101003fooEv,_ZTv0_n16_N3bbb9GG11101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101003fooEv,_ZThn36_N3bbb9GG11101003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101003fooEv,_ZThn28_N3bbb9GG11101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11101003barEv,_ZTv0_n12_N3bbb9GG11101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101003barEv,_ZThn36_N3bbb9GG11101003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101003barEv,_ZThn28_N3bbb9GG11101003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11101003fooEv,_ZTv0_n20_N3bbb9GG11101003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101003fooEv,_ZThn16_N3bbb9GG11101003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101003barEv,_ZTv0_n16_N3bbb9GG11101003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101003barEv,_ZThn16_N3bbb9GG11101003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110100E = { "_ZN3bbb9GG1110100E", // class name |
| bases__ZN3bbb9GG1110100E, 6, |
| &(vtc__ZN3bbb9GG1110100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names133, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110101 : virtual ::bbb::EE111 , ::bbb::FF010 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11101013barEv |
| virtual void foo(); // _ZN3bbb9GG11101013fooEv |
| ~GG1110101(); // tgen |
| GG1110101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110101 ::bar(){vfunc_called(this, "_ZN3bbb9GG11101013barEv");} |
| void bbb::GG1110101 ::foo(){vfunc_called(this, "_ZN3bbb9GG11101013fooEv");} |
| bbb::GG1110101 ::~GG1110101(){ note_dtor("_ZN3bbb9GG1110101E", this);} // tgen |
| bbb::GG1110101 ::GG1110101(){ note_ctor("_ZN3bbb9GG1110101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110101E, buf); |
| ::bbb::GG1110101 *dp, &lv = *(dp=new (buf) ::bbb::GG1110101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110101E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110101E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF010*), 0, "_ZN3bbb9GG1110101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF010*), ABISELECT(56,36), "_ZN3bbb9GG1110101E"); |
| check_base_class_offset(lv, (::bbb::FF010*), 0, "_ZN3bbb9GG1110101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110101E); |
| dp->::bbb::GG1110101::~GG1110101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110101E(Test__ZN3bbb9GG1110101E, "_ZN3bbb9GG1110101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110101C1Ev(); |
| extern void _ZN3bbb9GG1110101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110101E[] = { |
| NSPAIR(_ZN3bbb9GG1110101C1Ev), |
| NSPAIR(_ZN3bbb9GG1110101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF010E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF010E[]; |
| static Base_Class bases__ZN3bbb9GG1110101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF010E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110101E[]; |
| extern void _ZN3bbb9GG11101013fooEv(); |
| extern void _ZN3bbb9GG11101013barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101013barEv,_ZTv0_n16_N3bbb9GG11101013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101013barEv,_ZThn16_N3bbb9GG11101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11101013fooEv,_ZTv0_n20_N3bbb9GG11101013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101013fooEv,_ZThn16_N3bbb9GG11101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101013barEv,_ZTv0_n12_N3bbb9GG11101013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101013barEv,_ZThn28_N3bbb9GG11101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101013fooEv,_ZTv0_n16_N3bbb9GG11101013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101013fooEv,_ZThn28_N3bbb9GG11101013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101013barEv,_ZTv0_n12_N3bbb9GG11101013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101013barEv,_ZThn36_N3bbb9GG11101013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101013fooEv,_ZTv0_n16_N3bbb9GG11101013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101013fooEv,_ZThn36_N3bbb9GG11101013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11101013fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11101013barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101013barEv,_ZTv0_n16_N3bbb9GG11101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11101013fooEv,_ZTv0_n20_N3bbb9GG11101013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101013barEv,_ZTv0_n12_N3bbb9GG11101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101013fooEv,_ZTv0_n16_N3bbb9GG11101013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101013barEv,_ZTv0_n12_N3bbb9GG11101013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101013fooEv,_ZTv0_n16_N3bbb9GG11101013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110101E[]; |
| extern void _ZN3bbb5FF0103fooEv(); |
| extern void _ZN3bbb5FF0103barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF010E__NS_9GG1110101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0103barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1110101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110101E[] = { |
| {&(_ZTVN3bbb9GG1110101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF010E__NS_9GG1110101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF010E__NS_9GG1110101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110101E[]; |
| static VTBL_ENTRY alt_thunk_names134[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0103fooEv,_ZTv0_n16_N3bbb5FF0103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103fooEv,_ZThn36_N3bbb5FF0103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0103barEv,_ZTv0_n12_N3bbb5FF0103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0103barEv,_ZThn36_N3bbb5FF0103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101013fooEv,_ZTv0_n16_N3bbb9GG11101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101013fooEv,_ZThn36_N3bbb9GG11101013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101013fooEv,_ZThn28_N3bbb9GG11101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11101013barEv,_ZTv0_n12_N3bbb9GG11101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101013barEv,_ZThn36_N3bbb9GG11101013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101013barEv,_ZThn28_N3bbb9GG11101013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11101013fooEv,_ZTv0_n20_N3bbb9GG11101013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101013fooEv,_ZThn16_N3bbb9GG11101013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101013barEv,_ZTv0_n16_N3bbb9GG11101013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101013barEv,_ZThn16_N3bbb9GG11101013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110101E = { "_ZN3bbb9GG1110101E", // class name |
| bases__ZN3bbb9GG1110101E, 6, |
| &(vtc__ZN3bbb9GG1110101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names134, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110110 : virtual ::bbb::EE111 , ::bbb::FF011 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11101103fooEv |
| virtual void bar(); // _ZN3bbb9GG11101103barEv |
| ~GG1110110(); // tgen |
| GG1110110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC6{ v1 v2 Fi} VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110110 ::foo(){vfunc_called(this, "_ZN3bbb9GG11101103fooEv");} |
| void bbb::GG1110110 ::bar(){vfunc_called(this, "_ZN3bbb9GG11101103barEv");} |
| bbb::GG1110110 ::~GG1110110(){ note_dtor("_ZN3bbb9GG1110110E", this);} // tgen |
| bbb::GG1110110 ::GG1110110(){ note_ctor("_ZN3bbb9GG1110110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110110E, buf); |
| ::bbb::GG1110110 *dp, &lv = *(dp=new (buf) ::bbb::GG1110110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110110E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110110E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1110110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1110110E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1110110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110110E); |
| dp->::bbb::GG1110110::~GG1110110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110110E(Test__ZN3bbb9GG1110110E, "_ZN3bbb9GG1110110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110110C1Ev(); |
| extern void _ZN3bbb9GG1110110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110110E[] = { |
| NSPAIR(_ZN3bbb9GG1110110C1Ev), |
| NSPAIR(_ZN3bbb9GG1110110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1110110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110110E[]; |
| extern void _ZN3bbb9GG11101103fooEv(); |
| extern void _ZN3bbb9GG11101103barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101103barEv,_ZTv0_n16_N3bbb9GG11101103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101103barEv,_ZThn16_N3bbb9GG11101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11101103fooEv,_ZTv0_n20_N3bbb9GG11101103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101103fooEv,_ZThn16_N3bbb9GG11101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101103barEv,_ZTv0_n12_N3bbb9GG11101103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101103barEv,_ZThn28_N3bbb9GG11101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101103fooEv,_ZTv0_n16_N3bbb9GG11101103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101103fooEv,_ZThn28_N3bbb9GG11101103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101103barEv,_ZTv0_n12_N3bbb9GG11101103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101103barEv,_ZThn36_N3bbb9GG11101103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101103fooEv,_ZTv0_n16_N3bbb9GG11101103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101103fooEv,_ZThn36_N3bbb9GG11101103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11101103fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11101103barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101103barEv,_ZTv0_n16_N3bbb9GG11101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11101103fooEv,_ZTv0_n20_N3bbb9GG11101103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101103barEv,_ZTv0_n12_N3bbb9GG11101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101103fooEv,_ZTv0_n16_N3bbb9GG11101103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101103barEv,_ZTv0_n12_N3bbb9GG11101103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101103fooEv,_ZTv0_n16_N3bbb9GG11101103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110110E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1110110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1110110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110110E[] = { |
| {&(_ZTVN3bbb9GG1110110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1110110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1110110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110110E[]; |
| static VTBL_ENTRY alt_thunk_names135[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101103fooEv,_ZTv0_n16_N3bbb9GG11101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101103fooEv,_ZThn36_N3bbb9GG11101103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101103fooEv,_ZThn28_N3bbb9GG11101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11101103barEv,_ZTv0_n12_N3bbb9GG11101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101103barEv,_ZThn36_N3bbb9GG11101103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101103barEv,_ZThn28_N3bbb9GG11101103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11101103fooEv,_ZTv0_n20_N3bbb9GG11101103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101103fooEv,_ZThn16_N3bbb9GG11101103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101103barEv,_ZTv0_n16_N3bbb9GG11101103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101103barEv,_ZThn16_N3bbb9GG11101103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110110E = { "_ZN3bbb9GG1110110E", // class name |
| bases__ZN3bbb9GG1110110E, 6, |
| &(vtc__ZN3bbb9GG1110110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names135, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1110111 : virtual ::bbb::EE111 , ::bbb::FF011 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11101113barEv |
| virtual void foo(); // _ZN3bbb9GG11101113fooEv |
| ~GG1110111(); // tgen |
| GG1110111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1110111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC6{ v2 v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1110111 ::bar(){vfunc_called(this, "_ZN3bbb9GG11101113barEv");} |
| void bbb::GG1110111 ::foo(){vfunc_called(this, "_ZN3bbb9GG11101113fooEv");} |
| bbb::GG1110111 ::~GG1110111(){ note_dtor("_ZN3bbb9GG1110111E", this);} // tgen |
| bbb::GG1110111 ::GG1110111(){ note_ctor("_ZN3bbb9GG1110111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1110111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1110111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1110111E, buf); |
| ::bbb::GG1110111 *dp, &lv = *(dp=new (buf) ::bbb::GG1110111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1110111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1110111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1110111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110111E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1110111E"); |
| check_base_class_offset(lv, (::bbb::AA0*)(::bbb::FF011*), 0, "_ZN3bbb9GG1110111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF011*), ABISELECT(56,36), "_ZN3bbb9GG1110111E"); |
| check_base_class_offset(lv, (::bbb::FF011*), 0, "_ZN3bbb9GG1110111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1110111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1110111E); |
| dp->::bbb::GG1110111::~GG1110111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1110111E(Test__ZN3bbb9GG1110111E, "_ZN3bbb9GG1110111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1110111C1Ev(); |
| extern void _ZN3bbb9GG1110111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1110111E[] = { |
| NSPAIR(_ZN3bbb9GG1110111C1Ev), |
| NSPAIR(_ZN3bbb9GG1110111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA0E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA0E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF011E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF011E[]; |
| static Base_Class bases__ZN3bbb9GG1110111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA0E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF011E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110111E[]; |
| extern void _ZN3bbb9GG11101113fooEv(); |
| extern void _ZN3bbb9GG11101113barEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101113barEv,_ZTv0_n16_N3bbb9GG11101113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101113barEv,_ZThn16_N3bbb9GG11101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11101113fooEv,_ZTv0_n20_N3bbb9GG11101113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11101113fooEv,_ZThn16_N3bbb9GG11101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101113barEv,_ZTv0_n12_N3bbb9GG11101113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101113barEv,_ZThn28_N3bbb9GG11101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101113fooEv,_ZTv0_n16_N3bbb9GG11101113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11101113fooEv,_ZThn28_N3bbb9GG11101113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11101113barEv,_ZTv0_n12_N3bbb9GG11101113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101113barEv,_ZThn36_N3bbb9GG11101113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11101113fooEv,_ZTv0_n16_N3bbb9GG11101113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11101113fooEv,_ZThn36_N3bbb9GG11101113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1110111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11101113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11101113barEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101113barEv,_ZTv0_n16_N3bbb9GG11101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11101113fooEv,_ZTv0_n20_N3bbb9GG11101113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101113barEv,_ZTv0_n12_N3bbb9GG11101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101113fooEv,_ZTv0_n16_N3bbb9GG11101113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1110111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11101113barEv,_ZTv0_n12_N3bbb9GG11101113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11101113fooEv,_ZTv0_n16_N3bbb9GG11101113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110111E[]; |
| extern void _ZN3bbb5FF0113fooEv(); |
| extern void _ZN3bbb5FF0113barEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF011E__NS_9GG1110111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF0113fooEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF0113barEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1110111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1110111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1110111E[] = { |
| {&(_ZTVN3bbb9GG1110111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF011E__NS_9GG1110111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF011E__NS_9GG1110111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1110111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1110111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1110111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1110111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1110111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1110111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1110111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1110111E[]; |
| static VTBL_ENTRY alt_thunk_names136[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF0113fooEv,_ZTv0_n16_N3bbb5FF0113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113fooEv,_ZThn36_N3bbb5FF0113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF0113barEv,_ZTv0_n12_N3bbb5FF0113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF0113barEv,_ZThn36_N3bbb5FF0113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101113fooEv,_ZTv0_n16_N3bbb9GG11101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101113fooEv,_ZThn36_N3bbb9GG11101113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101113fooEv,_ZThn28_N3bbb9GG11101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11101113barEv,_ZTv0_n12_N3bbb9GG11101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11101113barEv,_ZThn36_N3bbb9GG11101113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11101113barEv,_ZThn28_N3bbb9GG11101113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11101113fooEv,_ZTv0_n20_N3bbb9GG11101113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101113fooEv,_ZThn16_N3bbb9GG11101113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11101113barEv,_ZTv0_n16_N3bbb9GG11101113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11101113barEv,_ZThn16_N3bbb9GG11101113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1110111E = { "_ZN3bbb9GG1110111E", // class name |
| bases__ZN3bbb9GG1110111E, 6, |
| &(vtc__ZN3bbb9GG1110111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1110111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1110111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1110111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1110111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names136, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111000 : virtual ::bbb::EE111 , ::bbb::FF100 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11110003fooEv |
| virtual void bar(); // _ZN3bbb9GG11110003barEv |
| ~GG1111000(); // tgen |
| GG1111000(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111000E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111000 ::foo(){vfunc_called(this, "_ZN3bbb9GG11110003fooEv");} |
| void bbb::GG1111000 ::bar(){vfunc_called(this, "_ZN3bbb9GG11110003barEv");} |
| bbb::GG1111000 ::~GG1111000(){ note_dtor("_ZN3bbb9GG1111000E", this);} // tgen |
| bbb::GG1111000 ::GG1111000(){ note_ctor("_ZN3bbb9GG1111000E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111000E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111000E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111000E, buf); |
| ::bbb::GG1111000 *dp, &lv = *(dp=new (buf) ::bbb::GG1111000()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111000E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111000E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111000E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111000E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111000E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1111000E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1111000E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1111000E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111000E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111000E); |
| dp->::bbb::GG1111000::~GG1111000(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111000E(Test__ZN3bbb9GG1111000E, "_ZN3bbb9GG1111000E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111000C1Ev(); |
| extern void _ZN3bbb9GG1111000D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111000E[] = { |
| NSPAIR(_ZN3bbb9GG1111000C1Ev), |
| NSPAIR(_ZN3bbb9GG1111000D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1111000E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111000E[]; |
| extern void _ZN3bbb9GG11110003barEv(); |
| extern void _ZN3bbb9GG11110003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110003barEv,_ZTv0_n16_N3bbb9GG11110003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110003barEv,_ZThn16_N3bbb9GG11110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11110003fooEv,_ZTv0_n20_N3bbb9GG11110003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110003fooEv,_ZThn16_N3bbb9GG11110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110003barEv,_ZTv0_n12_N3bbb9GG11110003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110003barEv,_ZThn28_N3bbb9GG11110003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110003fooEv,_ZTv0_n16_N3bbb9GG11110003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110003fooEv,_ZThn28_N3bbb9GG11110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110003fooEv,_ZTv0_n12_N3bbb9GG11110003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110003fooEv,_ZThn36_N3bbb9GG11110003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110003barEv,_ZTv0_n16_N3bbb9GG11110003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110003barEv,_ZThn36_N3bbb9GG11110003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111000E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111000E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11110003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11110003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110003barEv,_ZTv0_n16_N3bbb9GG11110003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11110003fooEv,_ZTv0_n20_N3bbb9GG11110003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110003barEv,_ZTv0_n12_N3bbb9GG11110003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110003fooEv,_ZTv0_n16_N3bbb9GG11110003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111000E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110003fooEv,_ZTv0_n12_N3bbb9GG11110003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110003barEv,_ZTv0_n16_N3bbb9GG11110003barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111000E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1111000E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1111000E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111000E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111000E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111000E[] = { |
| {&(_ZTVN3bbb9GG1111000E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1111000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1111000E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111000E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111000E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111000E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111000E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111000E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111000E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111000E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111000E[]; |
| static VTBL_ENTRY alt_thunk_names137[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110003fooEv,_ZTv0_n12_N3bbb9GG11110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110003fooEv,_ZThn36_N3bbb9GG11110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110003fooEv,_ZTv0_n16_N3bbb9GG11110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110003fooEv,_ZThn28_N3bbb9GG11110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110003barEv,_ZTv0_n12_N3bbb9GG11110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110003barEv,_ZThn28_N3bbb9GG11110003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11110003fooEv,_ZTv0_n20_N3bbb9GG11110003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110003fooEv,_ZThn16_N3bbb9GG11110003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110003barEv,_ZTv0_n16_N3bbb9GG11110003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110003barEv,_ZThn36_N3bbb9GG11110003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110003barEv,_ZThn16_N3bbb9GG11110003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111000E = { "_ZN3bbb9GG1111000E", // class name |
| bases__ZN3bbb9GG1111000E, 6, |
| &(vtc__ZN3bbb9GG1111000E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111000E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111000E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111000E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111000E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names137, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111001 : virtual ::bbb::EE111 , ::bbb::FF100 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11110013barEv |
| virtual void foo(); // _ZN3bbb9GG11110013fooEv |
| ~GG1111001(); // tgen |
| GG1111001(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111001E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111001 ::bar(){vfunc_called(this, "_ZN3bbb9GG11110013barEv");} |
| void bbb::GG1111001 ::foo(){vfunc_called(this, "_ZN3bbb9GG11110013fooEv");} |
| bbb::GG1111001 ::~GG1111001(){ note_dtor("_ZN3bbb9GG1111001E", this);} // tgen |
| bbb::GG1111001 ::GG1111001(){ note_ctor("_ZN3bbb9GG1111001E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111001E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111001E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111001E, buf); |
| ::bbb::GG1111001 *dp, &lv = *(dp=new (buf) ::bbb::GG1111001()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111001E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111001E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111001E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111001E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111001E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF100*), 0, "_ZN3bbb9GG1111001E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF100*), ABISELECT(56,36), "_ZN3bbb9GG1111001E"); |
| check_base_class_offset(lv, (::bbb::FF100*), 0, "_ZN3bbb9GG1111001E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111001E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111001E); |
| dp->::bbb::GG1111001::~GG1111001(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111001E(Test__ZN3bbb9GG1111001E, "_ZN3bbb9GG1111001E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111001C1Ev(); |
| extern void _ZN3bbb9GG1111001D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111001E[] = { |
| NSPAIR(_ZN3bbb9GG1111001C1Ev), |
| NSPAIR(_ZN3bbb9GG1111001D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF100E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF100E[]; |
| static Base_Class bases__ZN3bbb9GG1111001E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF100E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111001E[]; |
| extern void _ZN3bbb9GG11110013barEv(); |
| extern void _ZN3bbb9GG11110013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110013barEv,_ZTv0_n16_N3bbb9GG11110013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110013barEv,_ZThn16_N3bbb9GG11110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11110013fooEv,_ZTv0_n20_N3bbb9GG11110013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110013fooEv,_ZThn16_N3bbb9GG11110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110013barEv,_ZTv0_n12_N3bbb9GG11110013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110013barEv,_ZThn28_N3bbb9GG11110013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110013fooEv,_ZTv0_n16_N3bbb9GG11110013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110013fooEv,_ZThn28_N3bbb9GG11110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110013fooEv,_ZTv0_n12_N3bbb9GG11110013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110013fooEv,_ZThn36_N3bbb9GG11110013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110013barEv,_ZTv0_n16_N3bbb9GG11110013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110013barEv,_ZThn36_N3bbb9GG11110013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111001E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111001E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11110013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11110013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110013barEv,_ZTv0_n16_N3bbb9GG11110013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11110013fooEv,_ZTv0_n20_N3bbb9GG11110013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110013barEv,_ZTv0_n12_N3bbb9GG11110013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110013fooEv,_ZTv0_n16_N3bbb9GG11110013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111001E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110013fooEv,_ZTv0_n12_N3bbb9GG11110013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110013barEv,_ZTv0_n16_N3bbb9GG11110013barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111001E[]; |
| extern void _ZN3bbb5FF1003barEv(); |
| extern void _ZN3bbb5FF1003fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF100E__NS_9GG1111001E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1003barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1003fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1111001E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111001E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111001E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111001E[] = { |
| {&(_ZTVN3bbb9GG1111001E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF100E__NS_9GG1111001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF100E__NS_9GG1111001E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111001E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111001E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111001E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111001E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111001E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111001E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111001E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111001E[]; |
| static VTBL_ENTRY alt_thunk_names138[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1003barEv,_ZTv0_n16_N3bbb5FF1003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003barEv,_ZThn36_N3bbb5FF1003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1003fooEv,_ZTv0_n12_N3bbb5FF1003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1003fooEv,_ZThn36_N3bbb5FF1003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110013fooEv,_ZTv0_n12_N3bbb9GG11110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110013fooEv,_ZThn36_N3bbb9GG11110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110013fooEv,_ZTv0_n16_N3bbb9GG11110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110013fooEv,_ZThn28_N3bbb9GG11110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110013barEv,_ZTv0_n12_N3bbb9GG11110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110013barEv,_ZThn28_N3bbb9GG11110013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11110013fooEv,_ZTv0_n20_N3bbb9GG11110013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110013fooEv,_ZThn16_N3bbb9GG11110013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110013barEv,_ZTv0_n16_N3bbb9GG11110013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110013barEv,_ZThn36_N3bbb9GG11110013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110013barEv,_ZThn16_N3bbb9GG11110013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111001E = { "_ZN3bbb9GG1111001E", // class name |
| bases__ZN3bbb9GG1111001E, 6, |
| &(vtc__ZN3bbb9GG1111001E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111001E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111001E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111001E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111001E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names138, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111010 : virtual ::bbb::EE111 , ::bbb::FF101 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11110103fooEv |
| virtual void bar(); // _ZN3bbb9GG11110103barEv |
| ~GG1111010(); // tgen |
| GG1111010(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111010E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC6{ v1 v2 Fi} v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111010 ::foo(){vfunc_called(this, "_ZN3bbb9GG11110103fooEv");} |
| void bbb::GG1111010 ::bar(){vfunc_called(this, "_ZN3bbb9GG11110103barEv");} |
| bbb::GG1111010 ::~GG1111010(){ note_dtor("_ZN3bbb9GG1111010E", this);} // tgen |
| bbb::GG1111010 ::GG1111010(){ note_ctor("_ZN3bbb9GG1111010E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111010E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111010E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111010E, buf); |
| ::bbb::GG1111010 *dp, &lv = *(dp=new (buf) ::bbb::GG1111010()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111010E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111010E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111010E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111010E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111010E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1111010E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1111010E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1111010E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111010E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111010E); |
| dp->::bbb::GG1111010::~GG1111010(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111010E(Test__ZN3bbb9GG1111010E, "_ZN3bbb9GG1111010E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111010C1Ev(); |
| extern void _ZN3bbb9GG1111010D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111010E[] = { |
| NSPAIR(_ZN3bbb9GG1111010C1Ev), |
| NSPAIR(_ZN3bbb9GG1111010D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1111010E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111010E[]; |
| extern void _ZN3bbb9GG11110103barEv(); |
| extern void _ZN3bbb9GG11110103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110103barEv,_ZTv0_n16_N3bbb9GG11110103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110103barEv,_ZThn16_N3bbb9GG11110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11110103fooEv,_ZTv0_n20_N3bbb9GG11110103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110103fooEv,_ZThn16_N3bbb9GG11110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110103barEv,_ZTv0_n12_N3bbb9GG11110103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110103barEv,_ZThn28_N3bbb9GG11110103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110103fooEv,_ZTv0_n16_N3bbb9GG11110103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110103fooEv,_ZThn28_N3bbb9GG11110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110103fooEv,_ZTv0_n12_N3bbb9GG11110103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110103fooEv,_ZThn36_N3bbb9GG11110103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110103barEv,_ZTv0_n16_N3bbb9GG11110103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110103barEv,_ZThn36_N3bbb9GG11110103barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111010E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111010E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11110103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11110103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110103barEv,_ZTv0_n16_N3bbb9GG11110103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11110103fooEv,_ZTv0_n20_N3bbb9GG11110103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110103barEv,_ZTv0_n12_N3bbb9GG11110103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110103fooEv,_ZTv0_n16_N3bbb9GG11110103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111010E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110103fooEv,_ZTv0_n12_N3bbb9GG11110103fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110103barEv,_ZTv0_n16_N3bbb9GG11110103barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111010E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1111010E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1111010E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111010E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111010E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111010E[] = { |
| {&(_ZTVN3bbb9GG1111010E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1111010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1111010E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111010E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111010E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111010E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111010E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111010E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111010E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111010E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111010E[]; |
| static VTBL_ENTRY alt_thunk_names139[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110103fooEv,_ZTv0_n12_N3bbb9GG11110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110103fooEv,_ZThn36_N3bbb9GG11110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110103fooEv,_ZTv0_n16_N3bbb9GG11110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110103fooEv,_ZThn28_N3bbb9GG11110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110103barEv,_ZTv0_n12_N3bbb9GG11110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110103barEv,_ZThn28_N3bbb9GG11110103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11110103fooEv,_ZTv0_n20_N3bbb9GG11110103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110103fooEv,_ZThn16_N3bbb9GG11110103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110103barEv,_ZTv0_n16_N3bbb9GG11110103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110103barEv,_ZThn36_N3bbb9GG11110103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110103barEv,_ZThn16_N3bbb9GG11110103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111010E = { "_ZN3bbb9GG1111010E", // class name |
| bases__ZN3bbb9GG1111010E, 6, |
| &(vtc__ZN3bbb9GG1111010E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111010E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111010E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111010E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111010E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names139, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111011 : virtual ::bbb::EE111 , ::bbb::FF101 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11110113barEv |
| virtual void foo(); // _ZN3bbb9GG11110113fooEv |
| ~GG1111011(); // tgen |
| GG1111011(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111011E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC6{ v2 v1 Fi} v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111011 ::bar(){vfunc_called(this, "_ZN3bbb9GG11110113barEv");} |
| void bbb::GG1111011 ::foo(){vfunc_called(this, "_ZN3bbb9GG11110113fooEv");} |
| bbb::GG1111011 ::~GG1111011(){ note_dtor("_ZN3bbb9GG1111011E", this);} // tgen |
| bbb::GG1111011 ::GG1111011(){ note_ctor("_ZN3bbb9GG1111011E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111011E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111011E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111011E, buf); |
| ::bbb::GG1111011 *dp, &lv = *(dp=new (buf) ::bbb::GG1111011()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111011E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111011E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111011E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111011E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111011E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF101*), 0, "_ZN3bbb9GG1111011E"); |
| check_base_class_offset(lv, (::bbb::BB0*)(::bbb::FF101*), ABISELECT(56,36), "_ZN3bbb9GG1111011E"); |
| check_base_class_offset(lv, (::bbb::FF101*), 0, "_ZN3bbb9GG1111011E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111011E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111011E); |
| dp->::bbb::GG1111011::~GG1111011(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111011E(Test__ZN3bbb9GG1111011E, "_ZN3bbb9GG1111011E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111011C1Ev(); |
| extern void _ZN3bbb9GG1111011D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111011E[] = { |
| NSPAIR(_ZN3bbb9GG1111011C1Ev), |
| NSPAIR(_ZN3bbb9GG1111011D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB0E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB0E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB0E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF101E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF101E[]; |
| static Base_Class bases__ZN3bbb9GG1111011E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB0E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF101E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111011E[]; |
| extern void _ZN3bbb9GG11110113barEv(); |
| extern void _ZN3bbb9GG11110113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110113barEv,_ZTv0_n16_N3bbb9GG11110113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110113barEv,_ZThn16_N3bbb9GG11110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11110113fooEv,_ZTv0_n20_N3bbb9GG11110113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11110113fooEv,_ZThn16_N3bbb9GG11110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110113barEv,_ZTv0_n12_N3bbb9GG11110113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110113barEv,_ZThn28_N3bbb9GG11110113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110113fooEv,_ZTv0_n16_N3bbb9GG11110113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11110113fooEv,_ZThn28_N3bbb9GG11110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11110113fooEv,_ZTv0_n12_N3bbb9GG11110113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110113fooEv,_ZThn36_N3bbb9GG11110113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11110113barEv,_ZTv0_n16_N3bbb9GG11110113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11110113barEv,_ZThn36_N3bbb9GG11110113barEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111011E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111011E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11110113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11110113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110113barEv,_ZTv0_n16_N3bbb9GG11110113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11110113fooEv,_ZTv0_n20_N3bbb9GG11110113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110113barEv,_ZTv0_n12_N3bbb9GG11110113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110113fooEv,_ZTv0_n16_N3bbb9GG11110113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111011E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11110113fooEv,_ZTv0_n12_N3bbb9GG11110113fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11110113barEv,_ZTv0_n16_N3bbb9GG11110113barEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111011E[]; |
| extern void _ZN3bbb5FF1013barEv(); |
| extern void _ZN3bbb5FF1013fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF101E__NS_9GG1111011E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1013barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1013fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1111011E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111011E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111011E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111011E[] = { |
| {&(_ZTVN3bbb9GG1111011E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF101E__NS_9GG1111011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB0E__NS_5FF101E__NS_9GG1111011E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111011E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111011E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111011E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111011E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111011E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111011E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111011E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111011E[]; |
| static VTBL_ENTRY alt_thunk_names140[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1013barEv,_ZTv0_n16_N3bbb5FF1013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013barEv,_ZThn36_N3bbb5FF1013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1013fooEv,_ZTv0_n12_N3bbb5FF1013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1013fooEv,_ZThn36_N3bbb5FF1013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110113fooEv,_ZTv0_n12_N3bbb9GG11110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110113fooEv,_ZThn36_N3bbb9GG11110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110113fooEv,_ZTv0_n16_N3bbb9GG11110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110113fooEv,_ZThn28_N3bbb9GG11110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11110113barEv,_ZTv0_n12_N3bbb9GG11110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11110113barEv,_ZThn28_N3bbb9GG11110113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11110113fooEv,_ZTv0_n20_N3bbb9GG11110113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110113fooEv,_ZThn16_N3bbb9GG11110113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11110113barEv,_ZTv0_n16_N3bbb9GG11110113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11110113barEv,_ZThn36_N3bbb9GG11110113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11110113barEv,_ZThn16_N3bbb9GG11110113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111011E = { "_ZN3bbb9GG1111011E", // class name |
| bases__ZN3bbb9GG1111011E, 6, |
| &(vtc__ZN3bbb9GG1111011E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111011E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111011E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111011E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111011E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names140, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111100 : virtual ::bbb::EE111 , ::bbb::FF110 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11111003fooEv |
| virtual void bar(); // _ZN3bbb9GG11111003barEv |
| ~GG1111100(); // tgen |
| GG1111100(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111100E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111100 ::foo(){vfunc_called(this, "_ZN3bbb9GG11111003fooEv");} |
| void bbb::GG1111100 ::bar(){vfunc_called(this, "_ZN3bbb9GG11111003barEv");} |
| bbb::GG1111100 ::~GG1111100(){ note_dtor("_ZN3bbb9GG1111100E", this);} // tgen |
| bbb::GG1111100 ::GG1111100(){ note_ctor("_ZN3bbb9GG1111100E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111100E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111100E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111100E, buf); |
| ::bbb::GG1111100 *dp, &lv = *(dp=new (buf) ::bbb::GG1111100()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111100E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111100E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111100E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111100E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1111100E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1111100E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1111100E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111100E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111100E); |
| dp->::bbb::GG1111100::~GG1111100(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111100E(Test__ZN3bbb9GG1111100E, "_ZN3bbb9GG1111100E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111100C1Ev(); |
| extern void _ZN3bbb9GG1111100D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111100E[] = { |
| NSPAIR(_ZN3bbb9GG1111100C1Ev), |
| NSPAIR(_ZN3bbb9GG1111100D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1111100E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111100E[]; |
| extern void _ZN3bbb9GG11111003barEv(); |
| extern void _ZN3bbb9GG11111003fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111003barEv,_ZTv0_n16_N3bbb9GG11111003barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111003barEv,_ZThn16_N3bbb9GG11111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11111003fooEv,_ZTv0_n20_N3bbb9GG11111003fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111003fooEv,_ZThn16_N3bbb9GG11111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111003barEv,_ZTv0_n12_N3bbb9GG11111003barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111003barEv,_ZThn28_N3bbb9GG11111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111003fooEv,_ZTv0_n16_N3bbb9GG11111003fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111003fooEv,_ZThn28_N3bbb9GG11111003fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111003barEv,_ZTv0_n12_N3bbb9GG11111003barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111003barEv,_ZThn36_N3bbb9GG11111003barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111003fooEv,_ZTv0_n16_N3bbb9GG11111003fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111003fooEv,_ZThn36_N3bbb9GG11111003fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111100E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111100E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11111003barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11111003fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111003barEv,_ZTv0_n16_N3bbb9GG11111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11111003fooEv,_ZTv0_n20_N3bbb9GG11111003fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111003barEv,_ZTv0_n12_N3bbb9GG11111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111003fooEv,_ZTv0_n16_N3bbb9GG11111003fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111100E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111003barEv,_ZTv0_n12_N3bbb9GG11111003barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111003fooEv,_ZTv0_n16_N3bbb9GG11111003fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111100E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1111100E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1111100E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111100E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111100E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111100E[] = { |
| {&(_ZTVN3bbb9GG1111100E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1111100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1111100E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111100E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111100E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111100E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111100E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111100E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111100E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111100E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111100E[]; |
| static VTBL_ENTRY alt_thunk_names141[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111003fooEv,_ZTv0_n16_N3bbb9GG11111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111003fooEv,_ZThn36_N3bbb9GG11111003fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111003fooEv,_ZThn28_N3bbb9GG11111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11111003barEv,_ZTv0_n12_N3bbb9GG11111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111003barEv,_ZThn36_N3bbb9GG11111003barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111003barEv,_ZThn28_N3bbb9GG11111003barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11111003fooEv,_ZTv0_n20_N3bbb9GG11111003fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111003fooEv,_ZThn16_N3bbb9GG11111003fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111003barEv,_ZTv0_n16_N3bbb9GG11111003barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111003barEv,_ZThn16_N3bbb9GG11111003barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111100E = { "_ZN3bbb9GG1111100E", // class name |
| bases__ZN3bbb9GG1111100E, 6, |
| &(vtc__ZN3bbb9GG1111100E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111100E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111100E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111100E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111100E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names141, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111101 : virtual ::bbb::EE111 , ::bbb::FF110 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11111013barEv |
| virtual void foo(); // _ZN3bbb9GG11111013fooEv |
| ~GG1111101(); // tgen |
| GG1111101(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111101E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111101 ::bar(){vfunc_called(this, "_ZN3bbb9GG11111013barEv");} |
| void bbb::GG1111101 ::foo(){vfunc_called(this, "_ZN3bbb9GG11111013fooEv");} |
| bbb::GG1111101 ::~GG1111101(){ note_dtor("_ZN3bbb9GG1111101E", this);} // tgen |
| bbb::GG1111101 ::GG1111101(){ note_ctor("_ZN3bbb9GG1111101E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111101E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111101E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111101E, buf); |
| ::bbb::GG1111101 *dp, &lv = *(dp=new (buf) ::bbb::GG1111101()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111101E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111101E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111101E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111101E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF110*), 0, "_ZN3bbb9GG1111101E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF110*), ABISELECT(56,36), "_ZN3bbb9GG1111101E"); |
| check_base_class_offset(lv, (::bbb::FF110*), 0, "_ZN3bbb9GG1111101E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111101E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111101E); |
| dp->::bbb::GG1111101::~GG1111101(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111101E(Test__ZN3bbb9GG1111101E, "_ZN3bbb9GG1111101E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111101C1Ev(); |
| extern void _ZN3bbb9GG1111101D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111101E[] = { |
| NSPAIR(_ZN3bbb9GG1111101C1Ev), |
| NSPAIR(_ZN3bbb9GG1111101D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF110E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF110E[]; |
| static Base_Class bases__ZN3bbb9GG1111101E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF110E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111101E[]; |
| extern void _ZN3bbb9GG11111013barEv(); |
| extern void _ZN3bbb9GG11111013fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111013barEv,_ZTv0_n16_N3bbb9GG11111013barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111013barEv,_ZThn16_N3bbb9GG11111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11111013fooEv,_ZTv0_n20_N3bbb9GG11111013fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111013fooEv,_ZThn16_N3bbb9GG11111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111013barEv,_ZTv0_n12_N3bbb9GG11111013barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111013barEv,_ZThn28_N3bbb9GG11111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111013fooEv,_ZTv0_n16_N3bbb9GG11111013fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111013fooEv,_ZThn28_N3bbb9GG11111013fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111013barEv,_ZTv0_n12_N3bbb9GG11111013barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111013barEv,_ZThn36_N3bbb9GG11111013barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111013fooEv,_ZTv0_n16_N3bbb9GG11111013fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111013fooEv,_ZThn36_N3bbb9GG11111013fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111101E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111101E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11111013barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11111013fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111013barEv,_ZTv0_n16_N3bbb9GG11111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11111013fooEv,_ZTv0_n20_N3bbb9GG11111013fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111013barEv,_ZTv0_n12_N3bbb9GG11111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111013fooEv,_ZTv0_n16_N3bbb9GG11111013fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111101E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111013barEv,_ZTv0_n12_N3bbb9GG11111013barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111013fooEv,_ZTv0_n16_N3bbb9GG11111013fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111101E[]; |
| extern void _ZN3bbb5FF1103barEv(); |
| extern void _ZN3bbb5FF1103fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF110E__NS_9GG1111101E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1103barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1103fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1111101E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111101E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111101E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111101E[] = { |
| {&(_ZTVN3bbb9GG1111101E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF110E__NS_9GG1111101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF110E__NS_9GG1111101E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111101E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111101E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111101E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111101E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111101E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111101E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111101E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111101E[]; |
| static VTBL_ENTRY alt_thunk_names142[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1103fooEv,_ZTv0_n16_N3bbb5FF1103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103fooEv,_ZThn36_N3bbb5FF1103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1103barEv,_ZTv0_n12_N3bbb5FF1103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1103barEv,_ZThn36_N3bbb5FF1103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111013fooEv,_ZTv0_n16_N3bbb9GG11111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111013fooEv,_ZThn36_N3bbb9GG11111013fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111013fooEv,_ZThn28_N3bbb9GG11111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11111013barEv,_ZTv0_n12_N3bbb9GG11111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111013barEv,_ZThn36_N3bbb9GG11111013barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111013barEv,_ZThn28_N3bbb9GG11111013barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11111013fooEv,_ZTv0_n20_N3bbb9GG11111013fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111013fooEv,_ZThn16_N3bbb9GG11111013fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111013barEv,_ZTv0_n16_N3bbb9GG11111013barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111013barEv,_ZThn16_N3bbb9GG11111013barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111101E = { "_ZN3bbb9GG1111101E", // class name |
| bases__ZN3bbb9GG1111101E, 6, |
| &(vtc__ZN3bbb9GG1111101E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111101E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111101E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111101E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111101E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names142, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111110 : virtual ::bbb::EE111 , ::bbb::FF111 { |
| int pg; |
| virtual void foo(); // _ZN3bbb9GG11111103fooEv |
| virtual void bar(); // _ZN3bbb9GG11111103barEv |
| ~GG1111110(); // tgen |
| GG1111110(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111110E) C1{ VBC2{ VBC3{ v2 v1 Fi} BC4{ v2 v1 Fi} v2 v1 Fi} BC5{ BC3 VBC4 v2 v1 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111110 ::foo(){vfunc_called(this, "_ZN3bbb9GG11111103fooEv");} |
| void bbb::GG1111110 ::bar(){vfunc_called(this, "_ZN3bbb9GG11111103barEv");} |
| bbb::GG1111110 ::~GG1111110(){ note_dtor("_ZN3bbb9GG1111110E", this);} // tgen |
| bbb::GG1111110 ::GG1111110(){ note_ctor("_ZN3bbb9GG1111110E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111110E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111110E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111110E, buf); |
| ::bbb::GG1111110 *dp, &lv = *(dp=new (buf) ::bbb::GG1111110()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111110E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111110E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111110E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111110E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1111110E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1111110E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1111110E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111110E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111110E); |
| dp->::bbb::GG1111110::~GG1111110(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111110E(Test__ZN3bbb9GG1111110E, "_ZN3bbb9GG1111110E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111110C1Ev(); |
| extern void _ZN3bbb9GG1111110D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111110E[] = { |
| NSPAIR(_ZN3bbb9GG1111110C1Ev), |
| NSPAIR(_ZN3bbb9GG1111110D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1111110E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111110E[]; |
| extern void _ZN3bbb9GG11111103barEv(); |
| extern void _ZN3bbb9GG11111103fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111103barEv,_ZTv0_n16_N3bbb9GG11111103barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111103barEv,_ZThn16_N3bbb9GG11111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11111103fooEv,_ZTv0_n20_N3bbb9GG11111103fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111103fooEv,_ZThn16_N3bbb9GG11111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111103barEv,_ZTv0_n12_N3bbb9GG11111103barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111103barEv,_ZThn28_N3bbb9GG11111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111103fooEv,_ZTv0_n16_N3bbb9GG11111103fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111103fooEv,_ZThn28_N3bbb9GG11111103fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111103barEv,_ZTv0_n12_N3bbb9GG11111103barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111103barEv,_ZThn36_N3bbb9GG11111103barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111103fooEv,_ZTv0_n16_N3bbb9GG11111103fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111103fooEv,_ZThn36_N3bbb9GG11111103fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111110E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111110E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11111103barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11111103fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111103barEv,_ZTv0_n16_N3bbb9GG11111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11111103fooEv,_ZTv0_n20_N3bbb9GG11111103fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111103barEv,_ZTv0_n12_N3bbb9GG11111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111103fooEv,_ZTv0_n16_N3bbb9GG11111103fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111110E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111103barEv,_ZTv0_n12_N3bbb9GG11111103barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111103fooEv,_ZTv0_n16_N3bbb9GG11111103fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111110E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1111110E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1111110E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111110E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111110E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111110E[] = { |
| {&(_ZTVN3bbb9GG1111110E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1111110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1111110E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111110E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111110E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111110E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111110E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111110E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111110E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111110E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111110E[]; |
| static VTBL_ENTRY alt_thunk_names143[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111103fooEv,_ZTv0_n16_N3bbb9GG11111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111103fooEv,_ZThn36_N3bbb9GG11111103fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111103fooEv,_ZThn28_N3bbb9GG11111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11111103barEv,_ZTv0_n12_N3bbb9GG11111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111103barEv,_ZThn36_N3bbb9GG11111103barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111103barEv,_ZThn28_N3bbb9GG11111103barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11111103fooEv,_ZTv0_n20_N3bbb9GG11111103fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111103fooEv,_ZThn16_N3bbb9GG11111103fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111103barEv,_ZTv0_n16_N3bbb9GG11111103barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111103barEv,_ZThn16_N3bbb9GG11111103barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111110E = { "_ZN3bbb9GG1111110E", // class name |
| bases__ZN3bbb9GG1111110E, 6, |
| &(vtc__ZN3bbb9GG1111110E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111110E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111110E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111110E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111110E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names143, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |
| #ifdef __cplusplus |
| namespace bbb { |
| struct GG1111111 : virtual ::bbb::EE111 , ::bbb::FF111 { |
| int pg; |
| virtual void bar(); // _ZN3bbb9GG11111113barEv |
| virtual void foo(); // _ZN3bbb9GG11111113fooEv |
| ~GG1111111(); // tgen |
| GG1111111(); // tgen |
| }; |
| //SIG(1 _ZN3bbb9GG1111111E) C1{ VBC2{ VBC3{ v1 v2 Fi} BC4{ v1 v2 Fi} v1 v2 Fi} BC5{ BC3 VBC4 v1 v2 Fi} v1 v2 Fi} |
| } |
| namespace bbb { |
| void bbb::GG1111111 ::bar(){vfunc_called(this, "_ZN3bbb9GG11111113barEv");} |
| void bbb::GG1111111 ::foo(){vfunc_called(this, "_ZN3bbb9GG11111113fooEv");} |
| bbb::GG1111111 ::~GG1111111(){ note_dtor("_ZN3bbb9GG1111111E", this);} // tgen |
| bbb::GG1111111 ::GG1111111(){ note_ctor("_ZN3bbb9GG1111111E", this);} // tgen |
| } |
| static void Test__ZN3bbb9GG1111111E() |
| { |
| extern Class_Descriptor cd__ZN3bbb9GG1111111E; |
| void *lvp; |
| { |
| ABISELECT(double,int) buf[ABISELECT(10,12)]; |
| init_test(&cd__ZN3bbb9GG1111111E, buf); |
| ::bbb::GG1111111 *dp, &lv = *(dp=new (buf) ::bbb::GG1111111()); |
| lvp = (void*)&lv; |
| check2(sizeof(lv), ABISELECT(72,44), "sizeof(_ZN3bbb9GG1111111E)"); |
| check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(_ZN3bbb9GG1111111E)"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::EE111*), ABISELECT(40,28), "_ZN3bbb9GG1111111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111111E"); |
| check_base_class_offset(lv, (::bbb::EE111*), ABISELECT(24,16), "_ZN3bbb9GG1111111E"); |
| check_base_class_offset(lv, (::bbb::AA1*)(::bbb::FF111*), 0, "_ZN3bbb9GG1111111E"); |
| check_base_class_offset(lv, (::bbb::BB1*)(::bbb::FF111*), ABISELECT(56,36), "_ZN3bbb9GG1111111E"); |
| check_base_class_offset(lv, (::bbb::FF111*), 0, "_ZN3bbb9GG1111111E"); |
| check_field_offset(lv, pg, ABISELECT(16,12), "_ZN3bbb9GG1111111E.pg"); |
| test_class_info(&lv, &cd__ZN3bbb9GG1111111E); |
| dp->::bbb::GG1111111::~GG1111111(); |
| } |
| Check_Ctor_Dtor_Calls(lvp); |
| } |
| static Arrange_To_Call_Me v_ZN3bbb9GG1111111E(Test__ZN3bbb9GG1111111E, "_ZN3bbb9GG1111111E", ABISELECT(72,44)); |
| |
| #else // __cplusplus |
| |
| extern void _ZN3bbb9GG1111111C1Ev(); |
| extern void _ZN3bbb9GG1111111D1Ev(); |
| Name_Map name_map__ZN3bbb9GG1111111E[] = { |
| NSPAIR(_ZN3bbb9GG1111111C1Ev), |
| NSPAIR(_ZN3bbb9GG1111111D1Ev), |
| {0,0} |
| }; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5EE111E; |
| extern VTBL_ENTRY _ZTIN3bbb5EE111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5EE111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5EE111E[]; |
| extern Class_Descriptor cd__ZN3bbb3AA1E; |
| extern VTBL_ENTRY _ZTIN3bbb3AA1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3AA1E[]; |
| extern Class_Descriptor cd__ZN3bbb3BB1E; |
| extern VTBL_ENTRY _ZTIN3bbb3BB1E[]; |
| extern VTBL_ENTRY _ZTVN3bbb3BB1E[]; |
| extern Class_Descriptor cd__ZN3bbb5FF111E; |
| extern VTBL_ENTRY _ZTIN3bbb5FF111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb5FF111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb5FF111E[]; |
| static Base_Class bases__ZN3bbb9GG1111111E[] = { |
| // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual |
| {&cd__ZN3bbb3AA1E, ABISELECT(40,28), //bcp->offset |
| 14, //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 |
| 1, //init_seq |
| 2, //immediately_derived |
| 0, 1}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(24,16), //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 2, //init_seq |
| 2, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb5EE111E, ABISELECT(24,16), //bcp->offset |
| 7, //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}, |
| {&cd__ZN3bbb3AA1E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 2, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 0, //bcp->base_subarray_index_in_construction_vtbl_array |
| 5, //init_seq |
| 5, //immediately_derived |
| 0, 0}, |
| {&cd__ZN3bbb3BB1E, ABISELECT(56,36), //bcp->offset |
| 20, //bcp->virtual_function_table_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__ZN3bbb5FF111E, 0, //bcp->offset |
| -1, //bcp->virtual_function_table_offset |
| 3, //num_negative_vtable_entries(t, bcp) |
| 0, //bcp->index_in_construction_vtbl_array |
| 2, //bcp->base_subarray_index_in_construction_vtbl_array |
| 6, //init_seq |
| -1, //immediately_derived |
| 1, 0}, |
| {0}}; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111111E[]; |
| extern void _ZN3bbb9GG11111113barEv(); |
| extern void _ZN3bbb9GG11111113fooEv(); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111113barEv,_ZTv0_n16_N3bbb9GG11111113barEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111113barEv,_ZThn16_N3bbb9GG11111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n40_N3bbb9GG11111113fooEv,_ZTv0_n20_N3bbb9GG11111113fooEv)(); |
| extern void ABISELECT(_ZThn24_N3bbb9GG11111113fooEv,_ZThn16_N3bbb9GG11111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111113barEv,_ZTv0_n12_N3bbb9GG11111113barEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111113barEv,_ZThn28_N3bbb9GG11111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111113fooEv,_ZTv0_n16_N3bbb9GG11111113fooEv)(); |
| extern void ABISELECT(_ZThn40_N3bbb9GG11111113fooEv,_ZThn28_N3bbb9GG11111113fooEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n24_N3bbb9GG11111113barEv,_ZTv0_n12_N3bbb9GG11111113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111113barEv,_ZThn36_N3bbb9GG11111113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb9GG11111113fooEv,_ZTv0_n16_N3bbb9GG11111113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb9GG11111113fooEv,_ZThn36_N3bbb9GG11111113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY vtc__ZN3bbb9GG1111111E[] = { |
| ABISELECT(40,28), |
| ABISELECT(24,16), |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb9GG11111113barEv, |
| (VTBL_ENTRY)&_ZN3bbb9GG11111113fooEv, |
| ABISELECT(-24,-16), |
| ABISELECT(-24,-16), |
| ABISELECT(16,12), |
| ABISELECT(-24,-16), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111113barEv,_ZTv0_n16_N3bbb9GG11111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N3bbb9GG11111113fooEv,_ZTv0_n20_N3bbb9GG11111113fooEv), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| ABISELECT(-40,-28), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111113barEv,_ZTv0_n12_N3bbb9GG11111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111113fooEv,_ZTv0_n16_N3bbb9GG11111113fooEv), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb9GG1111111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb9GG11111113barEv,_ZTv0_n12_N3bbb9GG11111113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb9GG11111113fooEv,_ZTv0_n16_N3bbb9GG11111113fooEv), |
| }; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111111E[]; |
| extern void _ZN3bbb5FF1113barEv(); |
| extern void _ZN3bbb5FF1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5FF111E__NS_9GG1111111E[] = { |
| ABISELECT(56,36), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5FF1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5FF1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv)(); |
| extern void ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1111111E[] = { |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| ABISELECT(-56,-36), |
| (VTBL_ENTRY)&(_ZTIN3bbb5FF111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), |
| }; |
| extern void _ZN3bbb5EE1113barEv(); |
| extern void _ZN3bbb5EE1113fooEv(); |
| static VTBL_ENTRY _tg__ZTVN3bbb5EE111E__NS_9GG1111111E[] = { |
| ABISELECT(16,12), |
| 0, |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&_ZN3bbb5EE1113barEv, |
| (VTBL_ENTRY)&_ZN3bbb5EE1113fooEv, |
| }; |
| extern void ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv)() __attribute__((weak)); |
| extern void ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv)(); |
| extern void ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv)() __attribute__((weak)); |
| static VTBL_ENTRY _tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111111E[] = { |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| ABISELECT(-16,-12), |
| (VTBL_ENTRY)&(_ZTIN3bbb5EE111E[0]), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), |
| (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), |
| }; |
| static VTT_ENTRY vtt__ZN3bbb9GG1111111E[] = { |
| {&(_ZTVN3bbb9GG1111111E[5]), 5,26}, |
| {&(_tg__ZTVN3bbb5FF111E__NS_9GG1111111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3BB1E__NS_5FF111E__NS_9GG1111111E[4]), 4,6}, |
| {&(_ZTVN3bbb9GG1111111E[12]), 12,26}, |
| {&(_ZTVN3bbb9GG1111111E[18]), 18,26}, |
| {&(_ZTVN3bbb9GG1111111E[24]), 24,26}, |
| {&(_tg__ZTVN3bbb5EE111E__NS_9GG1111111E[3]), 3,5}, |
| {&(_tg__ZTVN3bbb3AA1E__NS_5EE111E__NS_9GG1111111E[4]), 4,6}, |
| }; |
| extern VTBL_ENTRY _ZTIN3bbb9GG1111111E[]; |
| extern VTBL_ENTRY _ZTVN3bbb9GG1111111E[]; |
| extern VTBL_ENTRY * __attribute__((weak))_ZTTN3bbb9GG1111111E[]; |
| static VTBL_ENTRY alt_thunk_names144[] = { |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5EE1113fooEv,_ZTv0_n16_N3bbb5EE1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113fooEv,_ZThn12_N3bbb5EE1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5EE1113barEv,_ZTv0_n12_N3bbb5EE1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn16_N3bbb5EE1113barEv,_ZThn12_N3bbb5EE1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb5FF1113fooEv,_ZTv0_n16_N3bbb5FF1113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113fooEv,_ZThn36_N3bbb5FF1113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb5FF1113barEv,_ZTv0_n12_N3bbb5FF1113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb5FF1113barEv,_ZThn36_N3bbb5FF1113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111113fooEv,_ZTv0_n16_N3bbb9GG11111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111113fooEv,_ZThn36_N3bbb9GG11111113fooEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111113fooEv,_ZThn28_N3bbb9GG11111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3bbb9GG11111113barEv,_ZTv0_n12_N3bbb9GG11111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn56_N3bbb9GG11111113barEv,_ZThn36_N3bbb9GG11111113barEv), |
| (VTBL_ENTRY)ABISELECT(_ZThn40_N3bbb9GG11111113barEv,_ZThn28_N3bbb9GG11111113barEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N3bbb9GG11111113fooEv,_ZTv0_n20_N3bbb9GG11111113fooEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111113fooEv,_ZThn16_N3bbb9GG11111113fooEv), |
| ALT_NAMES_TERMINATOR, |
| (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3bbb9GG11111113barEv,_ZTv0_n16_N3bbb9GG11111113barEv), // |
| (VTBL_ENTRY)ABISELECT(_ZThn24_N3bbb9GG11111113barEv,_ZThn16_N3bbb9GG11111113barEv), |
| ALT_NAMES_TERMINATOR, |
| ALT_NAMES_TERMINATOR}; |
| Class_Descriptor cd__ZN3bbb9GG1111111E = { "_ZN3bbb9GG1111111E", // class name |
| bases__ZN3bbb9GG1111111E, 6, |
| &(vtc__ZN3bbb9GG1111111E[0]), // expected_vtbl_contents |
| &(vtt__ZN3bbb9GG1111111E[0]), // expected_vtt_contents |
| ABISELECT(72,44), // object size |
| NSPAIRA(_ZTIN3bbb9GG1111111E),ABISELECT(56,32), //typeinfo_var |
| NSPAIRA(_ZTVN3bbb9GG1111111E),26, //virtual function table var |
| 5, // offset into main vftv pointed to by object[0] |
| NSPAIRA(_ZTTN3bbb9GG1111111E),8, //virtual table table var |
| 6, // n_initialized_bases |
| 1, // has_virtual_bases |
| 0, // has_class_type_fields |
| alt_thunk_names144, |
| }; |
| #endif // __cplusplus |
| |
| //============================================================================ |
| |