Import a slightly newer libc++, with some bugs fixed that were found by running
the test suite on FreeBSD. Approved by: dim (mentor)
This commit is contained in:
parent
ff1fc6fb5c
commit
eccfeea8a5
@ -245,6 +245,10 @@ typedef __char32_t char32_t;
|
||||
#define _LIBCPP_HAS_NO_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if __FreeBSD__
|
||||
#define _LIBCPP_HAS_QUICK_EXIT
|
||||
#endif
|
||||
|
||||
#if (__has_feature(cxx_noexcept))
|
||||
# define _NOEXCEPT noexcept
|
||||
# define _NOEXCEPT_(x) noexcept(x)
|
||||
|
@ -131,6 +131,10 @@ using ::mbtowc;
|
||||
using ::wctomb;
|
||||
using ::mbstowcs;
|
||||
using ::wcstombs;
|
||||
#ifdef _LIBCPP_HAS_QUICK_EXIT
|
||||
using ::at_quick_exit;
|
||||
using ::quick_exit;
|
||||
#endif
|
||||
|
||||
// MSVC already has the correct prototype in <stdlib.h.h> #ifdef __cplusplus
|
||||
#if !defined(_MSC_VER) && !defined(__sun__)
|
||||
|
@ -114,22 +114,26 @@ exception::~exception() _NOEXCEPT
|
||||
{
|
||||
}
|
||||
|
||||
bad_exception::~bad_exception() _NOEXCEPT
|
||||
{
|
||||
}
|
||||
|
||||
const char* exception::what() const _NOEXCEPT
|
||||
{
|
||||
return "std::exception";
|
||||
}
|
||||
|
||||
#endif // _LIBCPPABI_VERSION
|
||||
#endif //LIBCXXRT
|
||||
#ifndef _LIBCPPABI_VERSION
|
||||
|
||||
bad_exception::~bad_exception() _NOEXCEPT
|
||||
{
|
||||
}
|
||||
|
||||
const char* bad_exception::what() const _NOEXCEPT
|
||||
{
|
||||
return "std::bad_exception";
|
||||
}
|
||||
|
||||
#endif // _LIBCPPABI_VERSION
|
||||
#endif //LIBCXXRT
|
||||
#endif
|
||||
|
||||
|
||||
exception_ptr::~exception_ptr() _NOEXCEPT
|
||||
{
|
||||
|
@ -24,8 +24,6 @@
|
||||
static std::new_handler __new_handler;
|
||||
#endif
|
||||
|
||||
#if !defined (LIBCXXRT) // && !defined(_LIBCPPABI_VERSION)
|
||||
|
||||
// Implement all new and delete operators as weak definitions
|
||||
// in this shared library, so that they can be overriden by programs
|
||||
// that define non-weak copies of the functions.
|
||||
@ -134,8 +132,6 @@ operator delete[] (void* ptr, const std::nothrow_t&) _NOEXCEPT
|
||||
::operator delete[](ptr);
|
||||
}
|
||||
|
||||
#endif // !_LIBCPPABI_VERSION && !LIBCXXRT
|
||||
|
||||
namespace std
|
||||
{
|
||||
|
||||
@ -171,6 +167,8 @@ bad_alloc::what() const _NOEXCEPT
|
||||
return "std::bad_alloc";
|
||||
}
|
||||
|
||||
#endif //LIBCXXRT
|
||||
|
||||
bad_array_new_length::bad_array_new_length() _NOEXCEPT
|
||||
{
|
||||
}
|
||||
@ -186,7 +184,6 @@ bad_array_new_length::what() const _NOEXCEPT
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif //LIBCXXRT
|
||||
|
||||
void
|
||||
__throw_bad_alloc()
|
||||
|
Loading…
Reference in New Issue
Block a user