summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/unwind.h
Commit message (Collapse)AuthorAgeFilesLines
* Move the builtin headers to use the new license file header.Chandler Carruth2019-04-081-17/+3
| | | | | | | | | | | | | | | | | | Summary: These all had somewhat custom file headers with different text from the ones I searched for previously, and so I missed them. Thanks to Hal and Kristina and others who prompted me to fix this, and sorry it took so long. Reviewers: hfinkel Subscribers: mcrosier, javed.absar, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60406 llvm-svn: 357941
* [Headers][mips] Add `__attribute__((__mode__(__unwind_word__)))` to the ↵Simon Atanasyan2019-02-131-2/+2
| | | | | | | | | | | | | | | | | | _Unwind_Word / _Unwind_SWord definitions The rationale of this change is to fix _Unwind_Word / _Unwind_SWord definitions for MIPS N32 ABI. This ABI uses 32-bit pointers, but _Unwind_Word and _Unwind_SWord types are eight bytes long. # The __attribute__((__mode__(__unwind_word__))) is added to the type definitions. It makes them equal to the corresponding definitions used by GCC and allows to override types using `getUnwindWordWidth` function. # The `getUnwindWordWidth` virtual function override in the `MipsTargetInfo` class and provides correct type size values. Differential revision: https://reviews.llvm.org/D58165 llvm-svn: 353965
* [Headers] Expand _Unwind_Exception for SEH on MinGW/x86_64Martin Storsjo2018-08-071-0/+4
| | | | | | | | This matches how GCC defines this struct. Differential Revision: https://reviews.llvm.org/D50380 llvm-svn: 339170
* [Headers] Fix typoed __ARM_DWARF_EH__ ifdefsMartin Storsjo2017-10-191-3/+3
| | | | | | These typos appeared in SVN r309226 and r309327. llvm-svn: 316149
* Headers: explicitly specify double-word alignmentSaleem Abdulrasool2017-08-231-1/+1
| | | | | | | | GCC will interpret `__attribute__((__aligned__))` as 8-byte alignment on ARM, but clang will not. Explicitly specify the alignment. This mirrors the declaration in libunwind. llvm-svn: 311576
* Headers: give _Unwind_Control_Block double-word alignmentSaleem Abdulrasool2017-08-231-1/+1
| | | | | | | | | | The C++ ABI requires that the exception object (which under AEABI is the `_Unwind_Control_Block`) is double-word aligned. The attribute was applied to the `_Unwind_Exception` type, but not the `_Unwind_Control_Block`. This should fix the libunwind test for the alignment of the exception type. llvm-svn: 311563
* Headers: fix _Unwind_{G,S}etGR for non-EHABI targetsSaleem Abdulrasool2017-07-271-4/+1
| | | | | | | | The EHABI definition was being inlined into the users even when EHABI was not in use. Adjust the condition to ensure that the right version is defined. llvm-svn: 309327
* Headers: improve ARM EHABI coverage of unwind.hSaleem Abdulrasool2017-07-261-17/+58
| | | | | | | | | | | | | | | | Ensure that we define the `_Unwind_Control_Block` structure used on ARM EHABI targets. This is needed for building libc++abi with the unwind.h from the resource dir. A minor fallout of this is that we needed to create a typedef for _Unwind_Exception to work across ARM EHABI and non-EHABI targets. The structure definitions here are based originally on the documentation from ARM under the "Exception Handling ABI for the ARM® Architecture" Section 7.2. They are then adjusted to more closely reflect the definition in libunwind from LLVM. Those changes are compatible in layout but permit easier use in libc++abi and help maintain compatibility between libunwind and the compiler provided definition. llvm-svn: 309226
* Add ARM EHABI-related constants to unwind.h.Logan Chien2016-02-281-1/+18
| | | | | | | | | | Adds a number of constants, defined in the ARM EHABI spec, to the Clang lib/Headers/unwind.h header. This is prerequisite for landing http://reviews.llvm.org/D15781, as previously discussed there. Patch by Timon Van Overveldt. llvm-svn: 262178
* Headers: Don't use attribute keywords which aren't reservedDavid Majnemer2015-02-041-9/+9
| | | | | | Instead of using 'unavailable', use '__unavailable__' llvm-svn: 228087
* Effectively revert r151058 which caused Clang's unwind.h to defer toChandler Carruth2014-12-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | libunwind in all cases when installed. At the time, Clang's unwind.h didn't provide huge chunks of the LSB-specified unwind interface, and was generally too aenemic to use for real software. However, it has since then become a strict superset of the APIs provided by libunwind on Linux. Notably, you cannot compile llgo's libgo library against libunwind, but you can against Clang's unwind.h. So let's just use our header. =] I've checked pretty thoroughly for any incompatibilities, and I am not aware of any. An open question is whether or not we should continue to munge GNU_SOURCE here. I didn't touch that as it potentially has compatibility implications on systems I cannot easily test -- Darwin. If a Darwin maintainer can verify that this is in fact unnecessary and remove it, cool. Until then, leaving it in makes this change a no-op there, and only really relevant on Linux systems where it is pretty clearly the right way to go. llvm-svn: 224934
* Add a missing declaration to our unwind.h implementation. This isChandler Carruth2014-12-291-0/+2
| | | | | | | | | necessary to be fully compatible with existing software that calls into the linux unwind code. You can find documentation of this API and why it exists in the discussion abot NPTL here: https://gcc.gnu.org/ml/gcc-patches/2003-09/msg00154.html llvm-svn: 224933
* Provide inline definitions of _Unwind_GetIP etc. for ARM in unwind.hHans Wennborg2013-09-251-3/+35
| | | | | | | | | | | These symbols were showing up as undefined when trying to link programs on Android. We should match libgcc's behaviour and provide inline definitions of these on ARM. It seems unwind.h on ARM/Darwin doesn't provide inline definitions, so we just declare them for that platform. llvm-svn: 191406
* Two more definitions required by libsupc++ (_sleb128_t and _uleb128_t)Peter Collingbourne2013-08-291-0/+3
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D1542 llvm-svn: 189558
* 80 cols.Peter Collingbourne2013-08-281-12/+15
| | | | llvm-svn: 189538
* Add missing definitions to unwind.h.Peter Collingbourne2013-08-281-5/+114
| | | | | | Original patch by Charles Davis. llvm-svn: 189535
* PR14964: intrinsic headers using non-reserved identifiersDavid Blaikie2013-01-161-6/+6
| | | | | | | | | | | | | | | | Several of the intrinsic headers were using plain non-reserved identifiers. C++11 17.6.4.3.2 [global.names] p1 reservers names containing a double begining with an underscore followed by an uppercase letter for any use. I think I got them all, but open to being corrected. For the most part I didn't bother updating function-like macro parameter names because I don't believe they're subject to any such collission - though some function-like macros already follow this convention (I didn't update them in part because the churn was more significant as several function-like macros use the double underscore prefixed version of the same name as a parameter in their implementation) llvm-svn: 172666
* unwind.h: Add include guards and don't mess with visibility if HIDE_EXPORTS ↵Benjamin Kramer2013-01-091-0/+9
| | | | | | | | is specified. For GCC compatibility. llvm-svn: 171991
* Code cleanup: Remove trailing whitespace in unwind.h.Logan Chien2012-11-141-20/+20
| | | | llvm-svn: 167915
* Add struct keyword before _Unwind_Context.Logan Chien2012-09-261-1/+1
| | | | | | | | In the C programming language, we have to add the "struct" keyword. Otherwise, the compiler will emit error message. llvm-svn: 164665
* unwind.h fix for -fvisibility=hidden users. This fixes firefox build in a systemRafael Espindola2012-03-291-1/+13
| | | | | | | with libunwind installed. Patch by Jeffrey Yasskin! llvm-svn: 153633
* Allow linux builds to take advantage of libunwind to get unwind.h ifJeffrey Yasskin2012-02-211-3/+13
| | | | | | that's installed. llvm-svn: 151058
* On Darwin, use the system's <unwind.h> whenever it isDouglas Gregor2012-01-241-4/+3
| | | | | | | available. Clang's <unwind.h> isn't ready for prime time. Fixes <rdar://problem/10733587>. llvm-svn: 148807
* Extend unwind.h with the ARM unwinder interface.Evgeniy Stepanov2012-01-191-0/+35
| | | | | | | These declarations come from the sample code in the "Exception Handling ABI for the ARM Architecture" document. llvm-svn: 148469
* Don't depend on undefined macros being 0, there are options for theJoerg Sonnenberger2012-01-031-1/+2
| | | | | | preprocessor to warn about it. llvm-svn: 147466
* Use default visibility in the the symbols declared in unwind.h. This matchesRafael Espindola2011-12-091-0/+7
| | | | | | the behavior of gcc's unwind.h. llvm-svn: 146208
* Add a minimal unwind.h that knows how to forward to the system one in systemsRafael Espindola2011-12-081-0/+60
that have it in /usr/include (only OS X Lion so far). llvm-svn: 146140
OpenPOWER on IntegriCloud