// This file is distributed under the University of Illinois Open Source License. | |
// See LICENSE.TXT for details. | |
// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c" | |
// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o | |
// RUN: c_compiler -c %s -I "common" -o %t3.o | |
// RUN: linker -o %t2%exeext %t1.o %t2.o %t3.o | |
// RUN: runtool %t2%exeext | checker "TEST PASSED" | |
#include "testsuite.h" | |
#ifdef __cplusplus | |
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 | |
//============================================================================ | |