diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-26 19:45:00 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-26 19:45:00 +0000 |
commit | 12f3ca4cdb95b193af905a00e722a4dcb40b3de3 (patch) | |
tree | ae1a7fcfc24a8d4b23206c57121c3f361d4b7f84 /test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp | |
parent | d99dafe2e4a385dd2a6c76da6d8258deb100657b (diff) |
Diffstat (limited to 'test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp')
-rw-r--r-- | test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp b/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp new file mode 100644 index 0000000000000..44a4e304ccb68 --- /dev/null +++ b/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp @@ -0,0 +1,48 @@ +// 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; +} |