summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2013-03-23 17:27:16 +0000
committerHoward Hinnant <hhinnant@apple.com>2013-03-23 17:27:16 +0000
commit65a87ccdbf0c5ffc387e711946ddcb417efb48b8 (patch)
treea10d0696bf2ab6a31c22035a22e2c4bb9e8cca3f /libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h
parent794e05b03b394038490043d80647c97f96cca5eb (diff)
downloadbcm5719-llvm-65a87ccdbf0c5ffc387e711946ddcb417efb48b8.tar.gz
bcm5719-llvm-65a87ccdbf0c5ffc387e711946ddcb417efb48b8.zip
This is a start at making the libc++ test suite friendlier to the -fnoexceptions flag. Although this is not a complete solution, it does reduce the number of test failures on OS X from 467 to 128 on OS X when -fno-exceptions is enabled, and does not impact the number of failures at all when -fno-exceptions is not enabled. The bulk of this code was donated anonymously.
llvm-svn: 177824
Diffstat (limited to 'libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h')
-rw-r--r--libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h b/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h
index c5da7e6390d..eed33a0e3ea 100644
--- a/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h
+++ b/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/test_allocator.h
@@ -48,8 +48,13 @@ public:
const_pointer address(const_reference x) const {return &x;}
pointer allocate(size_type n, const void* = 0)
{
- if (count >= throw_after)
+ if (count >= throw_after) {
+#ifndef _LIBCPP_NO_EXCEPTIONS
throw std::bad_alloc();
+#else
+ std::terminate();
+#endif
+ }
++count;
return (pointer)std::malloc(n * sizeof(T));
}
OpenPOWER on IntegriCloud