Updated CREDITS.TXT

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@185464 91177308-0d34-0410-b5e6-96231b3b80d8
I had a buffer mismanagement bug in the demangler.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@187255 91177308-0d34-0410-b5e6-96231b3b80d8
tip-of-trunk clang has corrected some access checks for special members in a virtual inheritance hierarchy.  Change a few private inheritances to protected.  This change will not impact what the test was testing.  This fixes http://llvm.org/bugs/show_bug.cgi?id=16753.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@187429 91177308-0d34-0410-b5e6-96231b3b80d8
Propagate the removal of _LIBCPP_CANTTHROW (r189046) to libcxxabi.  This fixes http://llvm.org/bugs/show_bug.cgi?id=16996.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@189194 91177308-0d34-0410-b5e6-96231b3b80d8
Change the two last remaining _LIBCPP_CANTTHROW to _NOEXCEPT



git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@189603 91177308-0d34-0410-b5e6-96231b3b80d8
Add ability to set OPTIONS for compile

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190371 91177308-0d34-0410-b5e6-96231b3b80d8
Adding bad_array_length to libc++abi

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190479 91177308-0d34-0410-b5e6-96231b3b80d8
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
Consistent spelling of names.


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192180 91177308-0d34-0410-b5e6-96231b3b80d8
Fix conditionals on __Unwind_SjLj_* functions to only build for SJLJ based architectures

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192241 91177308-0d34-0410-b5e6-96231b3b80d8
[unwind] add required #include

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192245 91177308-0d34-0410-b5e6-96231b3b80d8
[unwind] Fix unw_init_remote_thread() use to void* instead of thread_t for parameter to match other implementations

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192248 91177308-0d34-0410-b5e6-96231b3b80d8
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
Move local Db type out to namespace scope.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193169 91177308-0d34-0410-b5e6-96231b3b80d8
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
Swap contents of UnwindRegistersRestore.s and UnwindRegistersSave.s

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@193840 91177308-0d34-0410-b5e6-96231b3b80d8
If libc++ has not declared bad_array_length, then declare it here just so that it gets into the binary.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@194208 91177308-0d34-0410-b5e6-96231b3b80d8
Comment correction. syslog() syntax is:

 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
On Windows, typeids are different between DLLs and EXEs, so comparing
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
Fix indentation of fields in __cxa_exception to line up

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