summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2012-02-23 15:32:07 +0000
committerHoward Hinnant <hhinnant@apple.com>2012-02-23 15:32:07 +0000
commitfdac5f9274eb4854820f45e7991099706a00504b (patch)
tree5f6cbe6ca2485a8e120577926970ddc5f8c5d6bf /include
parent74ecc63c3f0f72848cf0deb509e194a29487d83b (diff)
I had originally made the handler function pointers a static internal detail, not accessible to the outside world. I did this because they must be accessed in a thread-safe manner, and the library provides thread-safe getters and setters for these. However I am at least temporarily making them public and giving them the Apple-extension names. In the future these may disappear again, and I think that would probably be a good idea.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151256 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/cxxabi.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/cxxabi.h b/include/cxxabi.h
index b08fba0..b0994d1 100644
--- a/include/cxxabi.h
+++ b/include/cxxabi.h
@@ -172,4 +172,21 @@ extern bool __cxa_uncaught_exception() throw();
namespace abi = __cxxabiv1;
+// Below are Apple extensions to support implementing C++ ABI in a seperate dylib
+namespace __cxxabiapple
+{
+extern "C"
+{
+
+// Apple additions to support multiple STL stacks that share common
+// terminate, unexpected, and new handlers
+// But touching these is a bad idea. It is not thread safe.
+// Use get_terminate, set_terminate, etc. instead.
+extern void (*__cxa_terminate_handler)();
+extern void (*__cxa_unexpected_handler)();
+extern void (*__cxa_new_handler)();
+
+} // extern "C"
+} // namespace __cxxabiv1
+
#endif // __CXXABI_H