[libc++abi][NFCI] Consistently group new_handler, unexpected_handler and terminate_handler
Previously, the definitions of __cxa_terminate_handler and __cxa_unexpected_handler
(and their set_xxx_handler functions) were grouped together, but the
definition of __cxa_new_handler wasn't. This commit simply moves those
to the same file to treat all handlers consistently.
GitOrigin-RevId: 6714e1ce3b5ec02af2f9ab878bd10d273f02aa7e
diff --git a/src/cxa_default_handlers.cpp b/src/cxa_default_handlers.cpp
index 8f9b253..c521c1f 100644
--- a/src/cxa_default_handlers.cpp
+++ b/src/cxa_default_handlers.cpp
@@ -5,7 +5,8 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//
-// This file implements the default terminate_handler and unexpected_handler.
+// This file implements the default terminate_handler, unexpected_handler and
+// new_handler.
//===----------------------------------------------------------------------===//
#include <exception>
@@ -104,6 +105,8 @@
_LIBCXXABI_DATA_VIS
_LIBCPP_SAFE_STATIC std::unexpected_handler __cxa_unexpected_handler = default_unexpected_handler;
+std::new_handler __cxa_new_handler = 0;
+
namespace std
{
@@ -125,4 +128,10 @@
_AO_Acq_Rel);
}
+new_handler
+set_new_handler(new_handler handler) noexcept
+{
+ return __libcpp_atomic_exchange(&__cxa_new_handler, handler, _AO_Acq_Rel);
+}
+
}
diff --git a/src/cxa_handlers.cpp b/src/cxa_handlers.cpp
index d022752..17ffd30 100644
--- a/src/cxa_handlers.cpp
+++ b/src/cxa_handlers.cpp
@@ -6,7 +6,7 @@
//
//
// This file implements the functionality associated with the terminate_handler,
-// unexpected_handler, and new_handler.
+// unexpected_handler, and new_handler.
//===----------------------------------------------------------------------===//
#include <stdexcept>
@@ -92,16 +92,6 @@
__terminate(get_terminate());
}
-extern "C" {
-new_handler __cxa_new_handler = 0;
-}
-
-new_handler
-set_new_handler(new_handler handler) noexcept
-{
- return __libcpp_atomic_exchange(&__cxa_new_handler, handler, _AO_Acq_Rel);
-}
-
new_handler
get_new_handler() noexcept
{