aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp
diff options
context:
space:
mode:
authorheretic <heretic@yandex-team.ru>2022-02-10 16:45:43 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:43 +0300
commit397cbe258b9e064f49c4ca575279f02f39fef76e (patch)
treea0b0eb3cca6a14e4e8ea715393637672fa651284 /contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp
parent43f5a35593ebc9f6bcea619bb170394ea7ae468e (diff)
downloadydb-397cbe258b9e064f49c4ca575279f02f39fef76e.tar.gz
Restoring authorship annotation for <heretic@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp')
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp182
1 files changed, 91 insertions, 91 deletions
diff --git a/contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp b/contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp
index 344250dde0..2ee473dea3 100644
--- a/contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp
+++ b/contrib/libs/cxxsupp/libcxxabi/src/cxa_handlers.cpp
@@ -1,101 +1,101 @@
//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//
-// This file implements the functionality associated with the terminate_handler,
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//
+// This file implements the functionality associated with the terminate_handler,
// unexpected_handler, and new_handler.
-//===----------------------------------------------------------------------===//
-
-#include <stdexcept>
-#include <new>
-#include <exception>
-#include "abort_message.h"
-#include "cxxabi.h"
-#include "cxa_handlers.h"
-#include "cxa_exception.h"
-#include "private_typeinfo.h"
+//===----------------------------------------------------------------------===//
+
+#include <stdexcept>
+#include <new>
+#include <exception>
+#include "abort_message.h"
+#include "cxxabi.h"
+#include "cxa_handlers.h"
+#include "cxa_exception.h"
+#include "private_typeinfo.h"
#include "include/atomic_support.h" // from libc++
-
-namespace std
-{
-
-unexpected_handler
+
+namespace std
+{
+
+unexpected_handler
get_unexpected() noexcept
-{
- return __libcpp_atomic_load(&__cxa_unexpected_handler, _AO_Acquire);
-}
-
-void
-__unexpected(unexpected_handler func)
-{
- func();
- // unexpected handler should not return
- abort_message("unexpected_handler unexpectedly returned");
-}
-
-__attribute__((noreturn))
-void
-unexpected()
-{
- __unexpected(get_unexpected());
-}
-
-terminate_handler
+{
+ return __libcpp_atomic_load(&__cxa_unexpected_handler, _AO_Acquire);
+}
+
+void
+__unexpected(unexpected_handler func)
+{
+ func();
+ // unexpected handler should not return
+ abort_message("unexpected_handler unexpectedly returned");
+}
+
+__attribute__((noreturn))
+void
+unexpected()
+{
+ __unexpected(get_unexpected());
+}
+
+terminate_handler
get_terminate() noexcept
-{
- return __libcpp_atomic_load(&__cxa_terminate_handler, _AO_Acquire);
-}
-
-void
+{
+ return __libcpp_atomic_load(&__cxa_terminate_handler, _AO_Acquire);
+}
+
+void
__terminate(terminate_handler func) noexcept
-{
-#ifndef _LIBCXXABI_NO_EXCEPTIONS
- try
- {
+{
+#ifndef _LIBCXXABI_NO_EXCEPTIONS
+ try
+ {
#endif // _LIBCXXABI_NO_EXCEPTIONS
- func();
- // handler should not return
- abort_message("terminate_handler unexpectedly returned");
-#ifndef _LIBCXXABI_NO_EXCEPTIONS
- }
- catch (...)
- {
- // handler should not throw exception
- abort_message("terminate_handler unexpectedly threw an exception");
- }
+ func();
+ // handler should not return
+ abort_message("terminate_handler unexpectedly returned");
+#ifndef _LIBCXXABI_NO_EXCEPTIONS
+ }
+ catch (...)
+ {
+ // handler should not throw exception
+ abort_message("terminate_handler unexpectedly threw an exception");
+ }
#endif // _LIBCXXABI_NO_EXCEPTIONS
-}
-
-__attribute__((noreturn))
-void
+}
+
+__attribute__((noreturn))
+void
terminate() noexcept
-{
-#ifndef _LIBCXXABI_NO_EXCEPTIONS
- // If there might be an uncaught exception
- using namespace __cxxabiv1;
- __cxa_eh_globals* globals = __cxa_get_globals_fast();
- if (globals)
- {
- __cxa_exception* exception_header = globals->caughtExceptions;
- if (exception_header)
- {
- _Unwind_Exception* unwind_exception =
- reinterpret_cast<_Unwind_Exception*>(exception_header + 1) - 1;
- if (__isOurExceptionClass(unwind_exception))
- __terminate(exception_header->terminateHandler);
- }
- }
-#endif
- __terminate(get_terminate());
-}
-
-new_handler
+{
+#ifndef _LIBCXXABI_NO_EXCEPTIONS
+ // If there might be an uncaught exception
+ using namespace __cxxabiv1;
+ __cxa_eh_globals* globals = __cxa_get_globals_fast();
+ if (globals)
+ {
+ __cxa_exception* exception_header = globals->caughtExceptions;
+ if (exception_header)
+ {
+ _Unwind_Exception* unwind_exception =
+ reinterpret_cast<_Unwind_Exception*>(exception_header + 1) - 1;
+ if (__isOurExceptionClass(unwind_exception))
+ __terminate(exception_header->terminateHandler);
+ }
+ }
+#endif
+ __terminate(get_terminate());
+}
+
+new_handler
get_new_handler() noexcept
-{
- return __libcpp_atomic_load(&__cxa_new_handler, _AO_Acquire);
-}
-
-} // std
+{
+ return __libcpp_atomic_load(&__cxa_new_handler, _AO_Acquire);
+}
+
+} // std