Age | Commit message (Collapse) | Author |
|
It is preinstalled from prebuilts/sdk instead.
Change-Id: Ife0cec3a944fb3c4f7d77b4397decae58ff14529
|
|
Change-Id: I133910cc56fccb7f6ad094b355261890c53dace5
|
|
Change-Id: I2116e33691e3f4e99cccc6819f7b85783069c790
|
|
Change-Id: I435898547be3aa5e20c455c373c17ad10bfdfe10
|
|
|
|
Fixes a few configuration issues in libcxxabi and adds an Android makefile.
Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
|
|
This reverts commit fa2203904bdca85115bf2fcb9bd70150dffa9bbe.
Change-Id: Ifbe705df19347ea11b858ec5e0a4b61bc2f922c5
|
|
Fixes a few configuration issues in libcxxabi and adds an Android makefile.
Change-Id: I7b55f9ff0d7025cb316695fcb6c592db9ab7dd38
|
|
Change-Id: I0d8ad33f38e5ca6addbb3da01275cf0c87ed7195
|
|
|
|
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204292 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
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
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201533 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
review: http://llvm-reviews.chandlerc.com/D2718
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201208 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200864 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200432 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199941 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199915 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199860 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199859 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@198643 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
unwinding.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@197591 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196540 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196436 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
const'. Thanks to Nico for the catch
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196355 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
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
|
|
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
|
|
that it gets into the binary.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@194208 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193840 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
(different) LIBUNWIND_AVAIL define
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193839 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193169 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
__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
|
|
parameter to match other implementations
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192248 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192245 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
architectures
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192241 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192180 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
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
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190479 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190371 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@189603 91177308-0d34-0410-b5e6-96231b3b80d8
|