Fix debug mode build w/o exceptions

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290652 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2016-12-28 05:20:27 +00:00
parent 01eb99ac7b
commit 51d64bbc8c
3 changed files with 8 additions and 1 deletions

View File

@@ -82,6 +82,9 @@ bool __libcpp_set_debug_function(__libcpp_debug_function_type __func);
// Setup the throwing debug handler during dynamic initialization. // Setup the throwing debug handler during dynamic initialization.
#if _LIBCPP_DEBUG_LEVEL >= 1 && defined(_LIBCPP_DEBUG_USE_EXCEPTIONS) #if _LIBCPP_DEBUG_LEVEL >= 1 && defined(_LIBCPP_DEBUG_USE_EXCEPTIONS)
# if defined(_LIBCPP_NO_EXCEPTIONS)
# error _LIBCPP_DEBUG_USE_EXCEPTIONS cannot be used when exceptions are disabled.
# endif
static bool __init_dummy = __libcpp_set_debug_function(__libcpp_throw_debug_function); static bool __init_dummy = __libcpp_set_debug_function(__libcpp_throw_debug_function);
#endif #endif

View File

@@ -16,7 +16,7 @@ New entries should be added directly below the "Version" header.
Version 4.0 Version 4.0
----------- -----------
* rTBD - Add _LIBCPP_ASSERT debug handling functions * r290651 - Add _LIBCPP_ASSERT debug handling functions
All Platforms All Platforms
------------- -------------

View File

@@ -41,7 +41,11 @@ _LIBCPP_NORETURN void __libcpp_abort_debug_function(__libcpp_debug_info const& i
} }
_LIBCPP_NORETURN void __libcpp_throw_debug_function(__libcpp_debug_info const& info) { _LIBCPP_NORETURN void __libcpp_throw_debug_function(__libcpp_debug_info const& info) {
#ifndef _LIBCPP_NO_EXCEPTIONS
throw __libcpp_debug_exception(info); throw __libcpp_debug_exception(info);
#else
__libcpp_abort_debug_function(info);
#endif
} }
struct __libcpp_debug_exception::__libcpp_debug_exception_imp { struct __libcpp_debug_exception::__libcpp_debug_exception_imp {