summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/cxa_exception.cpp
Commit message (Collapse)AuthorAgeFilesLines
* ibc++abi: mark visibilitySaleem Abdulrasool2015-12-041-12/+14
| | | | | | | | | Mark functions and types with the appropriate visibility. This is particularly useful for environments which explicitly indicate origin of functions (Windows). This aids in generating libc++abi as a DSO which exposes only the public interfaces. llvm-svn: 254691
* c++abi: whitespace adjustmentSaleem Abdulrasool2015-12-041-26/+12
| | | | | | | Cleanup some code with clang-format to make the following change easier to identify material difference. NFC. llvm-svn: 254690
* c++abi: use __builtin_offsetof instead of offsetofSaleem Abdulrasool2015-11-181-8/+9
| | | | | | | | | Use `__builtin_offsetof` in place of `offsetof`. Certain environments provide a macro definition of `offsetof` which may end up causing issues. This was observed on Windows. Use `__builtin_offsetof` to ensure correct evaluation everywhere. NFC. llvm-svn: 253435
* Implement uncaught_exceptions() to get a count, rather than a bool. Update ↵Marshall Clow2015-06-021-3/+6
| | | | | | the libc++abi version. Reviewed as http://reviews.llvm.org/D10067 llvm-svn: 238827
* Formatting fixes.Dan Albert2015-02-051-5/+3
| | | | | | | We should clang-format the whole thing when we finally move the unwinder to its new home. llvm-svn: 228360
* Enable -Wundef.Dan Albert2015-02-051-3/+3
| | | | | | | | The problem that caused the need for http://reviews.llvm.org/D7419 was caused by testing the value of something that was undefined. This should prevent that in the future. llvm-svn: 228257
* s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with ↵Jonathan Roelofs2014-09-051-1/+1
| | | | | | | | | libcxx Also remove the audotedection part so that if you're crazy enough to want a single-threaded abi library, you'll say so explicitly in the build. llvm-svn: 217262
* Update libc++abi to use the ARM EHABI unwinder from its libunwind.Nico Weber2014-06-251-2/+11
| | | | llvm-svn: 211745
* Implement ARM EHABI exception handling.Logan Chien2014-05-101-0/+95
| | | | | | | This commit implements the ARM zero-cost exception handling support for libc++abi. llvm-svn: 208466
* On single threaded systems, turn mutexes into nopsJonathan Roelofs2014-05-061-2/+4
| | | | | | http://reviews.llvm.org/D3386 llvm-svn: 208135
* Fixes incorrect #ifs for SJ/LJ exceptionsDan Albert2014-04-231-3/+3
| | | | | | | The was working because, given __APPLE__, _LIBUNWIND_BUILD_SJLJ_APIS was set to __arm__, but other ARM targets not using SJ/LJ will fail to compile. llvm-svn: 206941
* [libcxxabi] Fix broken codesourcery.com links in commentsJonathan Roelofs2014-02-121-1/+1
| | | | | review: http://llvm-reviews.chandlerc.com/D2718 llvm-svn: 201208
* Demangler update: This now demangles many more (all?) C++11 symbols. ↵Howard Hinnant2013-06-171-1/+1
| | | | | | Demangler tests updated. llvm-svn: 184097
* Bruce Mitchener: Typo fixes.Howard Hinnant2013-02-151-2/+2
| | | | llvm-svn: 175275
* First attempt at arm support.Howard Hinnant2012-02-291-2/+2
| | | | llvm-svn: 151765
* Work on restricting symbol visibility.Howard Hinnant2012-02-021-0/+4
| | | | llvm-svn: 149633
* Teach exception_cleanup_func about dependent exceptions.Howard Hinnant2012-02-011-6/+3
| | | | llvm-svn: 149520
* Treat all exceptions except that the ones that this library throws as ↵Howard Hinnant2012-02-011-2/+2
| | | | | | foreign. Even other C++ exceptions. llvm-svn: 149518
* Removed debugging print statementsHoward Hinnant2012-01-301-9/+0
| | | | llvm-svn: 149271
* Add a descriptive name for a constant. Also I'm at least temporarily waging ↵Howard Hinnant2012-01-301-100/+211
| | | | | | war on throw specs, both old and new style. Except where we have already publicly exposed the throw spec, I'm getting rid of them. They may come back later. But they seem somewhat prone to cyclic dependencies here. The throw spec implies compiler generated code that this library has to jump to during stack unwinding. I'd like to minimize the possiblity that the code used to properly make that jump is itself creating such jumps. llvm-svn: 149251
* Minor updates to a couple of comments.Howard Hinnant2012-01-281-1/+3
| | | | llvm-svn: 149158
* By changing all of the throw() specs to noexcept I've been able to compile ↵Howard Hinnant2012-01-241-23/+23
| | | | | | and link all of the source files into a dylib. Prior to this substitution the changed functions were calling __cxa_call_unexpected which isn't implemented yet. However in none of these cases do we actaully want __cxa_call_unexpected to be called. Primative buildit script added. llvm-svn: 148880
* Marshall Clow reminded me that fallback_malloc.cpp was broken out for ↵Howard Hinnant2012-01-241-161/+1
| | | | | | testing purposes. We've agreed to simply rename fallback_malloc.cpp to fallback_malloc.ipp. Thanks Marshall. llvm-svn: 148863
* Got fooled by fallback_malloc.cpp source file: it is really a private ↵Howard Hinnant2012-01-241-1/+161
| | | | | | header. I've manually included it into the only place it is used: cxa_exception.cpp. llvm-svn: 148854
* Move kOurExceptionClass and kOurDependentExceptionClass from source to ↵Howard Hinnant2012-01-241-3/+1
| | | | | | header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed. llvm-svn: 148827
* Changed my mind about __cxa_uncaught_exception and added it.Howard Hinnant2012-01-241-0/+9
| | | | llvm-svn: 148754
* I kept getting confused among the __cxa_exception*, the _Unwind_Exception* ↵Howard Hinnant2012-01-221-130/+177
| | | | | | and the void* to the thrown object. So I've gone through these two files and attempted to institute a consistent variable naming scheme, and in a few instances, turned void* into a concrete* to have the type system help me out. No change in functionality for this commit is intended. llvm-svn: 148663
* Add a few TODO's and FIXME's. Making notes as I go along, but not slowing ↵Howard Hinnant2012-01-081-1/+4
| | | | | | down to fix these yet. Just don't want anything to fall through the cracks. llvm-svn: 147760
* Improved comment to explain why we can use __cxa_get_globals_fast hereMarshall Clow2012-01-041-0/+4
| | | | llvm-svn: 147554
* Just getting started on the personality routine. This is just a skeleton. ↵Howard Hinnant2012-01-041-6/+0
| | | | | | Still learning how to fill it in... llvm-svn: 147547
* Better commentMarshall Clow2012-01-041-1/+1
| | | | llvm-svn: 147532
* Don't allocate TLS storage when checking to see if an exception has been ↵Marshall Clow2012-01-031-1/+1
| | | | | | thrown - really llvm-svn: 147497
* Don't allocate TLS storage when checking to see if an exception has been thrownMarshall Clow2012-01-031-0/+2
| | | | llvm-svn: 147492
* credits adjustmentHoward Hinnant2011-12-221-0/+6
| | | | llvm-svn: 147148
* Updated __cxa_current_exception_type to call __cxa_get_globals_fast - will ↵Marshall Clow2011-12-221-1/+3
| | | | | | not allocate globals llvm-svn: 147147
* Forgot to increment uncaughtExceptions in __cxa_rethrow_primary_exceptionHoward Hinnant2011-12-211-0/+1
| | | | llvm-svn: 147108
* Added __cxa_increment_exception_refcount, ↵Howard Hinnant2011-12-211-7/+106
| | | | | | __cxa_decrement_exception_refcount, __cxa_current_primary_exception, __cxa_rethrow_primary_exception llvm-svn: 147106
* Made some minor tweaks to __cxa_rethrowHoward Hinnant2011-12-121-6/+10
| | | | llvm-svn: 146396
* Added dependent exception support to __cxa_current_exception_typeHoward Hinnant2011-12-121-1/+5
| | | | llvm-svn: 146381
* Modified __cxa_end_catch to handle dependent exceptions.Howard Hinnant2011-12-081-19/+40
| | | | llvm-svn: 146172
* Reviewing cxa_exception.cpp and marking as implemented as I go. Not marking ↵Howard Hinnant2011-12-071-12/+7
| | | | | | as implemented on arm when I'm not sure about that platform. llvm-svn: 146072
* Substituted std::get_terminate() for direct access to the handler function ↵Howard Hinnant2011-12-061-2/+2
| | | | | | pointer (which is now a static in cxa_handlers.cpp). This has the advantage of going through the atomic API and so is less likely to cause a data race. Ditto for unexpected. llvm-svn: 145951
* reformatted to match Clang style; thanks to John McCall for the nudgeMarshall Clow2011-08-151-100/+109
| | | | llvm-svn: 137623
* First cut at exception handling; missing dependent exceptions. Next step: testsMarshall Clow2011-08-091-7/+224
| | | | llvm-svn: 137118
* Remove include reference to non-existant file cxa_exception_storage.hppMarshall Clow2011-08-081-1/+0
| | | | llvm-svn: 137046
* Update status: http://libcxxabi.llvm.org/spec.html . Looking good! :-)Howard Hinnant2011-07-201-4/+0
| | | | llvm-svn: 135590
* Memory manangement routines for exception objectsMarshall Clow2011-07-201-0/+107
llvm-svn: 135587
OpenPOWER on IntegriCloud