summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-04-25Don't build libcxx_abi for unbundled projects.HEADmastermainStephen Hines
It is preinstalled from prebuilts/sdk instead. Change-Id: Ife0cec3a944fb3c4f7d77b4397decae58ff14529
2014-04-23Add Apple-specific files for libunwind.Tim Murray
Change-Id: I133910cc56fccb7f6ad094b355261890c53dace5
2014-04-16Fixes build on arm64Dan Albert
Change-Id: I2116e33691e3f4e99cccc6819f7b85783069c790
2014-04-16Disables building of libcxxabi on mips targetsDan Albert
Change-Id: I435898547be3aa5e20c455c373c17ad10bfdfe10
2014-04-15Merge "Gets libcxxabi building for Android"Dan Albert
2014-04-15Gets libcxxabi building for AndroidDan Albert
Fixes a few configuration issues in libcxxabi and adds an Android makefile. Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
2014-04-14Revert "Gets libcxxabi building for Android"Dan Albert
This reverts commit fa2203904bdca85115bf2fcb9bd70150dffa9bbe. Change-Id: Ifbe705df19347ea11b858ec5e0a4b61bc2f922c5
2014-04-11Gets libcxxabi building for AndroidDan Albert
Fixes a few configuration issues in libcxxabi and adds an Android makefile. Change-Id: I7b55f9ff0d7025cb316695fcb6c592db9ab7dd38
2014-04-03Add module notice.Tim Murray
Change-Id: I0d8ad33f38e5ca6addbb3da01275cf0c87ed7195
2014-04-03Merge remote-tracking branch 'upstream/master' into libcxxabiTim Murray
2014-04-03Initial empty repositoryBill Yi
2014-03-20Simplify.Joerg Sonnenberger
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204292 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-20Fix DW_CFA_GNU_args_size handling. The primary architecture using thisJoerg Sonnenberger
opcode is VAX. A function call pushes the number of arguments given onto the stack and "ret" will pop it automatically. The FDE of the caller contains the amount of stack space used for arguments (and possibly extra padding), so unwinding has to compensate for this when "returning" from a function. This is exactly the case when step() is done. The existing handling in unw_set_reg no longer makes sense. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204290 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-110 is a valid LSDA encoding and can be seen in statically linkedJoerg Sonnenberger
programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that value to decide whether a value should be decoded. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@203626 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-17Demangle Dc to decltype(auto) as per the Itanium C++ ABI spec.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201533 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-12[libcxxabi] Fix broken codesourcery.com links in commentsJonathan Roelofs
review: http://llvm-reviews.chandlerc.com/D2718 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201208 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-06Fix PR17221 - can't catch virtual base classes when throwing derived NULL ↵Marshall Clow
pointers. Specifically, libc++abi would crash when you tried it. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200904 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-05Fix PR17222 - catching derived classes from thrown null pointer. Adds tests, tooMarshall Clow
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200864 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-30[libunwind] remove stray conditionalNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200432 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23Use .p2align instead of .alignNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199941 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23Add missing alignment directives in assemblyNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199915 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23Don't redefine static_assert()Nick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199860 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23Fix unwinder to build for iOSNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199859 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-06Implement demangling for user-defined operators.Howard Hinnant
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@198643 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-01Update the copyright credits -- Happy new year 2014!NAKAMURA Takumi
FIXME: Dragonegg may be updated at non-trivial changes. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@198274 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-18Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI ↵Nico Weber
unwinding. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197591 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-17Add mangling macros for Unwind's inline assembly.Nico Weber
This is in preparation for landing an implementation of unw_getcontext on a system where it's mangled 'unw_getcontext', not '_unw_getcontext'. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197523 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-11Fix demangling crasher. The crasher involved nested <encoding> involving ↵Howard Hinnant
parameter packs, which exposed a logic bug causing an empty vector<string> to be accessed with back(). In addition to fixing the bug, I've inserted numerous preemptive checks for similar bugs in the hopes that if another bug is uncovered, the bug results in an invalid mangled string instead of a demangler crash. Test suite updated with string that was causing the crash. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197063 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2Nico Weber
These files require preprocessing, so their name should end with a capital S. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196555 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2Nico Weber
These files require preprocessing, so their name should end with a capital S. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196554 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06Fix minor initialization bug in Registers_x86_64.Nico Weber
According to kledzik, this constructor isn't live code, so no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196550 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-0580-column wrap a comment in a testNico Weber
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196540 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05[unwind] remove darwin build dependency on <mach-o/dyld_priv.h>Nick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196436 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04Fixed a couple of test errors; changed 'const A const *' to 'const A* ↵Marshall Clow
const'. Thanks to Nico for the catch git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196355 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-30Fix indentation of fields in __cxa_exception to line upMark Seaborn
Align to 8 spaces instead of an inconsistent 9. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@195974 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-22On Windows, typeids are different between DLLs and EXEs, so comparingYaron Keren
type_info* will work for typeids from the same compiled file but fail for typeids from a DLL and an executable. Among other things, exceptions are not caught by handlers since can_catch() returns false. Defining _LIBCXX_DYNAMIC_FALLBACK does not help since can_catch() calls is_equal() with use_strcmp=false so the string names are not compared. This patch compares typeids first (cheap) and only they are different calls strcmp. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@195502 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-22Comment correction. syslog() syntax is:Yaron Keren
void syslog(int facility_priority, const char* format, ...); This is indeed how it is used in private_typeinfo.cpp. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@195452 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-07If libc++ has not declared bad_array_length, then declare it here just so ↵Howard Hinnant
that it gets into the binary. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@194208 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01Swap contents of UnwindRegistersRestore.s and UnwindRegistersSave.sNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193840 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01Rename LIBUNWIND_AVAIL to LIBUNWIND_UNAVAIL so as to not conflict with other ↵Nick Kledzik
(different) LIBUNWIND_AVAIL define git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193839 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-22Move local Db type out to namespace scope.Howard Hinnant
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193169 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-17unwinder: conditionalise availabilitySaleem Abdulrasool
__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
2013-10-08[unwind] Fix unw_init_remote_thread() use to void* instead of thread_t for ↵Nick Kledzik
parameter to match other implementations git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192248 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-08[unwind] add required #includeNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192245 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-08Fix conditionals on __Unwind_SjLj_* functions to only build for SJLJ based ↵Nick Kledzik
architectures git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192241 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-08Consistent spelling of names.Joerg Sonnenberger
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192180 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-07libcxxabi contains the runtime support for C++. But, as some folks have Nick Kledzik
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
2013-09-11Adding bad_array_length to libc++abiMarshall Clow
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190479 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-09Add ability to set OPTIONS for compileMarshall Clow
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190371 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-29Change the two last remaining _LIBCPP_CANTTHROW to _NOEXCEPTJean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@189603 91177308-0d34-0410-b5e6-96231b3b80d8