summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp')
-rw-r--r--llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp b/llvm/test/tools/llvm-pdbdump/Inputs/ComplexPaddingTest.cpp
new file mode 100644
index 00000000000..44a4e304ccb
--- /dev/null
+++ b/llvm/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;
+}
OpenPOWER on IntegriCloud