summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/cxa_personality.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [NFC][libc++abi] Remove trailing whitespace from sourcesLouis Dionne2019-10-011-21/+21
| | | | llvm-svn: 373379
* libcxxabi: Rename .hpp files to .hNico Weber2019-08-121-2/+2
| | | | | | | | LLVM uses .h as its extension for header files. Differential Revision: https://reviews.llvm.org/D65981 llvm-svn: 368604
* [NFC] Correct outdated links to the Itanium C++ ABI documentationLouis Dionne2019-04-111-1/+1
| | | | | | | | Those are now hosted on GitHub. rdar://problem/36557462 llvm-svn: 358191
* Update more file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | | to reflect the new license. These used slightly different spellings that defeated my regular expressions. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351648
* Make libc++abi work better with gcc's ARM unwind library. Reviewed as ↵Marshall Clow2018-10-101-10/+5
| | | | | | https://reviews.llvm.org/D42242 llvm-svn: 344152
* Add missing _LIBCXXABI_FUNC_VIS to __gxx_personality_seh0Martin Storsjo2018-08-111-1/+1
| | | | | | This was missed in SVN r337754. llvm-svn: 339503
* Implement a GCC compatible SEH unwinding personality, __gxx_personality_seh0Martin Storsjo2018-07-231-0/+25
| | | | | | | | | This allows handling SEH based exceptions, with unwind functions provided by libgcc. Differential Revision: https://reviews.llvm.org/D49638 llvm-svn: 337754
* [libc++abi] Delete config.hShoaib Meenai2017-03-301-1/+0
| | | | | | | | | | | | Summary: It's now completely empty, so we can remove it entirely. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31502 llvm-svn: 299129
* [libcxxabi] Clean up macro usage.Ranjeet Singh2017-03-011-7/+7
| | | | | | | | Convention in libcxxabi is to use !defined(FOO) not !FOO. Differential Revision: https://reviews.llvm.org/D30459 llvm-svn: 296612
* Fix non-reserved macro names LIBCXXABI_NORETURN and LIBCXXABI_ARM_EHABI.Eric Fiselier2017-03-011-6/+6
| | | | | | This patch adds the required leading underscore to those macros. llvm-svn: 296567
* arm: Fix ttype encoding assertion failure.Logan Chien2016-11-131-2/+8
| | | | | | | | GCC 4.7 or newer emits 0x90 (indirect | pcrel) as the ttype encoding. This would hit an assertion in cxa_personality.cpp. This commit fixes the problem by relaxing the assertion. llvm-svn: 286760
* Wrap LIBCXXABI_USE_LLVM_UNWINDER with defined().Logan Chien2016-08-311-2/+2
| | | | | | | | | | | | This commit fixes -Wundef by replacing: #if !LIBCXXABI_USE_LLVM_UNWINDER with: #if !defined(LIBCXXABI_USE_LLVM_UNWINDER) llvm-svn: 280251
* libc++abi: make __cxa_call_unexpected visibleSaleem Abdulrasool2016-05-111-1/+1
| | | | | | | This may be invoked by the compiler, and needs to be made available so that the users can reference it. llvm-svn: 269255
* libc++abi: fix visibility of personalitiesSaleem Abdulrasool2016-05-041-2/+3
| | | | | | | The personality routines need to be exposed to the users as the functions reference the personality routine to handle exceptions. llvm-svn: 268477
* EH: fix register usage for SjLjSaleem Abdulrasool2015-09-201-5/+8
| | | | | | | | | | When using SjLj EH, do not use __builtin_eh_return_regno, map directly to the ID. This would work on some targets, particularly those where the non-SjLj EH personality used the same register mapping (0 -> 0, 1 -> 1). However, this is not guaranteed. Avoiding the use of the builtin enables the use of libc++ with SjLj EH on all targets. llvm-svn: 248108
* Remove include directive for the unused libunwind_ext.h.Logan Chien2015-07-121-4/+0
| | | | llvm-svn: 241993
* libcxx: Switch to use __gnu_unwind_frame() for libunwind.Logan Chien2015-05-291-32/+2
| | | | | | | | | As a step to fix libunwind unw_step(), a new function __gnu_unwind_frame() has been introduced to libunwind, and it is required to use this function so that some libunwind internal data structure can be updated properly. llvm-svn: 238561
* libc++abi: work around layering violationSaleem Abdulrasool2015-04-281-1/+1
| | | | | | | | This papers over a layering violation currently between libc++abi and libunwind. It reaches into the sources to get the declaration of an ABI defined function. This should allow the ARM buildbot to continue building libc++abi again. llvm-svn: 235965
* libc++abi: clear up some -Wqual-cast warningsSaleem Abdulrasool2015-04-271-2/+1
| | | | | | Cleans up cast qualifier warnings identified by GCC 4.9.2. llvm-svn: 235829
* Remove unneeded const_cast in readPointerHelper. Pointed out by jroelofsEric Fiselier2015-03-101-1/+1
| | | | llvm-svn: 231852
* [libcxx] Fix PR21580 - Undefined behavior in readEncodedPointer()Eric Fiselier2015-03-101-12/+20
| | | | | | | | | | | | | | Summary: This patch fixes a bug in `readEncodedPointer()` where it would read from memory that was not suitably aligned. This patch fixes it by using memcpy. Reviewers: danalbert, echristo, compnerd, mclow.lists Reviewed By: compnerd, mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8179 llvm-svn: 231839
* Enable -Wundef.Dan Albert2015-02-051-7/+7
| | | | | | | | 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
* Fix _Unwind_Backtrace for libc++abi built with libgcc.Logan Chien2015-01-221-0/+12
| | | | | | | Implement an undocumented _US_FORCE_UNWIND flag for force unwinding. llvm-svn: 226820
* Allow libc++abi to be built without unwinder.Logan Chien2015-01-221-34/+41
| | | | | | | | | | | This CL adds a new compilation flags LIBCXXABI_USE_LLVM_UNWINDER to specify whether the LLVM unwinder is enabled. Besides, all unwinder-specific code are guarded with this definition. Now, libc++abi will be able to use the unwinding routine from libgcc when LIBCXXABI_USE_LLVM_UNWINDER is disabled. llvm-svn: 226819
* Make _Unwind_Backtrace() work on ARM.Dan Albert2014-08-291-4/+9
| | | | | | | | | | | | | | | | | | | | | | Summary: Since the personality functions do the actual unwinding on ARM, and will also stop unwinding when they encounter a handler, we invoke _Unwind_VRS_Interpret() directly form _Unwind_Backtrace(). To simplify, the logic for decoding an EHT is moved out of unwindOneFrame() and into its own function, decode_eht_entry(). Unlike unwindOneFrame(), which could only handle ARM's compact personality function entries (section 6.3) decode_eht_entry() can handle the generic entries (section 6.2). Reviewers: jroelofs Reviewed By: jroelofs Subscribers: piman, aemerson, cfe-commits Differential Revision: http://reviews.llvm.org/D5112 llvm-svn: 216730
* Add baremetal ARM support to libcxxabi/libunwindJonathan Roelofs2014-08-211-0/+10
| | | | | | http://reviews.llvm.org/D4993 llvm-svn: 216202
* Revert the LSDA change to scan_eh_tab.Logan Chien2014-06-301-19/+8
| | | | | | | | | | | This commit reverts the LSDA-related change in r211745. The r211745 adds a new argument to scan_eh_tab(), i.e. lsda. However, IMO, calling _Unwind_GetLanguageSpecificData() directly in scan_eh_tab() was more intuitive and reduces several function call to _Unwind_GetLanguageSpecificData() in __cxx_personality_v0(). llvm-svn: 212037
* Update libc++abi to use the ARM EHABI unwinder from its libunwind.Nico Weber2014-06-251-31/+70
| | | | llvm-svn: 211745
* Fix typo in comment.Logan Chien2014-05-141-1/+1
| | | | llvm-svn: 208795
* Implement ARM EHABI exception handling.Logan Chien2014-05-101-0/+206
| | | | | | | This commit implements the ARM zero-cost exception handling support for libc++abi. llvm-svn: 208466
* Fixes more incorrect #ifs for SJ/LJ exceptionsJonathan Roelofs2014-05-081-16/+16
| | | | | | Replaces several `#if __arm__` with `#if __USING_SJLJ_EXCEPTIONS__`. llvm-svn: 208352
* Fixes incorrect #ifs for SJ/LJ exceptionsDan Albert2014-04-231-1/+1
| | | | | | | 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
* Bruce Mitchener: Typo fixes.Howard Hinnant2013-02-151-5/+5
| | | | llvm-svn: 175275
* Wen-Han Gu: Fix for http://llvm.org/bugs/show_bug.cgi?id=14312 Exception ↵Howard Hinnant2012-11-121-2/+6
| | | | | | Table out-of-range but still keep walking. llvm-svn: 167733
* Arm fixes in cxa_personality.cpp and a little refactoring.Howard Hinnant2012-03-171-24/+41
| | | | llvm-svn: 152966
* Enable / silence -Wunused-parameter.Howard Hinnant2012-03-091-0/+3
| | | | llvm-svn: 152415
* Enable/silence -Wunused-variable.Howard Hinnant2012-03-081-0/+1
| | | | llvm-svn: 152329
* Enable/silence -Wconversion.Howard Hinnant2012-03-081-2/+2
| | | | llvm-svn: 152328
* Enable/silence -Wsign-conversion.Howard Hinnant2012-03-081-12/+12
| | | | llvm-svn: 152323
* First attempt at arm support.Howard Hinnant2012-02-291-6/+49
| | | | llvm-svn: 151765
* Remove outdated information from comment.Howard Hinnant2012-02-171-7/+0
| | | | llvm-svn: 150827
* Treat all exceptions except that the ones that this library throws as ↵Howard Hinnant2012-02-011-6/+7
| | | | | | foreign. Even other C++ exceptions. llvm-svn: 149518
* Nothing but polishing comments.Howard Hinnant2012-02-011-8/+27
| | | | llvm-svn: 149515
* Move an error detector to a better place.Howard Hinnant2012-02-011-5/+2
| | | | llvm-svn: 149513
* Back the optimization down from -O3 to -Os. I'm getting an unexplained ↵Howard Hinnant2012-01-311-2/+4
| | | | | | crasher on -O3. I've looked for a libc++abi bug and can't find one. I'm suspecting clang optimizer bug. But I don't have a good test case at the moment. Deferring investigation on this for now as I will soon be developing more and smaller tests. llvm-svn: 149414
* Fix type-o in the comment of the last commitHoward Hinnant2012-01-311-1/+1
| | | | llvm-svn: 149403
* Found and fixed a bug in __cxa_call_unexpected. If the unexpected_handler ↵Howard Hinnant2012-01-311-3/+16
| | | | | | rethrows the same exception then needed information gets overwritten in the original exception header. Therefore save it locally before executing the unexpected_handler. llvm-svn: 149400
* Found and fixed bug in personality function: Don't dive into the action ↵Howard Hinnant2012-01-311-2/+6
| | | | | | table if the action entry is zero. llvm-svn: 149389
* Minor bug fix in __cxa_call_unexpected. Changed std::terminate to detect a ↵Howard Hinnant2012-01-311-1/+1
| | | | | | caught-but-unhandled exception, and choose the handler out of that if found. llvm-svn: 149329
OpenPOWER on IntegriCloud