[libcxx-commits] [libcxxabi] 6714e1c - [libc++abi][NFCI] Consistently group new_handler, unexpected_handler and terminate_handler
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Sep 30 11:16:15 PDT 2021
Author: Louis Dionne
Date: 2021-09-30T14:15:30-04:00
New Revision: 6714e1ce3b5ec02af2f9ab878bd10d273f02aa7e
URL: https://github.com/llvm/llvm-project/commit/6714e1ce3b5ec02af2f9ab878bd10d273f02aa7e
DIFF: https://github.com/llvm/llvm-project/commit/6714e1ce3b5ec02af2f9ab878bd10d273f02aa7e.diff
LOG: [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.
Added:
Modified:
libcxxabi/src/cxa_default_handlers.cpp
libcxxabi/src/cxa_handlers.cpp
Removed:
################################################################################
diff --git a/libcxxabi/src/cxa_default_handlers.cpp b/libcxxabi/src/cxa_default_handlers.cpp
index 8f9b2533b6a20..c521c1f97713f 100644
--- a/libcxxabi/src/cxa_default_handlers.cpp
+++ b/libcxxabi/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 @@ _LIBCPP_SAFE_STATIC std::terminate_handler __cxa_terminate_handler = default_ter
_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 @@ set_terminate(terminate_handler func) noexcept
_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/libcxxabi/src/cxa_handlers.cpp b/libcxxabi/src/cxa_handlers.cpp
index d022752e12e66..17ffd30d2940e 100644
--- a/libcxxabi/src/cxa_handlers.cpp
+++ b/libcxxabi/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() noexcept
__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
{
More information about the libcxx-commits
mailing list