summaryrefslogtreecommitdiff
path: root/src/cxa_handlers.cpp
diff options
context:
space:
mode:
authorAsiri Rathnayake <asiri.rathnayake@arm.com>2016-05-31 12:01:32 +0000
committerAsiri Rathnayake <asiri.rathnayake@arm.com>2016-05-31 12:01:32 +0000
commit4174e8b402ba05e3b3e003b1066f1eae6fbeb24b (patch)
tree00a63addfb8fc122d9d3f275d22d2541ea4a63e2 /src/cxa_handlers.cpp
parent436072f52ff05d69f626a9c7a309a1464758f129 (diff)
[libcxxabi] Introduce a -fno-exceptions libc++abi libary variant
Currently there is only support for a -fno-exceptions libc++ build. This is problematic for functions such as std::terminate() which are defined in libc++abi and using any of those functions throws away most of the benefits of using -fno-exceptions (code-size). This patch introduces a -fno-exceptions libc++abi build to address this issue. This new variant of libc++abi cannot be linked against any with-exceptions code as some symbols necessary for handling exceptions are missing in this library. Differential revision: http://reviews.llvm.org/D20677 Reviewers: EricWF, mclow.lists, bcraig git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@271267 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'src/cxa_handlers.cpp')
-rw-r--r--src/cxa_handlers.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cxa_handlers.cpp b/src/cxa_handlers.cpp
index c231b5a..3f78131 100644
--- a/src/cxa_handlers.cpp
+++ b/src/cxa_handlers.cpp
@@ -61,21 +61,21 @@ __attribute__((visibility("hidden"), noreturn))
void
__terminate(terminate_handler func) _NOEXCEPT
{
-#if __has_feature(cxx_exceptions)
+#ifndef _LIBCXXABI_NO_EXCEPTIONS
try
{
-#endif // __has_feature(cxx_exceptions)
+#endif // _LIBCXXABI_NO_EXCEPTIONS
func();
// handler should not return
abort_message("terminate_handler unexpectedly returned");
-#if __has_feature(cxx_exceptions)
+#ifndef _LIBCXXABI_NO_EXCEPTIONS
}
catch (...)
{
// handler should not throw exception
abort_message("terminate_handler unexpectedly threw an exception");
}
-#endif // #if __has_feature(cxx_exceptions)
+#endif // _LIBCXXABI_NO_EXCEPTIONS
}
__attribute__((noreturn))