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);


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to