|  | // 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; | 
|  | } |