diff options
8 files changed, 17 insertions, 39 deletions
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp index 6bdb49cad88..cd57769df2e 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -43,7 +42,7 @@ struct ThrowsCounted { explicit ThrowsCounted() { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; } diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp index f59ea8256c0..bfb74b99ecd 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -43,7 +42,7 @@ struct ThrowsCounted { explicit ThrowsCounted() { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; } diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp index 3f73b60a6e2..befe30a6c03 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -43,7 +42,7 @@ struct ThrowsCounted { explicit ThrowsCounted() { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; } diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp index 65f9523f8c1..323d00f7c9c 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -42,7 +41,7 @@ struct ThrowsCounted { explicit ThrowsCounted() { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; } diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp index 51fb06b9a05..6149838218e 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -43,7 +42,7 @@ struct ThrowsCounted { explicit ThrowsCounted(int&& x) { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; x = 0; diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp index 58866e16551..cf6af7472b8 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp @@ -20,7 +20,6 @@ #include "test_macros.h" #include "test_iterators.h" -#include "test_throw.h" struct Counted { static int count; @@ -43,7 +42,7 @@ struct ThrowsCounted { explicit ThrowsCounted(int&& x) { ++constructed; if (throw_after > 0 && --throw_after == 0) { - test_throw<int>(); + TEST_THROW(1); } ++count; x = 0; diff --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h index affd26ba033..534c13a2fe0 100644 --- a/libcxx/test/support/test_macros.h +++ b/libcxx/test/support/test_macros.h @@ -140,4 +140,15 @@ struct is_same<T, T> { enum {value = 1}; }; static_assert(test_macros_detail::is_same<__VA_ARGS__>::value, \ "Types differ uexpectedly") +#ifndef TEST_HAS_NO_EXCEPTIONS +#define TEST_THROW(...) throw __VA_ARGS__ +#else +#if defined(__GNUC__) +#define TEST_THROW(...) __builtin_abort() +#else +#include <stdlib.h> +#define TEST_THROW(...) ::abort() +#endif +#endif + #endif // SUPPORT_TEST_MACROS_HPP diff --git a/libcxx/test/support/test_throw.h b/libcxx/test/support/test_throw.h deleted file mode 100644 index 805cb049de8..00000000000 --- a/libcxx/test/support/test_throw.h +++ /dev/null @@ -1,27 +0,0 @@ -// -*- C++ -*- -//===---------------------------- test_macros.h ---------------------------===// -// -// 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. -// -//===----------------------------------------------------------------------===// - -#ifndef SUPPORT_TEST_THROW_H -#define SUPPORT_TEST_THROW_H - -#include "test_macros.h" -#include <cstdlib> - -template <class Ex> -TEST_NORETURN -inline void test_throw() { -#ifndef TEST_HAS_NO_EXCEPTIONS - throw Ex(); -#else - std::abort(); -#endif -} - -#endif // SUPPORT_TEST_THROW_H |