summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcxxabi/src/cxa_default_handlers.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/libcxxabi/src/cxa_default_handlers.cpp b/libcxxabi/src/cxa_default_handlers.cpp
index 0fba79ced8a..27ffb719b05 100644
--- a/libcxxabi/src/cxa_default_handlers.cpp
+++ b/libcxxabi/src/cxa_default_handlers.cpp
@@ -18,8 +18,10 @@
#include "cxa_exception.hpp"
#include "private_typeinfo.h"
+static const char* cause = "uncaught";
+
__attribute__((noreturn))
-static void default_handler(const char* cause)
+static void default_terminate_handler()
{
// If there might be an uncaught exception
using namespace __cxxabiv1;
@@ -74,17 +76,11 @@ static void default_handler(const char* cause)
abort_message("terminating");
}
-
-__attribute__((noreturn))
-static void default_terminate_handler()
-{
- default_handler("uncaught");
-}
-
__attribute__((noreturn))
static void default_unexpected_handler()
{
- default_handler("unexpected");
+ cause = "unexpected";
+ std::terminate();
}
OpenPOWER on IntegriCloud