605f03260ce43ec564cd0ec80ea21514e82eeeb3 |
29-Aug-2014 |
Dan Albert <danalbert@google.com> |
Make _Unwind_Backtrace() work on ARM. 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 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@216730 91177308-0d34-0410-b5e6-96231b3b80d8 (cherry picked from commit 14690900fcd84fbf82767890f4d7a5673654fe38) Bug: 16874447 Change-Id: Ia52c7e2a0b7167863fea29cbf4b2d3c5d58053b2
nwind.h
|
e45805f0d3f8dafef1297cc7dc49e610713f023b |
03-Jul-2014 |
Dan Albert <danalbert@google.com> |
Merge to upstream r212232. Includes ARM EHABI unwinder. Change-Id: I7e40c761abc0a4c67f11b8e9f85efefa6ba292ba
xxabi.h
ibunwind.h
ach-o/compact_unwind_encoding.h
nwind.h
|
c2e9313c38fdd56ecd50d7cd21e8a14d8f16a1b7 |
23-Apr-2014 |
Dan Albert <danalbert@google.com> |
Fixes incorrect #ifs for SJ/LJ exceptions 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. Change-Id: Id774f1c6aa20661e289dbe18145532dbba6791d7 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@206941 91177308-0d34-0410-b5e6-96231b3b80d8
nwind.h
|
e085735cbedc82b1064f05ff796e32e906a95036 |
08-Apr-2014 |
Dan Albert <danalbert@google.com> |
Gets libcxxabi building for Android Fixes a few configuration issues in libcxxabi and adds an Android makefile. Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
nwind.h
|
448bba28b48c9503e6a92d894e31c613a87233b8 |
30-Jan-2014 |
Nick Kledzik <kledzik@apple.com> |
[libunwind] remove stray conditional git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200432 91177308-0d34-0410-b5e6-96231b3b80d8
ach-o/compact_unwind_encoding.h
|
5ff06b0156f5820a87b4dd90bcd06f8ed41af8cc |
18-Dec-2013 |
Nico Weber <nicolasweber@gmx.de> |
Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI unwinding. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197591 91177308-0d34-0410-b5e6-96231b3b80d8
ibunwind.h
|
29180116e559ead2486c5cf6b4fefe8a6f6443fc |
01-Nov-2013 |
Nick Kledzik <kledzik@apple.com> |
Rename LIBUNWIND_AVAIL to LIBUNWIND_UNAVAIL so as to not conflict with other (different) LIBUNWIND_AVAIL define git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193839 91177308-0d34-0410-b5e6-96231b3b80d8
nwind.h
|
839f7f23c0a652e2b799345fc3112ae0c5a03098 |
17-Oct-2013 |
Saleem Abdulrasool <compnerd@compnerd.org> |
unwinder: conditionalise availability __attribute__ (( unavailable )) is for Apple specific builds. Create a macro to conditionalise the usage of the macro. This is to aid in porting the unwinder to other platforms. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192868 91177308-0d34-0410-b5e6-96231b3b80d8
nwind.h
|
b78da9875b6e35187b5d584746c78faaf3230a3d |
07-Oct-2013 |
Nick Kledzik <kledzik@apple.com> |
libcxxabi contains the runtime support for C++. But, as some folks have realized, it is not complete. It relies on some _Unwind_* functions to be supplied by the OS. That means it cannot be ported to platforms that don’t already have an unwinder. Years ago Apple wrote its own unwinder for MacOSX and iOS. To make libcxxabi complete, Apple has decided the source code for its unwinder can be contributed to the open source LLVM libcxxabi project, with a dual licensed under LLVM and MIT license. So, I’ve spent some time cleaning up the sources to make them conform with LLVM style and to conditionalize the sources in a way that should make it easier to port to other platforms. The sources are in a separate "Unwind" directory under "src" in libcxxabi. Background: Most architectures now use "zero cost" exceptions for C++. The zero cost means there are no extra instructions executed if no exceptions are thrown. But if an exception is thrown, the runtime must consult side tables and figure out how to restore registers and "unwind" from the current stack frame to the catch clause. That ability to modify the stack frames and cause the thread to resume in a catch clause with all registers restored properly is the main purpose of the unwinder. This unwinder has two levels of API. The high level APIs are the _Unwind_* functions which the cxa_* exception functions in libcxxabi require. The low level APIs are the unw_* functions which are an interface defined by the the old HP libunwind project (which shares no code with this unwinder). git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192136 91177308-0d34-0410-b5e6-96231b3b80d8
ibunwind.h
ach-o/compact_unwind_encoding.h
nwind.h
|
c62cbea03e7fb9df073bc965d3f7fc5ca5a39438 |
17-Jun-2013 |
Howard Hinnant <hhinnant@apple.com> |
Tweaks/cleanups provided by Matthew Dempsky git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184118 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
5dd173b3792e868a7ebfa699d156f24075eafc01 |
10-Apr-2013 |
Howard Hinnant <hhinnant@apple.com> |
Add capability to demangle invocation functions for ObjC blocks. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@179208 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
0f80bb79c0181c706cf6acce44f854e96ecaf755 |
19-Mar-2012 |
Howard Hinnant <hhinnant@apple.com> |
I've moved __cxa_terminate_handler, __cxa_unexpected_handler and __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. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@153039 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
fcd21a1f59d1bc797464ca7f3cfe80281756031f |
14-Mar-2012 |
Howard Hinnant <hhinnant@apple.com> |
Enable __arm__ on apple git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152735 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
fdac5f9274eb4854820f45e7991099706a00504b |
23-Feb-2012 |
Howard Hinnant <hhinnant@apple.com> |
I had originally made the handler function pointers a static internal detail, not accessible to the outside world. I did this because they must be accessed in a thread-safe manner, and the library provides thread-safe getters and setters for these. However I am at least temporarily making them public and giving them the Apple-extension names. In the future these may disappear again, and I think that would probably be a good idea. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151256 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
3759e4591ba1e1fe07e097b5e0e031fb0a0de227 |
17-Feb-2012 |
Howard Hinnant <hhinnant@apple.com> |
Add (reluctantly) a namespace alias for __cxxabiv1. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@150828 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
0240685ed6756ee0eed7c76e37eb2abdc01dcf82 |
02-Feb-2012 |
Howard Hinnant <hhinnant@apple.com> |
Work on restricting symbol visibility. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149633 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
53cf764ab4a40b1e445e9e20219f950d621fcf53 |
02-Feb-2012 |
Howard Hinnant <hhinnant@apple.com> |
Add version number to this library so we can recognize when we're using it. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149632 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
ca00a4e83ed1adcdc6f34ae25c5e705315168a26 |
30-Jan-2012 |
Howard Hinnant <hhinnant@apple.com> |
Put throw() clauses back on these functions in cxxabi.h. This header must be C++03 compatible and these throw specs are consistent with the current cxxabi.h that Apple ships. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149249 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
f81cdffb22a1f20a3adadccbaba60513aa29cb0d |
25-Jan-2012 |
Howard Hinnant <hhinnant@apple.com> |
By changing all of the throw() specs to noexcept I've been able to compile 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. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148880 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
1b0aed9312dca7ffd27522864b9101ca816112b1 |
22-Dec-2011 |
Howard Hinnant <hhinnant@apple.com> |
Added __cxa_increment_exception_refcount, __cxa_decrement_exception_refcount, __cxa_current_primary_exception, __cxa_rethrow_primary_exception git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147106 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
ab87dcf97e2bba2b2b9aadc0877ebd3b8d7cab42 |
15-Dec-2011 |
Howard Hinnant <hhinnant@apple.com> |
Fixed several bugs, implemented support for vector types, and cleaned out dead code. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146677 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
bb8d048ac08a960d5f3b3c9bc02774bb23665e3a |
08-Aug-2011 |
Howard Hinnant <hhinnant@apple.com> |
Silence some -Wall warnings pointed out by Marshall Clow git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@137047 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
15a6928f197d9bdce3284fb1588820989abdc1e5 |
02-Aug-2011 |
Nick Kledzik <kledzik@apple.com> |
make cxxabi.h safe for C code to include git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136682 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
f72cdd5b49372fa50dbc79d712615b4b35b00796 |
02-Aug-2011 |
Nick Kledzik <kledzik@apple.com> |
make LIBCXXABI_NORETURN be the right attribute git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136680 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
703d148d5994d7a1cd189dc57acc7704f48fbd13 |
20-Jul-2011 |
Marshall Clow <mclow@qualcomm.com> |
Fixed struct/class mismatch for std::type_info and added NORETURN flags git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135584 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
889b02d72d523ba716ce08403c284e60f0a9431d |
22-Jun-2011 |
Howard Hinnant <hhinnant@apple.com> |
In cxa_demangle.cpp, rewrite __parse_unresolved_name to reflect updated understanding and sync with updated clang mangling. Also fix think-o in __parse_encoding enabling the parsing of trailing .eh and .b. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@133632 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
|
25f180797ba296e6cd3aa45e1fef9321b828301a |
07-Jun-2011 |
Howard Hinnant <hhinnant@apple.com> |
tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132729 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
d8cfd659b70bcf65a9c810ebe525632af38726f0 |
07-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add support for the ARM EABI variant of the __cxa_guard methods, controlled by the LIBCXXABI_ARMEABI macro. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132723 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
4c2acbcfc928a7d4f18b2c9202288abdf0131219 |
03-Jun-2011 |
Marshall Clow <mclow@qualcomm.com> |
Added __cxa_bad_cast and __cxa_bad_typeid and placeholder NORETURN macro git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132524 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
92827189cbb1e63dfebf0a46aac4372c3089ff11 |
25-May-2011 |
Howard Hinnant <hhinnant@apple.com> |
Introduce cxa_virtual.cpp and cxa_guard.cpp. Contributed by Nick Lewycky, Howard Hinnant and John McCall git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132009 91177308-0d34-0410-b5e6-96231b3b80d8
xxabi.h
|
d213ffdf3befead3b8f5a0ba12ce1c2d9949525b |
05-May-2011 |
Howard Hinnant <hhinnant@apple.com> |
initial import git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@130921 91177308-0d34-0410-b5e6-96231b3b80d8
xa_demangle.h
xxabi.h
|