summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/cxa_default_handlers.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use __atomic_exchange_n instead of Clang's __sync_swapReid Kleckner2014-10-031-6/+8
| | | | | | | | | | | Also remove an extra extern "C" from a global variable redeclaration. This allows building libcxxabi with GCC on my system. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D5604 llvm-svn: 219012
* Minor libc++abi changes to make things build better with gcc.Nico Weber2014-06-251-0/+1
| | | | llvm-svn: 211748
* Partially revert r152770. That commit moved the default handlers to their ↵Howard Hinnant2013-02-061-9/+5
| | | | | | own file. But it also did some refactoring. It is the latter that is being reverted. The refactoring had accidentally removed the required effect that the default unexpected_handler calls std::terminate(), which is a visible effect. llvm-svn: 174532
* Changed 'cause' from 'terminate' to 'uncaught' in default_terminate_handlerHoward Hinnant2012-04-241-1/+1
| | | | llvm-svn: 155452
* I would really like to write the handlers in terms of C++11 atomics. This ↵Howard Hinnant2012-03-191-1/+9
| | | | | | would give us the best performance, portablity, and safety tradeoff. Unfortunately I can not yet do that. So I've put the desired code in comments, and reverted the handler getters to the slower but safer legacy atomic intrinsics. llvm-svn: 153041
* I've moved __cxa_terminate_handler, __cxa_unexpected_handler and ↵Howard Hinnant2012-03-191-7/+6
| | | | | | __cxa_new_handler from the public header cxxabi.h into the private header cxa_handlers.hpp. During this move I've also moved them from namespace __cxxabiapple into the global namespace. They are, and have always been extern C and so the namespace (or lack of it) does not affect their ABI. In general external clients should not reference these symbols. They are atomic variables and will be changing into C++11 atomic variables in the future. However for those few clients who really need access to them, their name, mangling, size, alignment and layout will remain stable. You just may need your own declaration of them. Include guards have been added to the private header cxa_exception.hpp. The private header cxa_default_handlers.hpp has been removed and the default handlers are now file-static. Include guards have been added to the private header cxa_handlers.hpp. llvm-svn: 153039
* Less lame "concurrency" supportDave Zarzycki2012-03-151-2/+2
| | | | | | | | These APIs aren't thread safe, but they're pretending to be. Let's at least make the getter as fast as they can be. The setters are a lost cause unless the API can be fixed. llvm-svn: 152786
* Be friendly to when dead_strip doesn't workDave Zarzycki2012-03-151-2/+21
| | | | | | Apple Radar: 11053417 llvm-svn: 152785
* move default handlers to their own file so they can be overridden at build ↵Nick Kledzik2012-03-151-0/+98
time (dyld) llvm-svn: 152770
OpenPOWER on IntegriCloud