aboutsummaryrefslogtreecommitdiff
path: root/test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp')
-rw-r--r--test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp b/test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp
new file mode 100644
index 000000000000..dc27d9f39ce3
--- /dev/null
+++ b/test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp
@@ -0,0 +1,13 @@
+// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr %s -o %t
+// RUN: %run %t
+
+// REQUIRES: cxxabi
+
+int volatile n;
+
+struct A { virtual ~A() {} };
+struct B: virtual A {};
+struct C: virtual A { ~C() { n = 0; } };
+struct D: virtual B, virtual C {};
+
+int main() { delete new D; }