summaryrefslogtreecommitdiffstats
path: root/include/unwind.h
Commit message (Collapse)AuthorAgeFilesLines
* 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. git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@351648 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for SEH unwinding on Windows.Charles Davis2018-08-301-6/+14
| | | | | | | | | | | | | | | | | | | | | Summary: I've tested this implementation on x86-64 to ensure that it works. All `libc++abi` tests pass, as do all `libc++` exception-related tests. ARM still remains to be implemented (@compnerd?). Special thanks to KJK::Hyperion for his excellent series of articles on how EH works on x86-64 Windows. (Seriously, check it out. It's awesome.) I'm actually not sure if this should go in as is. I particularly don't like that I duplicated the UnwindCursor class for this special case. Reviewers: mstorsjo, rnk, compnerd, smeenai, javed.absar Subscribers: mgorny, kristof.beyls, christof, chrib, cfe-commits, compnerd, llvm-commits Differential Revision: https://reviews.llvm.org/D50564 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@341125 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unneeded preprocessor condition.Charles Davis2018-08-081-9/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@339259 91177308-0d34-0410-b5e6-96231b3b80d8
* [libunwind][include] Add SEH declarations to <unwind.h>.Charles Davis2018-08-081-2/+28
| | | | | | | | | | | | | | | | Summary: Make the `_Unwind_Exception` struct correct under SEH. Add a declaration of `_GCC_specific_handler()`, which is used by SEH versions of Itanium personality handlers to do common setup. Roughly corresponds to Clang's D50380. Reviewers: mstorsjo, rnk, compnerd, smeenai Subscribers: christof, chrib, cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D50414 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@339258 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for dwarf unwinding on windows on x86_64Martin Storsjo2017-10-271-1/+1
| | | | | | | | | | | | | | | Clang doesn't currently support building for windows/x86_64 with dwarf by setting command line parameters, but if manually modified to use dwarf, we can make libunwind work in this configuration as well. Also include i386 in the docs when adding this as a supported configuration; libunwind already works for i386 windows, but can fail due to an issue unrelated to windows itself. Differential Revision: https://reviews.llvm.org/D38819 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@316747 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM: explicitly specify the 8-byte alignmentSaleem Abdulrasool2017-08-231-1/+1
| | | | | | | | | It seems that GCC interprets `__attribute__((__aligned__))` as 8-byte alignment on ARM, but clang does not. Explicitly specify the double-word alignment value to ensure that the structure is properly aligned. git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@311574 91177308-0d34-0410-b5e6-96231b3b80d8
* unwind: explicitly align `_Unwind_Control_Block`Saleem Abdulrasool2017-08-231-1/+1
| | | | | | | | | | | | The C++ ABI requires that the exception object is double-word aligned. The alignment attribute was applied to the `_Unwind_Exception` type which is used on non-EHABI targets. On EHABI, the exception object type is `_Unwind_Control_Block`. Apply the explicit maximal alignment on the type to ensure that the allocation has the correct alignment. Resolves PR33858! git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@311562 91177308-0d34-0410-b5e6-96231b3b80d8
* [libunwind] Clean up macro usage.Ranjeet Singh2017-03-311-6/+6
| | | | | | | | | | Convention in libunwind is to use !defined(FOOT) not !FOO. Differential Revision: https://reviews.llvm.org/D31078 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@299225 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing _US_ACTION_MASK constant to unwind.hDimitry Andric2016-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | Summary: During building of recent compiler-rt sources on FreeBSD for arm, I noticed that our unwind.h (which originates in libunwind) was missing the `_US_ACTION_MASK` constant: compiler-rt/lib/builtins/gcc_personality_v0.c:187:18: error: use of undeclared identifier '_US_ACTION_MASK' if ((state & _US_ACTION_MASK) != _US_UNWIND_FRAME_STARTING) ^ It appears that both clang's internal unwind.h, and libgcc's unwind.h define this constant as 3, so let's add this to libunwind's version too. Reviewers: logan, kledzik, davide, emaste Subscribers: joerg, davide, aemerson, emaste, llvm-commits Differential Revision: https://reviews.llvm.org/D24222 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@280669 91177308-0d34-0410-b5e6-96231b3b80d8
* [libunwind] Properly align _Unwind_Exception.Eric Fiselier2016-07-201-3/+6
| | | | | | | | | | | | Summary: _Unwind_Exception is required to be double word aligned. Currently the struct is under aligned. Reviewers: mclow.lists, compnerd, kledzik, emaste Subscribers: emaste, cfe-commits Differential Revision: https://reviews.llvm.org/D22543 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@276215 91177308-0d34-0410-b5e6-96231b3b80d8
* libunwind: Use conventional DWARF capitalization in comments and errorsEd Maste2016-07-191-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@275996 91177308-0d34-0410-b5e6-96231b3b80d8
* unwind: Fix libc++abi and libgcc build.Logan Chien2015-07-241-0/+43
| | | | | | | | | | | | | To build libc++abi without libunwind, we should make sure that all function calls to _Unwind_{Get,Set}{GR,IP}() are inlined as function calls to _Unwind_VRS_{Get,Set}(). Otherwise, libc++abi.so will fail to link since libgcc does not provide these symbol at all. This commit fixes the problem by providing both the inlined version and exported version. git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@243073 91177308-0d34-0410-b5e6-96231b3b80d8
* libunwind: Introduce __libunwind_config.h.Logan Chien2015-07-191-5/+5
| | | | | | | | Introduce __libunwind_config.h to avoid cross repository circular dependency with libcxxabi. git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@242642 91177308-0d34-0410-b5e6-96231b3b80d8
* unwind: move src/Unwind, include/, and test/ unwind contentSaleem Abdulrasool2015-04-241-0/+329
This moves the majority of the unwind sources into the new project layout for libunwind. This was previously discussed on llvmdev at [1]. This is a purely movement related change, with the build infrastructure currently still residing in the libc++abi repository. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@235758 91177308-0d34-0410-b5e6-96231b3b80d8