[cfe-commits] [libcxxabi] r152785 - in /libcxxabi/trunk/src: cxa_default_handlers.cpp cxa_handlers.cpp

Dave Zarzycki zarzycki at apple.com
Thu Mar 15 01:58:06 PDT 2012


Author: zarzycki
Date: Thu Mar 15 03:58:06 2012
New Revision: 152785

URL: http://llvm.org/viewvc/llvm-project?rev=152785&view=rev
Log:
Be friendly to when dead_strip doesn't work

Apple Radar: 11053417

Modified:
    libcxxabi/trunk/src/cxa_default_handlers.cpp
    libcxxabi/trunk/src/cxa_handlers.cpp

Modified: libcxxabi/trunk/src/cxa_default_handlers.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_default_handlers.cpp?rev=152785&r1=152784&r2=152785&view=diff
==============================================================================
--- libcxxabi/trunk/src/cxa_default_handlers.cpp (original)
+++ libcxxabi/trunk/src/cxa_default_handlers.cpp Thu Mar 15 03:58:06 2012
@@ -94,5 +94,24 @@
 //
 std::terminate_handler  __cxa_terminate_handler = default_terminate_handler;
 std::unexpected_handler __cxa_unexpected_handler = default_unexpected_handler;
-std::new_handler __cxa_new_handler = 0;
-	
+
+namespace std
+{
+
+unexpected_handler
+set_unexpected(unexpected_handler func) _NOEXCEPT
+{
+	if (func == 0)
+		func = default_unexpected_handler;
+	return __sync_lock_test_and_set(&__cxxabiapple::__cxa_unexpected_handler, func);
+}
+
+terminate_handler
+set_terminate(terminate_handler func) _NOEXCEPT
+{
+	if (func == 0)
+		func = default_terminate_handler;
+	return __sync_lock_test_and_set(&__cxxabiapple::__cxa_terminate_handler, func);
+}
+
+};

Modified: libcxxabi/trunk/src/cxa_handlers.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_handlers.cpp?rev=152785&r1=152784&r2=152785&view=diff
==============================================================================
--- libcxxabi/trunk/src/cxa_handlers.cpp (original)
+++ libcxxabi/trunk/src/cxa_handlers.cpp Thu Mar 15 03:58:06 2012
@@ -20,17 +20,10 @@
 #include "cxa_default_handlers.hpp"
 #include "private_typeinfo.h"
 
-namespace std
-{
-
+std::new_handler __cxa_new_handler = 0;
 
-unexpected_handler
-set_unexpected(unexpected_handler func) _NOEXCEPT
+namespace std
 {
-    if (func == 0)
-        func = default_unexpected_handler;
-    return __sync_lock_test_and_set(&__cxxabiapple::__cxa_unexpected_handler, func);
-}
 
 unexpected_handler
 get_unexpected() _NOEXCEPT
@@ -55,14 +48,6 @@
 }
 
 terminate_handler
-set_terminate(terminate_handler func) _NOEXCEPT
-{
-    if (func == 0)
-        func = default_terminate_handler;
-    return __sync_lock_test_and_set(&__cxxabiapple::__cxa_terminate_handler, func);
-}
-
-terminate_handler
 get_terminate() _NOEXCEPT
 {
     return __sync_fetch_and_add(&__cxxabiapple::__cxa_terminate_handler, (terminate_handler)0);





More information about the cfe-commits mailing list