aboutsummaryrefslogtreecommitdiff
path: root/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/libcxx/language.support/cxa_deleted_virtual.pass.cpp')
-rw-r--r--test/libcxx/language.support/cxa_deleted_virtual.pass.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp b/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp
new file mode 100644
index 000000000000..ddef5d00e5da
--- /dev/null
+++ b/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp
@@ -0,0 +1,27 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++98, c++03
+
+// Test exporting the symbol: "__cxa_deleted_virtual" in macosx
+// But don't expect the symbol to be exported in previous versions.
+//
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
+// XFAIL: with_system_cxx_lib=macosx10.8
+// XFAIL: with_system_cxx_lib=macosx10.7
+
+struct S { virtual void f() = delete; virtual ~S() {} };
+int main() {
+ S *s = new S;
+ delete s;
+}