Cleanup quick_exit tests and get them passing in C++03.
authorEric Fiselier <eric@efcs.ca>
Wed, 19 Nov 2014 01:45:12 +0000 (01:45 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 19 Nov 2014 01:45:12 +0000 (01:45 +0000)
Wrap the original test in _LIBCPP_HAS_QUICK_EXIT so it only runs when we have
quick_exit and add two new tests that check that when _LIBCPP_HAS_QUICK_EXIT
is not defined then no definition of std::at_quick_exit or std::quick_exit are
available.

llvm-svn: 222298

libcxx/test/language.support/support.start.term/quick_exit.pass.cpp
libcxx/test/language.support/support.start.term/quick_exit_check1.fail.cpp [new file with mode: 0644]
libcxx/test/language.support/support.start.term/quick_exit_check2.fail.cpp [new file with mode: 0644]

index 1945a1b..3d95039 100644 (file)
 // test quick_exit and at_quick_exit
 
 #include <cstdlib>
-#include <type_traits>
 
 void f() {}
 
 int main()
 {
+#ifdef _LIBCPP_HAS_QUICK_EXIT
     std::at_quick_exit(f);
-    quick_exit(0);
+    std::quick_exit(0);
+#endif
 }
diff --git a/libcxx/test/language.support/support.start.term/quick_exit_check1.fail.cpp b/libcxx/test/language.support/support.start.term/quick_exit_check1.fail.cpp
new file mode 100644 (file)
index 0000000..8b97293
--- /dev/null
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+//                     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.
+//
+//===----------------------------------------------------------------------===//
+//
+
+// test that referencing at_quick_exit when _LIBCPP_HAS_QUICK_EXIT is not defined
+// results in a compile error.
+
+#include <cstdlib>
+
+void f() {}
+
+int main()
+{
+#ifndef _LIBCPP_HAS_QUICK_EXIT
+    std::at_quick_exit(f);
+#else
+#error
+#endif
+}
diff --git a/libcxx/test/language.support/support.start.term/quick_exit_check2.fail.cpp b/libcxx/test/language.support/support.start.term/quick_exit_check2.fail.cpp
new file mode 100644 (file)
index 0000000..3959141
--- /dev/null
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+//                     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.
+//
+//===----------------------------------------------------------------------===//
+//
+
+// test that referencing quick_exit when _LIBCPP_HAS_QUICK_EXIT is not defined
+// results in a compile error.
+
+#include <cstdlib>
+
+void f() {}
+
+int main()
+{
+#ifndef _LIBCPP_HAS_QUICK_EXIT
+    std::quick_exit(0);
+#else
+#error
+#endif
+}