Index: include/new =================================================================== --- include/new +++ include/new @@ -139,9 +139,11 @@ ; _LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS; _LIBCPP_NEW_DELETE_VIS void operator delete(void* __p) _NOEXCEPT; +_LIBCPP_NEW_DELETE_VIS void operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT; +#ifdef _LIBCPP_BUILDING_NEW || _LIBCPP_STD_VER >= 14 _LIBCPP_NEW_DELETE_VIS void operator delete(void* __p, std::size_t __sz) _NOEXCEPT; -_LIBCPP_NEW_DELETE_VIS void operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT; _LIBCPP_NEW_DELETE_VIS void operator delete(void* __p, std::size_t __sz, const std::nothrow_t&) _NOEXCEPT; +#endif _LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz) #if !__has_feature(cxx_noexcept) @@ -150,9 +152,11 @@ ; _LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS; _LIBCPP_NEW_DELETE_VIS void operator delete[](void* __p) _NOEXCEPT; +_LIBCPP_NEW_DELETE_VIS void operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT; +#ifdef _LIBCPP_BUILDING_NEW || _LIBCPP_STD_VER >= 14 _LIBCPP_NEW_DELETE_VIS void operator delete[](void* __p, std::size_t __sz) _NOEXCEPT; -_LIBCPP_NEW_DELETE_VIS void operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT; _LIBCPP_NEW_DELETE_VIS void operator delete[](void* __p, std::size_t __sz, const std::nothrow_t&) _NOEXCEPT; +#endif inline _LIBCPP_INLINE_VISIBILITY void* operator new (std::size_t, void* __p) _NOEXCEPT {return __p;} inline _LIBCPP_INLINE_VISIBILITY void* operator new[](std::size_t, void* __p) _NOEXCEPT {return __p;} Index: src/new.cpp =================================================================== --- src/new.cpp +++ src/new.cpp @@ -140,9 +140,9 @@ _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS void -operator delete(void* ptr, size_t, const std::nothrow_t&) _NOEXCEPT +operator delete(void* ptr, size_t, const std::nothrow_t& nt) _NOEXCEPT { - ::operator delete(ptr); + ::operator delete(ptr, nt); } _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS @@ -168,9 +168,9 @@ _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS void -operator delete[] (void* ptr, size_t, const std::nothrow_t&) _NOEXCEPT +operator delete[] (void* ptr, size_t, const std::nothrow_t& nt) _NOEXCEPT { - ::operator delete[](ptr); + ::operator delete[](ptr, nt); } #endif // !__GLIBCXX__