You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
949 B
49 lines
949 B
4 months ago
|
// Compile with "cl /c /Zi /GR- ComplexPaddingTest.cpp"
|
||
|
// Link with "link ComplexPaddingTest.obj /debug /nodefaultlib /entry:main"
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
extern "C" using at_exit_handler = void();
|
||
|
|
||
|
int atexit(at_exit_handler handler) { return 0; }
|
||
|
|
||
|
struct TestVB {
|
||
|
static void operator delete(void *ptr, size_t sz) {}
|
||
|
virtual ~TestVB() {}
|
||
|
virtual void IntroFunction1() {}
|
||
|
int X;
|
||
|
} A;
|
||
|
|
||
|
struct TestNVB {
|
||
|
static void operator delete(void *ptr, size_t sz) {}
|
||
|
virtual ~TestNVB() {}
|
||
|
virtual void IntroFunction2() {}
|
||
|
int Y;
|
||
|
} B;
|
||
|
|
||
|
struct TestVBLayout
|
||
|
: public virtual TestVB,
|
||
|
public TestNVB {
|
||
|
static void operator delete(void *ptr, size_t sz) {}
|
||
|
int Z;
|
||
|
} C;
|
||
|
|
||
|
struct TestIVBBase : public virtual TestVB {
|
||
|
int A;
|
||
|
} D;
|
||
|
|
||
|
struct TestIVBDerived : public TestIVBBase {
|
||
|
int B;
|
||
|
} E;
|
||
|
|
||
|
struct TestIVBMergedDerived
|
||
|
: public virtual TestVB,
|
||
|
public TestIVBBase {
|
||
|
int B;
|
||
|
} F;
|
||
|
|
||
|
int main(int argc, char **argv) {
|
||
|
|
||
|
return 0;
|
||
|
}
|