History log of /external/libcxxabi/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
nclude/unwind.h
rc/Unwind/Unwind-EHABI.cpp
rc/Unwind/UnwindLevel1-gcc-ext.c
rc/Unwind/libunwind_ext.h
rc/cxa_personality.cpp
est/backtrace_test.cpp
4c708dc711f4bf00e6ff03831d316f7df239f61e 29-Aug-2014 Dan Albert <danalbert@google.com> Revert "Fix _Unwind_Backtrace for arm."

Reverting because there is a more complete fix available upstream (one
that can fully unwind in the presence of generic EHT entries).

This reverts commit 0edf7c5360403441c060618014887e9a723fe423.
Bug: 16874447
Change-Id: I5aa38183237865187156a8d8a050fd09a04ef109
rc/Unwind/UnwindLevel1-gcc-ext.c
e3f00968e6c7819bd616c413f4f22b87099236a7 27-Aug-2014 Christopher Ferris <cferris@google.com> Remove test code.

I accidentally included some test code that I if'd 0 out. Remove it.

Bug: 16874447
Change-Id: I2ffd8120e2bb088def001125c023173a2cce1e08
rc/Unwind/UnwindLevel1-gcc-ext.c
34ce4a6f5c6ffab0fb97be2b62f8e71b14df8fb4 27-Aug-2014 Christopher Ferris <cferris@google.com> Fix _Unwind_Backtrace for arm.

The unwind code does not properly update the IP when on arm.

There is still a bug in this unwinding code, it stops unwinding at the
first catch it finds.

Bug: 16874447
Change-Id: I40a4d8990246dccad18612c7291d00293266d9bc
rc/Unwind/UnwindLevel1-gcc-ext.c
63c802e0c5e471f0b6b4f131097a4eb8d2cb4cbe 19-Aug-2014 Dan Albert <danalbert@google.com> Improve logging of aborts for Android.

In Android, stderr only goes to the console, and as such will only ever
be seen by adb shell users. Since very few developers will ever actually
see that, also send the abort message to logcat and the tombstone.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@215983 91177308-0d34-0410-b5e6-96231b3b80d8

Bug: 17059126
Change-Id: I67055243d0750b1ea3cf5c77e911353cc9905878
(cherry picked from commit f02f3d37e0309314ce69f9bf49f17f54bed2c109)
rc/abort_message.cpp
f3015a2d9c8d1d2ff143ca9a0f7b64016b896e46 01-Aug-2014 Ying Wang <wangying@google.co> Exclude only modules with prebuilt in prebuilts/sdk.

So we can do tapas build in the full platform source tree.

Change-Id: Ia924f5d4a0159e5773dadf7516e509061fba8b1c
(cherry picked from commit 9ed4d5de04a63f2445a56f63d07a15e6eb64d4d4)
ndroid.mk
87a9be28aceed80250cd1d1a47eb8afa0ee67b51 03-Jul-2014 Dan Albert <danalbert@google.com> Add support for the ARM EHABI unwinder.

Only use the LLVM unwinder for ARM.

The LLVM unwinder now supports ARM EHABI, so we can finally use that for
exception handling on ARM. The unwinder doesn't work for other
architectures though (aside from on Darwin), so use libunwind for now.

Change-Id: Ife8b0b33dbfe96c10eab102cd36d30149d68ace9
ndroid.mk
rc/Unwind/config.h
e45805f0d3f8dafef1297cc7dc49e610713f023b 03-Jul-2014 Dan Albert <danalbert@google.com> Merge to upstream r212232.

Includes ARM EHABI unwinder.

Change-Id: I7e40c761abc0a4c67f11b8e9f85efefa6ba292ba
nclude/cxxabi.h
nclude/libunwind.h
nclude/mach-o/compact_unwind_encoding.h
nclude/unwind.h
rc/Unwind/AddressSpace.hpp
rc/Unwind/DwarfInstructions.hpp
rc/Unwind/DwarfParser.hpp
rc/Unwind/Registers.hpp
rc/Unwind/Unwind-EHABI.cpp
rc/Unwind/UnwindCursor.hpp
rc/Unwind/UnwindLevel1-gcc-ext.c
rc/Unwind/UnwindLevel1.c
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersSave.S
rc/Unwind/config.h
rc/Unwind/libunwind.cpp
rc/config.h
rc/cxa_default_handlers.cpp
rc/cxa_demangle.cpp
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/cxa_exception_storage.cpp
rc/cxa_guard.cpp
rc/cxa_handlers.cpp
rc/cxa_personality.cpp
rc/fallback_malloc.ipp
rc/stdexcept.cpp
est/catch_in_noexcept.cpp
est/catch_pointer_reference.cpp
est/inherited_exception.cpp
est/test_demangle.cpp
est/test_exception_storage.cpp
est/test_vector1.cpp
est/testit
est/unwind_06.cpp
ww/index.html
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
nclude/unwind.h
rc/cxa_exception.cpp
rc/cxa_personality.cpp
a3a628ad74a904edf8681d6b16ae8e293c1eb681 11-Jun-2014 Ying Wang <wangying@google.com> Using arch-specific variables

Use arch-specific variables instead of checking TARGET_ARCH, which
doesn't work in multlib build.

Change-Id: If05af37c2df9d9f9bc756792a19fd34e8fe72316
ndroid.mk
20116856117ff5f5257fc51c5c1bb2499d436d58 11-Jun-2014 Ian Rogers <irogers@google.com> Make host multilib for multilib dependencies.

Change-Id: Id3ee2e6b6153c355441016b479b75351030f6217
ndroid.mk
3be37f7492fb54dcf821b954efa74dda23751bab 10-May-2014 Brian Carlstrom <bdc@google.com> am d5cc515c: Add LOCAL_ADDITIONAL_DEPENDENCIES on Android.mk

* commit 'd5cc515c98421408b082fb82bbb3e947f2583e6f':
Add LOCAL_ADDITIONAL_DEPENDENCIES on Android.mk
d5cc515c98421408b082fb82bbb3e947f2583e6f 10-May-2014 Brian Carlstrom <bdc@google.com> Add LOCAL_ADDITIONAL_DEPENDENCIES on Android.mk

Change-Id: Ic74564ccf6e0525e667a6d9e8b0bb283fffd0a32
ndroid.mk
4719850ec5f27792c00b0973501899fb65d0d9b9 10-May-2014 Dan Albert <danalbert@google.com> am 873f8586: Switch to static libs

* commit '873f8586ee0ba081b0537f84dc827a400d0bc73d':
Switch to static libs
873f8586ee0ba081b0537f84dc827a400d0bc73d 09-May-2014 Dan Albert <danalbert@google.com> Switch to static libs

Change-Id: I6009c3e13f81cfe7743b9675292b7c7eb5082e48
ndroid.mk
a9fab38f9587720b905f6376bf483489647edea1 07-May-2014 Dan Albert <danalbert@google.com> am ab22a8fc: Changes so name to match cmake target

* commit 'ab22a8fc0e1fd348c19b99efa183ffd8c00af815':
Changes so name to match cmake target
ab22a8fc0e1fd348c19b99efa183ffd8c00af815 03-May-2014 Dan Albert <danalbert@google.com> Changes so name to match cmake target

Change-Id: I6489f371d3ad19f2b7e850ed15fcf60a0d98807e
ndroid.mk
a4b6c861044cd2b0ee5b23cb2f32c400980fb255 05-May-2014 Dan Albert <danalbert@google.com> am 6b885241: Removes libstdc++ dependency from host builds

* commit '6b8852417f55cd373059531acae36fc3b052e88b':
Removes libstdc++ dependency from host builds
ab5be358be853cfd30797154a30d31f3f462d497 05-May-2014 Dan Albert <danalbert@google.com> am 45b27bb2: Replaces strlcpy() with strncpy() equivalent

* commit '45b27bb2d849cde9dcbb9ee702373150a060c480':
Replaces strlcpy() with strncpy() equivalent
6b8852417f55cd373059531acae36fc3b052e88b 03-May-2014 Dan Albert <danalbert@google.com> Removes libstdc++ dependency from host builds

Change-Id: I00d2ab87bb8f34c2787afc4766d7413b2655bffe
ndroid.mk
rc/Unwind/Registers.hpp
rc/Unwind/config.h
45b27bb2d849cde9dcbb9ee702373150a060c480 05-May-2014 Dan Albert <danalbert@google.com> Replaces strlcpy() with strncpy() equivalent

This is necessary for building libc++abi in non-BSD environments.

Change-Id: Ia550a40b6f520a69bef963268eb2fb3c3c9c4401
rc/Unwind/AddressSpace.hpp
fb85ece0bea720d957515649a3e4a43b6d04f745 30-Apr-2014 Stephen Hines <srhines@google.com> am d71a0e61: Enable MIPS builds.

* commit 'd71a0e613da222c193732a46056e8d9881040f98':
Enable MIPS builds.
d71a0e613da222c193732a46056e8d9881040f98 30-Apr-2014 Stephen Hines <srhines@google.com> Enable MIPS builds.

Change-Id: I47fb51d32bfa5fa175ff066b477dfb0597625873
ndroid.mk
c99d1316941e90b384c778c324d5ea2742917ec4 29-Apr-2014 Stephen Hines <srhines@google.com> am 285d67f3: Don\'t build libcxx_abi for unbundled projects.

* commit '285d67f35f6044cf733091e36248405ca967c62c':
Don't build libcxx_abi for unbundled projects.
b75e58e2cecb17b184034936c40fa4b7264dc066 29-Apr-2014 Tim Murray <timmurray@google.com> am 09437217: Add Apple-specific files for libunwind.

* commit '09437217701ee0d16962250b375698ceece839e8':
Add Apple-specific files for libunwind.
edb3241d654a61cdb9da2772cd9a6d24a1190777 29-Apr-2014 Dan Albert <danalbert@google.com> am b21e7e40: Fixes build on arm64

* commit 'b21e7e40b9f751f956cdc437b6546c3052d6b604':
Fixes build on arm64
1045d3260fe5113e6b1a564917176acba38d980c 29-Apr-2014 Dan Albert <danalbert@google.com> am 39c04b7e: Disables building of libcxxabi on mips targets

* commit '39c04b7ea5f24565206478880df2cdc26fc8214d':
Disables building of libcxxabi on mips targets
310682e787c707d99186b917ae3ef2020a6ff542 29-Apr-2014 Dan Albert <danalbert@google.com> am ddd1d803: Merge "Gets libcxxabi building for Android"

* commit 'ddd1d803cc32902bb545fce2b19077375964f5dc':
Gets libcxxabi building for Android
61866afc6d040ff286c21a5f7d2c5612e8a5393e 29-Apr-2014 Dan Albert <danalbert@google.com> am 685b6863: Revert "Gets libcxxabi building for Android"

* commit '685b686397762543524a8496c4901332588e7349':
Revert "Gets libcxxabi building for Android"
ba9b5071ab80f48c6e286a99ec564c6701168a9d 29-Apr-2014 Dan Albert <danalbert@google.com> am fa220390: Gets libcxxabi building for Android

* commit 'fa2203904bdca85115bf2fcb9bd70150dffa9bbe':
Gets libcxxabi building for Android
4bb72f71eb6d9a66112fc0e078ddefbdc65a8827 29-Apr-2014 Tim Murray <timmurray@google.com> am 426b4a20: Add module notice.

* commit '426b4a2074546a3be819110978876163a8f1704c':
Add module notice.
934a45bf8c4cd1f444e46c8f63d835e9379c004a 29-Apr-2014 Tim Murray <timmurray@google.com> am d998eb96: Merge remote-tracking branch \'upstream/master\' into libcxxabi

* commit 'd998eb96ae9865bbd7b1711abcf4c9c6f4ff2304': (257 commits)
Initial empty repository
Simplify.
Fix DW_CFA_GNU_args_size handling. The primary architecture using this 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.
0 is a valid LSDA encoding and can be seen in statically linked programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that value to decide whether a value should be decoded.
Demangle Dc to decltype(auto) as per the Itanium C++ ABI spec.
[libcxxabi] Fix broken codesourcery.com links in comments
Fix PR17221 - can't catch virtual base classes when throwing derived NULL pointers. Specifically, libc++abi would crash when you tried it.
Fix PR17222 - catching derived classes from thrown null pointer. Adds tests, too
[libunwind] remove stray conditional
Use .p2align instead of .align
Add missing alignment directives in assembly
Don't redefine static_assert()
Fix unwinder to build for iOS
Implement demangling for user-defined operators.
Update the copyright credits -- Happy new year 2014!
Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI unwinding.
Add mangling macros for Unwind's inline assembly.
Fix demangling crasher. The crasher involved nested <encoding> involving 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.
Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2
Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2
...
285d67f35f6044cf733091e36248405ca967c62c 26-Apr-2014 Stephen Hines <srhines@google.com> Don't build libcxx_abi for unbundled projects.

It is preinstalled from prebuilts/sdk instead.

Change-Id: Ife0cec3a944fb3c4f7d77b4397decae58ff14529
ndroid.mk
09437217701ee0d16962250b375698ceece839e8 21-Apr-2014 Tim Murray <timmurray@google.com> Add Apple-specific files for libunwind.

Change-Id: I133910cc56fccb7f6ad094b355261890c53dace5
ndroid.mk
b21e7e40b9f751f956cdc437b6546c3052d6b604 17-Apr-2014 Dan Albert <danalbert@google.com> Fixes build on arm64

Change-Id: I2116e33691e3f4e99cccc6819f7b85783069c790
ndroid.mk
39c04b7ea5f24565206478880df2cdc26fc8214d 17-Apr-2014 Dan Albert <danalbert@google.com> Disables building of libcxxabi on mips targets

Change-Id: I435898547be3aa5e20c455c373c17ad10bfdfe10
ndroid.mk
ddd1d803cc32902bb545fce2b19077375964f5dc 16-Apr-2014 Dan Albert <danalbert@google.com> Merge "Gets libcxxabi building for Android"
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
ndroid.mk
nclude/unwind.h
rc/Unwind/AddressSpace.hpp
rc/Unwind/UnwindCursor.hpp
rc/Unwind/config.h
rc/cxa_exception.cpp
rc/cxa_personality.cpp
685b686397762543524a8496c4901332588e7349 15-Apr-2014 Dan Albert <danalbert@google.com> Revert "Gets libcxxabi building for Android"

This reverts commit fa2203904bdca85115bf2fcb9bd70150dffa9bbe.

Change-Id: Ifbe705df19347ea11b858ec5e0a4b61bc2f922c5
ndroid.mk
nclude/unwind.h
rc/Unwind/AddressSpace.hpp
rc/Unwind/UnwindCursor.hpp
rc/Unwind/config.h
rc/cxa_exception.cpp
rc/cxa_personality.cpp
fa2203904bdca85115bf2fcb9bd70150dffa9bbe 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: I7b55f9ff0d7025cb316695fcb6c592db9ab7dd38
ndroid.mk
nclude/unwind.h
rc/Unwind/AddressSpace.hpp
rc/Unwind/UnwindCursor.hpp
rc/Unwind/config.h
rc/cxa_exception.cpp
rc/cxa_personality.cpp
426b4a2074546a3be819110978876163a8f1704c 03-Apr-2014 Tim Murray <timmurray@google.com> Add module notice.

Change-Id: I0d8ad33f38e5ca6addbb3da01275cf0c87ed7195
ODULE_LICENSE_BSD_LIKE
d998eb96ae9865bbd7b1711abcf4c9c6f4ff2304 03-Apr-2014 Tim Murray <timmurray@google.com> Merge remote-tracking branch 'upstream/master' into libcxxabi
f8023cccd64a49e2f6fdbe5ee5e8e0e5a76d3ee2 03-Apr-2014 Bill Yi <byi@google.com> Initial empty repository
6286d8340606e44e64e83f65a6e6ff28022e96e3 25-Mar-2014 Qiwen Zhao <zhao@google.com> Initial empty repository
4b51c92d708b5be144167e73a9e6af15a323debe 20-Mar-2014 Joerg Sonnenberger <joerg@bec.de> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204292 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/libunwind.cpp
7dfc5215ff08e992ffe88c577ba15d641e610d75 20-Mar-2014 Joerg Sonnenberger <joerg@bec.de> Fix DW_CFA_GNU_args_size handling. The primary architecture using this
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
rc/Unwind/UnwindCursor.hpp
rc/Unwind/libunwind.cpp
4fb4f2286edeef6320baa9b7ad475495f95c8c56 12-Mar-2014 Joerg Sonnenberger <joerg@bec.de> 0 is a valid LSDA encoding and can be seen in statically linked
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
rc/Unwind/DwarfParser.hpp
2950e56d0fb30123dc93a55dc92f5a903c2bec13 17-Feb-2014 Anders Carlsson <andersca@mac.com> Demangle Dc to decltype(auto) as per the Itanium C++ ABI spec.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201533 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
c82e02dd25b36e5d05cd3644499a553709c9395d 12-Feb-2014 Jonathan Roelofs <jonathan@codesourcery.com> [libcxxabi] Fix broken codesourcery.com links in comments

review: http://llvm-reviews.chandlerc.com/D2718


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201208 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_aux_runtime.cpp
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/cxa_exception_storage.cpp
rc/cxa_personality.cpp
rc/cxa_vector.cpp
rc/fallback_malloc.ipp
98bbf28c5eac8ed3356909563e4d80529507995f 06-Feb-2014 Marshall Clow <mclow.lists@gmail.com> Fix PR17221 - can't catch virtual base classes when throwing derived NULL 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
rc/private_typeinfo.cpp
est/catch_ptr_02.cpp
288859d0a1684e0899702f50353ccdbc1bdab8b7 05-Feb-2014 Marshall Clow <mclow.lists@gmail.com> Fix PR17222 - catching derived classes from thrown null pointer. Adds tests, too

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200864 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/catch_ptr_02.cpp
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
nclude/mach-o/compact_unwind_encoding.h
b599e66f83a53986fea0ef5dbd50ab235bfe6cda 23-Jan-2014 Nick Kledzik <kledzik@apple.com> Use .p2align instead of .align

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199941 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersSave.S
a3667741192e8ef640535b4af0d7ad6f22230b36 23-Jan-2014 Nick Kledzik <kledzik@apple.com> Add missing alignment directives in assembly

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199915 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersSave.S
8cb8b2086426108c6ea737d83cfd739ae5e5d8d9 23-Jan-2014 Nick Kledzik <kledzik@apple.com> Don't redefine static_assert()

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199860 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/config.h
65b726605835d1b3947d648497729a4be05dedde 23-Jan-2014 Nick Kledzik <kledzik@apple.com> Fix unwinder to build for iOS

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@199859 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/AddressSpace.hpp
rc/Unwind/assembly.h
f29757a358ae9c07d3a768a5b40543fae9d768dd 07-Jan-2014 Howard Hinnant <hhinnant@apple.com> Implement demangling for user-defined operators.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@198643 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
341c0479b1e36922192ae79a0ae37463d90fe83a 01-Jan-2014 NAKAMURA Takumi <geek4civic@gmail.com> Update the copyright credits -- Happy new year 2014!

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
ICENSE.TXT
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
nclude/libunwind.h
rc/Unwind/Registers.hpp
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersSave.S
7c61d80c68ef9af39fbc49ef532c2252fa719ac9 17-Dec-2013 Nico Weber <nicolasweber@gmx.de> Add mangling macros for Unwind's inline assembly.

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
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersSave.S
rc/Unwind/assembly.h
753a30dd68ae008948d48f16bc942d5963fe65a1 11-Dec-2013 Howard Hinnant <hhinnant@apple.com> Fix demangling crasher. The crasher involved nested <encoding> involving 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
rc/cxa_demangle.cpp
est/test_demangle.cpp
be38d822057438996715f7bcae3d293a50908d03 06-Dec-2013 Nico Weber <nicolasweber@gmx.de> Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2

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
rc/Unwind/UnwindRegistersRestore.S
rc/Unwind/UnwindRegistersRestore_.s
rc/Unwind/UnwindRegistersSave.S
rc/Unwind/UnwindRegistersSave_.s
a722aca3bf2365fd407bc1604c667100d1efd74d 06-Dec-2013 Nico Weber <nicolasweber@gmx.de> Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2

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
rc/Unwind/UnwindRegistersRestore.s
rc/Unwind/UnwindRegistersRestore_.s
rc/Unwind/UnwindRegistersSave.s
rc/Unwind/UnwindRegistersSave_.s
7a49616b36e1331a3666fc893963854a85e5832a 06-Dec-2013 Nico Weber <nicolasweber@gmx.de> Fix minor initialization bug in Registers_x86_64.

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
rc/Unwind/Registers.hpp
cfbfdd9b55f7c85f83aad51060d3818c559d2ca6 05-Dec-2013 Nico Weber <nicolasweber@gmx.de> 80-column wrap a comment in a test



git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196540 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_const_pointer_nullptr.cpp
034e79a395bf7815fd94ad81d40609aa52f2f34c 05-Dec-2013 Nick Kledzik <kledzik@apple.com> [unwind] remove darwin build dependency on <mach-o/dyld_priv.h>

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196436 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/AddressSpace.hpp
c22004f1433b5cdd93403e1a048de21566604cd6 04-Dec-2013 Marshall Clow <mclow.lists@gmail.com> Fixed a couple of test errors; changed 'const A const *' to 'const A* const'. Thanks to Nico for the catch

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@196355 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_const_pointer_nullptr.cpp
59d65a824fbd2b6928acbf687be988059ca30ec6 30-Nov-2013 Mark Seaborn <mseaborn@chromium.org> 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
rc/cxa_exception.hpp
d9eb5fc4502578e2d2a4df8c60c46970c36c4046 22-Nov-2013 Yaron Keren <yaron.keren@gmail.com> 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
rc/private_typeinfo.cpp
36fd93fd039ef14005d6ab51c2e9f2816d2b7063 22-Nov-2013 Yaron Keren <yaron.keren@gmail.com> 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
rc/private_typeinfo.cpp
38a0eeb3adcb731111cfb03d4cfef5e4d0232cbb 07-Nov-2013 Howard Hinnant <hhinnant@apple.com> 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
rc/cxa_new_delete.cpp
7be749ac9c2c7b1871d29e5db957352d82728721 01-Nov-2013 Nick Kledzik <kledzik@apple.com> 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
rc/Unwind/UnwindRegistersRestore.s
rc/Unwind/UnwindRegistersSave.s
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
nclude/unwind.h
061240c142debbe643c5ce78673f019f1c953511 22-Oct-2013 Howard Hinnant <hhinnant@apple.com> 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
rc/cxa_demangle.cpp
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
nclude/unwind.h
6dc154019d5f0997d7df1d9e9f3ba1425396dcd8 09-Oct-2013 Nick Kledzik <kledzik@apple.com> [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
rc/Unwind/UnwindCursor.hpp
rc/Unwind/libunwind.cpp
3dbb334d7ac5a00381bd9a37c1ca0e4f83a2b893 09-Oct-2013 Nick Kledzik <kledzik@apple.com> [unwind] add required #include

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192245 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/Registers.hpp
952df57e2c437ad013511e445a2b8bffa77bf9ca 08-Oct-2013 Nick Kledzik <kledzik@apple.com> 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
rc/Unwind/Unwind_AppleExtras.cpp
17814d74f7dcaea1ad817129e020724f002ddbd2 08-Oct-2013 Joerg Sonnenberger <joerg@bec.de> Consistent spelling of names.


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@192180 91177308-0d34-0410-b5e6-96231b3b80d8
rc/Unwind/dwarf2.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
nclude/libunwind.h
nclude/mach-o/compact_unwind_encoding.h
nclude/unwind.h
rc/Unwind/AddressSpace.hpp
rc/Unwind/CompactUnwinder.hpp
rc/Unwind/DwarfInstructions.hpp
rc/Unwind/DwarfParser.hpp
rc/Unwind/Registers.hpp
rc/Unwind/Unwind-sjlj.c
rc/Unwind/UnwindCursor.hpp
rc/Unwind/UnwindLevel1-gcc-ext.c
rc/Unwind/UnwindLevel1.c
rc/Unwind/UnwindRegistersRestore.s
rc/Unwind/UnwindRegistersSave.s
rc/Unwind/Unwind_AppleExtras.cpp
rc/Unwind/config.h
rc/Unwind/dwarf2.h
rc/Unwind/libunwind.cpp
rc/Unwind/libunwind_ext.h
rc/Unwind/unwind_ext.h
6c3f675c0bfee072f827b99b2b71fe54f92ee0c4 11-Sep-2013 Marshall Clow <mclow.lists@gmail.com> Adding bad_array_length to libc++abi

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190479 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_new_delete.cpp
01c2084f452e3d384ae1e193a241a773f01896b8 10-Sep-2013 Marshall Clow <mclow.lists@gmail.com> Add ability to set OPTIONS for compile

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@190371 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
224f7acc3612358a427e80642fa1c78aab5d30da 29-Aug-2013 Jean-Daniel Dupas <devlists@shadowlab.org> 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
rc/stdexcept.cpp
cdf7d557bd6835f66fe707ca7b1a8f22010ffb66 25-Aug-2013 Howard Hinnant <hhinnant@apple.com> 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
rc/stdexcept.cpp
41458a0681f60e9b6778dbb799cbb5647db628eb 30-Jul-2013 Howard Hinnant <hhinnant@apple.com> 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
est/dynamic_cast3.cpp
8ad6a220cfff34f8ecbadc142891c7728c4d4ed8 27-Jul-2013 Howard Hinnant <hhinnant@apple.com> 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
rc/cxa_demangle.cpp
e9e83878d6a90cda0b421261c2a608342b59b69a 02-Jul-2013 Howard Hinnant <hhinnant@apple.com> Updated CREDITS.TXT

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@185464 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
b2d1f94e76c016628f868868ed40a53c2b40b6ed 23-Jun-2013 Howard Hinnant <hhinnant@apple.com> I'd no sooner made the last commit when Matthew Dempsky sent me another test case that led me to yet another closely related test case that the current design could not handle. I've now changed the way forward references are handled completely. It wasn't that much code to change. The demangler, when confronted with a forward reference to a template parameter, now parses things twice. During the second parse, all forward references are remembered from the first parse. Test suite updated with new case.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184672 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
eb8d46c54e181eea4d33b96a9a13e2ac0bd329a8 23-Jun-2013 Howard Hinnant <hhinnant@apple.com> After a private conversation with Arthur O'Dwyer, and a good night's sleep, I believe this fix is a better fix than what I committed in r184656 yesterday. I've basically moved the checking for '`' from the start of the demangling process to the end of it. In the process I discovered that one of the test cases no longer demangled to the expected string. After further investigation I believe this case to not be a valid mangled string, and so I moved the test case to the 'invalid cases'. The reason I believe it is invalid is that it should use T_ instead of T0_ to index the template parameter.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184668 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
ab8cfb1dfb4bb7e5c8294a81639f08b7ff14ade9 23-Jun-2013 Howard Hinnant <hhinnant@apple.com> Filter out '`' in mangled strings and reject them as invalid if found.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184656 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
f672517e714ff464978992a363dce47de2207472 21-Jun-2013 Howard Hinnant <hhinnant@apple.com> I created a random mangled name generator and have thrown about 200 million random strings at the demangler. I succeeded in crashing it twice more and those crashers have been fixed and the test suite updated with the crash cases.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184562 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
93433df2421f377a55478d20c8a67b8f835380f5 20-Jun-2013 Howard Hinnant <hhinnant@apple.com> Another demangler crasher. Updated test suite to prevent regression.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184477 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
b4033ff8b4db60bbd7f2498d85fd7c4dd0ad5b11 20-Jun-2013 Howard Hinnant <hhinnant@apple.com> Protect against invalid mangled names. Add test suite for invalid mangled names.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184394 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
19e36dddb0023fad0c609328e6686d1bbbced718 19-Jun-2013 Howard Hinnant <hhinnant@apple.com> Demangle objc mangling implemented in r184250

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184301 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
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
nclude/cxa_demangle.h
rc/cxa_demangle.cpp
6c33e768c1b37af3e5d5f9f0e2a72fcf1dc51382 17-Jun-2013 Howard Hinnant <hhinnant@apple.com> Demangler update: This now demangles many more (all?) C++11 symbols. Demangler tests updated.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@184097 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_demangle.cpp
rc/cxa_exception.cpp
rc/private_typeinfo.cpp
rc/stdexcept.cpp
est/test_demangle.cpp
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
nclude/cxa_demangle.h
rc/cxa_demangle.cpp
est/test_demangle.cpp
6d00feffc82d4f8c0201242291a0e93b492e1dd4 15-Feb-2013 Howard Hinnant <hhinnant@apple.com> Bruce Mitchener: Typo fixes.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@175275 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
rc/cxa_exception.cpp
rc/cxa_exception_storage.cpp
rc/cxa_handlers.hpp
rc/cxa_personality.cpp
rc/cxa_vector.cpp
rc/private_typeinfo.cpp
cba79c6fd9380becbc72a0b85ffa5fc354690e9b 06-Feb-2013 Howard Hinnant <hhinnant@apple.com> Partially revert r152770. That commit moved the default handlers to their own file. But it also did some refactoring. It is the latter that is being reverted. The refactoring had accidentally removed the required effect that the default unexpected_handler calls std::terminate(), which is a visible effect.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@174532 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
b6ab0a42e181990d9f68e806914e93e05c57caa2 01-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> Update the copyright coredits -- Happy new year 2013!

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@171342 91177308-0d34-0410-b5e6-96231b3b80d8
ICENSE.TXT
fc715856f64d44b5a4a1be0264653afb64da1a0e 05-Dec-2012 Daniel Malea <daniel.malea@intel.com> Rename class __lambda_node to ___lambda_node to fix compile failure with gcc 4.6 and 4.7
- using "__lambda_node" causes internal compiler error in newer GCC versions



git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@169402 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
342f2f9ffa476d63a1fe1fa718b3243db2c7c5a7 30-Nov-2012 Howard Hinnant <hhinnant@apple.com> __list::ends_with_template was giving the wrong answer for empty lists. And __parse_unnamed_type_name wasn't properly handling the list of paramters and was not safe against incorrectly mangled lambdas (running past last).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@169022 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
06bbbdde3c601994cd92206c6afe26fbc67812ba 15-Nov-2012 Howard Hinnant <hhinnant@apple.com> Remove aborts under __dynamic_cast which were under _LIBCXX_DYNAMIC_FALLBACK. Change all type_info comparisons to use an inlined is_equal helper. However no change in functionality for this latter change at this time. This is just to encapsulate the comparison and make it a little easier to switch back and forth for testing/debugging.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@168052 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
7d39801ef5ee85869ce09c648aba6d84eccf5203 13-Nov-2012 Howard Hinnant <hhinnant@apple.com> Update CREDIT.TXT

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@167847 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
f8f7f7fee6ecdf9c9a0d3161621c518ffdac52cb 12-Nov-2012 Howard Hinnant <hhinnant@apple.com> Wen-Han Gu: Fix for http://llvm.org/bugs/show_bug.cgi?id=14312 Exception Table out-of-range but still keep walking.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@167733 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
4f1b1b490f231440e17bad26b3a2df2a709d010b 13-Oct-2012 Howard Hinnant <hhinnant@apple.com> Make the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@165883 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.h
33601b1827f85139727de58d2156aa51a2021b68 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@165397 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_demangle.cpp
326aca3713db53b9fb0dbfedc17d2e72aaca8a74 29-Sep-2012 Howard Hinnant <hhinnant@apple.com> Set up code under _LIBCXX_DYNAMIC_FALLBACK which is off by default. For a full description of _LIBCXX_DYNAMIC_FALLBACK, see src/private_typeinfo.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164863 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
552b14000a3063cfa561fd3f9fd3c26259e7ca31 28-Sep-2012 Howard Hinnant <hhinnant@apple.com> Improve the diagnostic messages on dynamic_cast.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164833 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
1a0d1bc64fa339249c28511fdd6a9780152c9980 28-Sep-2012 Howard Hinnant <hhinnant@apple.com> Two changes: 1) I still didn't have the ABI correct to match the gcc-4.2 std::string under the exception classes. I think the changes to stdexcept.cpp have got that down now. 2) On Apple platforms I'm seeing visibility bugs in applications with respect to type_info's being hidden. This is causing dynamic_cast to malfunction because there are multiple type_info's running around for one type within an application, making dynamic_cast believe that one type is actually multiple types. As a stop gap measure I'm trying to detect this error, print out an error message, but continue with the most likely desired result. This is all under __APPLE__. This behavior can be expanded to other platforms if desired.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164809 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/stdexcept.cpp
bafa55560f4fb3ae7b2342acd1120071be04ed4d 24-Sep-2012 Marshall Clow <mclow@qualcomm.com> Updating email address

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164490 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
aab600ca0c9b5bae8c07051db2d675991e90d002 21-Sep-2012 Howard Hinnant <hhinnant@apple.com> Rename class __lambda to __lambda_node to avoid clash with gcc. This fixes http://llvm.org/bugs/show_bug.cgi?id=13889

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164405 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
6cb5b2821fd1e3e8b9b6717e601c2f58bbe3d5a3 21-Sep-2012 Howard Hinnant <hhinnant@apple.com> Tweak use of dlopen to be a little more correct and higher performing.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164404 91177308-0d34-0410-b5e6-96231b3b80d8
rc/stdexcept.cpp
b62c5886c68c0a17873810a202bbccd38a33b948 18-Sep-2012 Howard Hinnant <hhinnant@apple.com> I've added Apple-only behavior that looks for libstdc++ in the same process and if found, checks the string stored in <stdexcept> exception objects to see if it is the gcc empty string singleton before manipulating the reference count. This is done so that if such an exception is created with a zero-length string in libstdc++, libc++abi won't try to delete the memory. This is part of a ongoing process to make libc++ exceptions ABI-compatible with libstdc++-4.2 exceptions, to the point that each library can catch exceptions thrown by the other. If other parties would also like this behavior, the #if __APPLE__ can be broadened.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@164170 91177308-0d34-0410-b5e6-96231b3b80d8
rc/stdexcept.cpp
86ccacd40f5ebb800066928cee322d318255c8ad 14-Sep-2012 Howard Hinnant <hhinnant@apple.com> Specifically disallow primary-expressions of the form LT_... on the basis of this decition: http://sourcerytools.com/pipermail/cxx-abi-dev/2011-August/002422.html . Failure to disallow this was causing infinite recursion in the demangler when these symbols show up due to mangling bugs. This patch causes the demangler to return an invalid mangled name result rather than crash in infinite recursion.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@163859 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
f4ce1e270bb661e9092e1b5de651d7ea5a7bd3d2 08-Aug-2012 Howard Hinnant <hhinnant@apple.com> Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@161496 91177308-0d34-0410-b5e6-96231b3b80d8
rc/stdexcept.cpp
20300c77d8c91266e409eef27568a582fe9ba4a0 04-Aug-2012 Howard Hinnant <hhinnant@apple.com> Fixes apple: #12020687. This was a problem in the demangler with template
substitution forward references. That is, sometimes a mangled name refers to
a substitution that hasn't yet been defined. The demangler was derferencing a
null pointer in this case because it wasn't properly guarded against a
forward reference. Test case added to catch this problem.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@161267 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
de2b1090d44a81c97ff3f1c21fac6088a1e28465 03-Aug-2012 Howard Hinnant <hhinnant@apple.com> Update status.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@161221 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
ww/spec.html
6c08591500b5b5d8541ed67c5967be1ca22753ad 01-Aug-2012 Howard Hinnant <hhinnant@apple.com> Update CREDITS.TXT

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@161129 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
ab0399980a3ced1a64840c1dd71cfaed42a33c8c 01-Aug-2012 Howard Hinnant <hhinnant@apple.com> Erik Olofsson: This patch adds support for lambda demangling. I fixed this because it crashed lldb when it tried to demangle the added test.

Not sure how it should identify the lambda so that might need changing from the current 'lambdax':: Howard: Please patch CREDITS.TXT.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@161125 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
52918c96580e8b428ca36d20e58791688495a110 29-Jul-2012 Howard Hinnant <hhinnant@apple.com> Andrew Morrow: Mainline clang seems to have recently become more strict about the
consistent application of visibility attributes, which causes some new
breakage in libcxxabi:

In file included from src/libcxxabi/src/cxa_default_handlers.cpp:19:
src/libcxxabi/src/private_typeinfo.h:123:23: error: visibility does
not match previous declaration
class __attribute__ ((__visibility__(default))) __class_type_info
^
src/libcxxabi/src/private_typeinfo.h:19:13: note: previous attribute is here
#pragma GCC visibility push(hidden)
^
1 error generated.

The forward declaration of __class_type_info is picking up hidden
visibility from the #pragma, which conflicts with the default
visibility applied when the class is later fully declared. I'm
assuming that the full declaration has it right (and that the
diagnostic is correct), so the attached patch applies the default
visibility attribute to the forward declaration.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@160933 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
rc/private_typeinfo.h
cdb1d55e23b046f1eda9814fe9e73675e62ba060 29-Jul-2012 Howard Hinnant <hhinnant@apple.com> Andrew Morrow: The variable 't1' on line 10188 of cxa_demangle.cpp is uninitialized
which generates -Wsometimes-uninitialized. Howard: The only thing this patch is missing is an update to CREDITS.TXT.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@160932 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
f59526da20aa9e8606881a6dc064a3981e91ff37 20-Jul-2012 Sylvestre Ledru <sylvestre@debian.org> add a link to the libc++ website

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@160553 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
921769df6c92e67c9923933934c41a93199250b3 11-Jul-2012 Richard Smith <richard-llvm@metafoo.co.uk> Add missing #include <stdlib.h> into test which uses ::exit.


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@160039 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_vector3.cpp
08115e4bef43187ccc847abae1ebf88607d65fc7 15-Jun-2012 Howard Hinnant <hhinnant@apple.com> Don't dereference root in __parse_ctor_dtor_name unless it is known to not be null.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@158556 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
1c8066cf848e2b4ee1ddcb21efe8bd9c115453d9 02-May-2012 Howard Hinnant <hhinnant@apple.com> Fix bug in cxa_demangle involving template substitution.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@155994 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
cb7f886ccca770e8b3ab9cdd892d740f5b8b8031 28-Apr-2012 Howard Hinnant <hhinnant@apple.com> Make __cxa_new_handler un-mangled

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@155763 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
80e5b1732e0c63da1415b4d8300cf18a03253985 24-Apr-2012 Howard Hinnant <hhinnant@apple.com> Changed 'cause' from 'terminate' to 'uncaught' in default_terminate_handler

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@155452 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
219b371bb323f60ffd88f87c58732739bccee649 18-Apr-2012 Howard Hinnant <hhinnant@apple.com> Richard Smith: __int128 is a GNU keyword which clang 3.1 supports. This usage of it as an identifier will need to be renamed.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@155044 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
4cfb63f07516ceff10be81c7dfac6c18122df782 19-Mar-2012 Howard Hinnant <hhinnant@apple.com> I would really like to write the handlers in terms of C++11 atomics. This would give us the best performance, portablity, and safety tradeoff. Unfortunately I can not yet do that. So I've put the desired code in comments, and reverted the handler getters to the slower but safer legacy atomic intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@153041 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
rc/cxa_handlers.cpp
rc/cxa_handlers.hpp
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
nclude/cxxabi.h
rc/cxa_default_handlers.cpp
rc/cxa_default_handlers.hpp
rc/cxa_exception.hpp
rc/cxa_handlers.cpp
rc/cxa_handlers.hpp
1321731d59f4afcab576de163f625c65eea96871 17-Mar-2012 Howard Hinnant <hhinnant@apple.com> Arm fixes in cxa_personality.cpp and a little refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152966 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
1ba2c4bd78fdf18737cf347d9789352d91d04741 15-Mar-2012 Dave Zarzycki <zarzycki@apple.com> Less lame "concurrency" support

These APIs aren't thread safe, but they're pretending to be. Let's at
least make the getter as fast as they can be. The setters are a lost
cause unless the API can be fixed.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152786 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
rc/cxa_handlers.cpp
2507beff620a5d748de01b83bb8f33adcb228c0e 15-Mar-2012 Dave Zarzycki <zarzycki@apple.com> Be friendly to when dead_strip doesn't work

Apple Radar: 11053417

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152785 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
rc/cxa_handlers.cpp
439ce87946c310a093f4d39a2636ce6b4682bdac 15-Mar-2012 Nick Kledzik <kledzik@apple.com> move default handlers to their own file so they can be overridden at build time (dyld)

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152770 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_default_handlers.cpp
rc/cxa_default_handlers.hpp
rc/cxa_handlers.cpp
4d590c39af9e199a45148da87f205c24ef52579c 14-Mar-2012 Howard Hinnant <hhinnant@apple.com> Missed an underscore on the last commit.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152736 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_guard.cpp
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
nclude/cxxabi.h
rc/cxa_guard.cpp
a31cad9a68d5aee38c9e4f263f0389d2f197a7e5 14-Mar-2012 Nick Kledzik <kledzik@apple.com> fix crash log magic

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152693 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/abort_message.cpp
96f01710bc5b9c37765f60b9a2e12327d2463d65 09-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable / silence -Wunused-parameter.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152415 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_demangle.cpp
rc/cxa_personality.cpp
rc/private_typeinfo.cpp
3edfd1b86d1d87f6796b1a1e87200a5d8be7b545 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable -Wstrict-aliasing=2 -Wstrict-overflow=4.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152338 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
ffdd8c414f615bb056bbe04c25045355ecbcce11 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wsign-compare.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152336 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
30a486dae26f8b80f8a6b3a55415783b80a1734a 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wsign-compare.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152335 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_demangle.cpp
91f198a4c8f43b40f23e8c51641e62fe5e13115a 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wmissing-field-initializers.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152334 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/private_typeinfo.cpp
dfa81caf63ec3b24c6d2ffd7d9e8e4a98b203570 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wunused-variable.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152329 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_personality.cpp
85bc82e6d9dd6447c2eb8414cd3ce650cfa0091a 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wconversion.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152328 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_demangle.cpp
rc/cxa_personality.cpp
rc/fallback_malloc.ipp
f2ebd5904c06ebca3c759d0b8ca877ffaee62daf 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wshadow.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152325 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_handlers.cpp
3e5c7d0cdb8e17531d5d09f5df1d4ed85d84f356 08-Mar-2012 Howard Hinnant <hhinnant@apple.com> Enable/silence -Wsign-conversion.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@152323 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_demangle.cpp
rc/cxa_personality.cpp
rc/fallback_malloc.ipp
7f9d213dae9bb6aaea7fc8f697680b5f69178f84 29-Feb-2012 Howard Hinnant <hhinnant@apple.com> First attempt at arm support.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151765 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_personality.cpp
8f28628704f966409e860c74c46041e04c082720 23-Feb-2012 Howard Hinnant <hhinnant@apple.com> Insert a couple of dummy virtual functions to ease low level binary compatibility with other low level tools.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151282 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
ff94a3ab3ac34b588c6fe3b6e2428407c939ad21 23-Feb-2012 Howard Hinnant <hhinnant@apple.com> And the handlers should be extern C.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151261 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
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
nclude/cxxabi.h
rc/cxa_handlers.cpp
rc/temporary.cpp
74ecc63c3f0f72848cf0deb509e194a29487d83b 22-Feb-2012 Dave Zarzycki <zarzycki@apple.com> Pedantic fix: missing newline at EOF

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@151132 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_exception.hpp
a2bde87e21cf37e0703f7c2a25683776a3698e94 17-Feb-2012 Howard Hinnant <hhinnant@apple.com> Move typeinfos for exceptions in <stdexcept> to the abi

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@150834 91177308-0d34-0410-b5e6-96231b3b80d8
rc/stdexcept.cpp
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
nclude/cxxabi.h
e045f21bc1c1e0d3e7102f6bab248f8c8959b77d 17-Feb-2012 Howard Hinnant <hhinnant@apple.com> Remove outdated information from comment.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@150827 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
9a365feb1662dd37d134a90a25c1859f10393879 03-Feb-2012 Howard Hinnant <hhinnant@apple.com> __gxx_personality_v0 and __cxa_call_unexpected are complete on darwin and I *think* linux (not positive), but still unimplemented on arm.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149711 91177308-0d34-0410-b5e6-96231b3b80d8
ww/spec.html
6a169793477ad8e13baf2b74d411e54ffe11d407 03-Feb-2012 Howard Hinnant <hhinnant@apple.com> Pushed optimization back up. Crash disappeared with compiler upgrade. Assumed to be due to compiler bug.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149702 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
8e0a2d23782634460d66bf45e6c781c2f0111859 02-Feb-2012 Howard Hinnant <hhinnant@apple.com> corrected namespace in test

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149635 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_demangle.cpp
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
nclude/cxa_demangle.h
rc/abort_message.cpp
rc/abort_message.h
rc/cxa_demangle.cpp
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/private_typeinfo.cpp
rc/private_typeinfo.h
rc/typeinfo.cpp
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
nclude/cxxabi.h
e35bb601572fd3b1163b16141a3440afd6bb99e3 02-Feb-2012 Howard Hinnant <hhinnant@apple.com> There's a crasher I need to track down, occurring at -O0.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149631 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
cf95babcc4bf55cb4d31f993b156d422f4d71d43 01-Feb-2012 Marshall Clow <mclow@qualcomm.com> added const nullptr tests

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149552 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_const_pointer_nullptr.cpp
61a88d8800ff9d0da605fd2ae10f9a7ab21126b1 01-Feb-2012 Marshall Clow <mclow@qualcomm.com> removed duplicated tests - Howard was quicker than me.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149545 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_const_pointer_nullptr.cpp
c9577b1a2b76060662ea0cf43d7d32b03e268757 01-Feb-2012 Marshall Clow <mclow@qualcomm.com> Added tests for catching const/non-const nullptr

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149542 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_const_pointer_nullptr.cpp
4c3bdd6f627102278cd8a6d4c78b951f04df1a89 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Add test for pointer qualification conversion.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149541 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_ptr_02.cpp
0550d57ec1c783ff5f56ff15f933e01d81574105 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Changed a TODO to a 'maybe some time in the future'.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149539 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
9f54f7a8887de57af1bb4dbe35a6df6b75a0457f 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Removed DEBUG statements.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149538 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
575160dca047ec64540c0a3caa99a26e0898bc52 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Remove a TODO regarding where some can_catch are implemented. I opted to make can_catch pure virtual in the top __shim_type_info, and have each sub-class implement its own. There are some repeated definitions, but they are trivial.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149537 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
ebe450533fae286801d85a4cbfd12e0c4ce8f507 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Add some tests to test catching nullptr with pointers and member pointers. Tests are only activated if #if __has_feature(cxx_nullptr).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149536 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_member_pointer_nullptr.cpp
est/catch_pointer_nullptr.cpp
c649bdea9d3f67756d97fa1c9a837f53a762dbcc 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Quash a TODO related to catching pointer-to-member. These tests fail on my copy of gcc-4.2. But I believe the tests to be correct (and they pass for libc++abi). I've enquired on the C++ standards mailing list for a clarification in case I'm wrong. So far I've gotten one response that agrees with me.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149534 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/catch_member_data_pointer_01.cpp
est/catch_member_function_pointer_01.cpp
4b3cb1cb82c0479bc9c675b79a2250ea4c85aae8 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Quash TODO regarding catch by function type. Add tests to back it up.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149530 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/catch_function_01.cpp
est/catch_function_02.cpp
aafd08aa288da66805f97231e8c64020bc9d50c6 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Quash TODO regarding catch by array type. Add tests to back it up.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149527 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/catch_array_01.cpp
est/catch_array_02.cpp
7c73587e51f0f8edcf01eb1d9529dcac24c9681f 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Removing a TODO: can_catch is fundamentally different than search_above_dst. can_catch is looking for an unamiguous public base class of a specific type, but at any address. search_above_dst is looking for an unambiguous public base class of a specific type, *and* at a specific address. Additionally can_catch is run for all types. search_above_dst is only run on class types. So these are only superficially similar. Not similar enough for resuse, at least without making the code unreadable.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149522 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
8dd7a48855cc1e11101b967664d9602f49ab6842 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Teach exception_cleanup_func about dependent exceptions.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149520 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
7ab185ea390a9ad39f512bd3e7d3ee6ea76812c8 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Treat all exceptions except that the ones that this library throws as foreign. Even other C++ exceptions.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149518 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/cxa_handlers.cpp
rc/cxa_personality.cpp
29ae5fcdaedec7039c65355ef35955cbeacb61c1 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Nothing but polishing comments.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149515 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
3a1009ca976989bae6308d9bc49494d22c578e79 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Move an error detector to a better place.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149513 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
e162bf2dec6169ed06396af11eac19791e37957a 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> Here's a test for catching pointers.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149459 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_ptr.cpp
830713c63ecaf0a5d7690db92f83f2741754de15 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> More test cases concentrating on catching class types.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149453 91177308-0d34-0410-b5e6-96231b3b80d8
est/catch_class_01.cpp
est/catch_class_02.cpp
est/catch_class_03.cpp
est/catch_class_04.cpp
est/dynamic_cast_stress.cpp
dfb07f80c1a0063130c5738ff7d060d22f79b8bf 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Some unwinding test cases

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149436 91177308-0d34-0410-b5e6-96231b3b80d8
est/testit
est/unwind_01.cpp
est/unwind_02.cpp
est/unwind_03.cpp
est/unwind_04.cpp
est/unwind_05.cpp
3a2765fc4e360a1eea76d439d1c5fd0b4a4a7d14 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Back the optimization down from -O3 to -Os. I'm getting an unexplained crasher on -O3. I've looked for a libc++abi bug and can't find one. I'm suspecting clang optimizer bug. But I don't have a good test case at the moment. Deferring investigation on this for now as I will soon be developing more and smaller tests.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149414 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
rc/cxa_personality.cpp
9fb5709499823d560501170735097ba77152aa5d 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Drop the stress a notch on dynamic_cast_stress.cpp. Otherwise it occasionally causes clang to crash. Put a noexcept(false) on a throwing destructor in test_vector1.cpp. The test now passes for both C++03 and C++11 modes. Add testit script. All tests are now PASSING :-)

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149413 91177308-0d34-0410-b5e6-96231b3b80d8
est/dynamic_cast_stress.cpp
est/test_vector1.cpp
est/testit
6953d901c3fd95e27241b305f35a0fc97bd881e6 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Correct test bug.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149412 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_exception_storage.cpp
06b1ea1bbdc163008d1e7714f5f41f43908b8def 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Have the default unexpected/terminate handler output *demangled* names for the type of exception instead of the mangled name.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149409 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
2e774bf081cc1aeff076a250ade5c909f9ad79a8 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Fix type-o in the comment of the last commit

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149403 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
135b4bd2232cf870ec45a07970f5402ba96baddf 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Found and fixed a bug in __cxa_call_unexpected. If the unexpected_handler rethrows the same exception then needed information gets overwritten in the original exception header. Therefore save it locally before executing the unexpected_handler.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149400 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
a5f9da203dc18d2c34909a63d12c2604f6d006d9 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Found and fixed bug in personality function: Don't dive into the action table if the action entry is zero.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149389 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
rc/temporary.cpp
1a58491066c80bd4b599e49fe0930b9390807e0b 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Minor bug fix in __cxa_call_unexpected. Changed std::terminate to detect a caught-but-unhandled exception, and choose the handler out of that if found.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149329 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
rc/cxa_personality.cpp
4c8d5613f35b03a3b6dc050a822e9a63e038e837 30-Jan-2012 Howard Hinnant <hhinnant@apple.com> Refactored personality function. Found one bug in scanning exception spec lists.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149272 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
723ef221e08a1f60cd6b85bed883b351f5397f42 30-Jan-2012 Howard Hinnant <hhinnant@apple.com> Removed debugging print statements

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149271 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
7da9b96afc66c4496eb8809897c1b707b574a5c4 30-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add a descriptive name for a constant. Also I'm at least temporarily waging war on throw specs, both old and new style. Except where we have already publicly exposed the throw spec, I'm getting rid of them. They may come back later. But they seem somewhat prone to cyclic dependencies here. The throw spec implies compiler generated code that this library has to jump to during stack unwinding. I'd like to minimize the possiblity that the code used to properly make that jump is itself creating such jumps.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149251 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/cxa_exception_storage.cpp
rc/cxa_handlers.cpp
rc/cxa_personality.cpp
rc/cxa_unexpected.cpp
rc/fallback_malloc.ipp
2b891bfd06e8e1ecf399b2684d5616de507e8403 30-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add -fstrict-aliasing -Wstrict-aliasing and change optimization from -Os to -O3

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149250 91177308-0d34-0410-b5e6-96231b3b80d8
ib/buildit
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
nclude/cxxabi.h
978bfdea305b62e4de913a8532657ebf977ab03f 28-Jan-2012 Howard Hinnant <hhinnant@apple.com> Minor updates to a couple of comments.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149158 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
a4d69a35ba389303a702621b7b6cb186a7af93c9 28-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add a little paranoia for testing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149157 91177308-0d34-0410-b5e6-96231b3b80d8
rc/temporary.cpp
27b00d862a71566e4d6e5fef5fd29bf8280a2f4a 28-Jan-2012 Howard Hinnant <hhinnant@apple.com> Minor header fixups for test.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149156 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_exception_storage.cpp
eb6fb17e25f182de6ed219630c31af2c45ddb7ba 28-Jan-2012 Howard Hinnant <hhinnant@apple.com> Silence a warning.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149155 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_aux_runtime.cpp
66f658093ac102462464a896e5c0f4927fed9eac 28-Jan-2012 Howard Hinnant <hhinnant@apple.com> Sometimes it takes all day to write a decent comment. This is one of those times, and I'm still not quite sure I have them correct.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149154 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
033016c5623cca0240c5032d6d18d3a7db178e30 25-Jan-2012 Howard Hinnant <hhinnant@apple.com> These commits are intended to be temporary in nature and are to facilitate the testing of libc++abi.dylib at this point in time.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148967 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_unexpected.cpp
rc/private_typeinfo.cpp
rc/private_typeinfo.h
rc/temporary.cpp
f6d4cba78392f9248251168628c7236071ed88eb 25-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add comment documenting extension behavior of __cxa_get_globals_fast().

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148966 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception_storage.cpp
de34b3e7ee1bf1ecdc595c6117fde99f1a974dcd 25-Jan-2012 Howard Hinnant <hhinnant@apple.com> cxa_guard.cpp didn't quite make it on the last commit: Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall. Thanks John.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148965 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_guard.cpp
1743feef39d62289a24b66ec3d5ef6a41edfc396 25-Jan-2012 Howard Hinnant <hhinnant@apple.com> Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall. Thanks John.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148963 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.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
nclude/cxxabi.h
ib/buildit
rc/cxa_exception.cpp
rc/cxa_exception.hpp
rc/cxa_exception_storage.cpp
rc/fallback_malloc.ipp
00cc7d2c79c179b54893ad215679bfae904578f5 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add some needed symbols in exception.cpp and eliminate dependence upon uncaught_exception() from cxa_vector.cpp. libc++abi is very nearly a self-contained (though not complete) library now.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148866 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_vector.cpp
rc/exception.cpp
60a178840d23fbf169a22fde1cef5e558ef232f9 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Marshall Clow reminded me that fallback_malloc.cpp was broken out for testing purposes. We've agreed to simply rename fallback_malloc.cpp to fallback_malloc.ipp. Thanks Marshall.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148863 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/fallback_malloc.ipp
est/test_fallback_malloc.cpp
35b2c2af6b2720a3f624ad556b1a3c75394350d7 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add some needed symbols to cxa_new_delete.cpp and put the display() stuff under #DEBUG (again).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148860 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_new_delete.cpp
rc/private_typeinfo.cpp
rc/private_typeinfo.h
c2dfdeb45185892867d765a75668760285dbfbf0 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Got fooled by fallback_malloc.cpp source file: it is really a private header. I've manually included it into the only place it is used: cxa_exception.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148854 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/fallback_malloc.cpp
73fd45bc7dbe3f3874a69783cc8d5419201c4f1f 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add new file for public type_info-related signatures

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148853 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/typeinfo.cpp
c632c50527eb60090a5c1ba092cf6c9118d80dbe 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> CrashReporterClient.h is back, but this time protected with __has_include. Thanks for the suggestion Doug. The use is consistent with how the same header is used in llvm/lib/Support/PrettyStackTrace.cpp (though there autoconfig is used instead of __has_include).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148851 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.c
rc/abort_message.cpp
rc/abort_message.h
3f034b77daeb3d7ab5a0c5167b2ffece7c9cbd28 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Remove dependence upon std::exception_ptr from the default_terminate_handler. Recovered the equivalent functionality at a lower level.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148830 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
rc/cxa_handlers.hpp
08f419c67a30f4c03684e8f317c9234549842740 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Forgot to include this file in the last commit: Move kOurExceptionClass and kOurDependentExceptionClass from source to header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148829 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
2a70c109842324cebbfc1299eb70b6a1b8c0e5b6 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Move kOurExceptionClass and kOurDependentExceptionClass from source to header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148827 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_exception.hpp
ae154287dd55f8fb2b374af757b41db2e328a5c2 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Removed reference to internal header

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148763 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.cpp
ca6514dfeab3c7fad4c111cd07996661452cecb0 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Changed my mind about __cxa_uncaught_exception and added it.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148754 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
ww/spec.html
8f696ff15c2e188dac75dbed3f7524fb80928607 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> I renamed abort_message to be a C++ file to simplify my simplistic build script which I'm still working on. I also added a struct for the crash reporter on __APPLE__.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148752 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.cpp
928afcd281e2bcad26baaa67dfd035e547870a8d 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> A lot of the code in cxa_exception.cpp depends on __cxa_get_globals_fast() returning null if __cxa_get_globals() hasn't been called yet. However it doesn't reliably do that, at least on OS X if __cxa_get_globals_fast() is called prior to pthread_key_create() running. Our choice is to either limit our use of __cxa_get_globals_fast() more than we have, or to have __cxa_get_globals_fast() initialize with pthread_key_create() if necessary. I chose the latter, and replaced pthread_once with a C++11 local static (which should do the same thing).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148750 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception_storage.cpp
9c6f621671600fbbe85c54e9233e42a68ec4d69c 24-Jan-2012 Howard Hinnant <hhinnant@apple.com> Added missing #include

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148749 91177308-0d34-0410-b5e6-96231b3b80d8
rc/fallback_malloc.cpp
a1919d2ee24b06c833493cf06335afa307028bf7 23-Jan-2012 Howard Hinnant <hhinnant@apple.com> I'm beginning to be able to throw/catch a wide variety of objects.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148713 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
c30bfdc7ff4f0ab46e614fb8891be0785ae9a753 22-Jan-2012 Howard Hinnant <hhinnant@apple.com> Getting started on matching a thrown exception to a catch clause, and setting the adjusted pointer to the caught object appearing in the catch clause.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148666 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
rc/private_typeinfo.cpp
rc/private_typeinfo.h
a36fb308d6767c013e6714b50e40c059be1a1911 22-Jan-2012 Howard Hinnant <hhinnant@apple.com> I kept getting confused among the __cxa_exception*, the _Unwind_Exception* and the void* to the thrown object. So I've gone through these two files and attempted to institute a consistent variable naming scheme, and in a few instances, turned void* into a concrete* to have the type system help me out. No change in functionality for this commit is intended.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148663 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_personality.cpp
facfc46ef3ecde55e675fa19d93d9a25b169c49f 22-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add __shim_type_info which fits below std::type_info and above all of the other type_info-derived classes. This is where all of the virtual functions that serve as details of the inner-workings of type_info will live (safely hidden from public view). All type_info objects will be safely down-castable to __shim_type_info, so as to access implementation detail virtual functions. Also temporarily add some print/display statements to each type_info-derived class. This is in support of the continuing development on the personality function.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148647 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
321a095c08f0700e8619266518b63d438285d3a1 22-Jan-2012 Howard Hinnant <hhinnant@apple.com> Change header to generic, instead of implementation specific

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148646 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_demangle.cpp
65255631de793131622f701df9075dfd78abfc50 16-Jan-2012 Howard Hinnant <hhinnant@apple.com> One more small optimization: Where possible, for loops that do a search and then try to break out of the loop early, eliminate the attempt to break out of the loop after the last search. And with that, I'm declaring __dynamic_cast done. Though if anyone sees any problems, has suggestions for improvements, or wants to contribute some test cases, that is certainly welcome feedback.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148246 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/dynamic_cast_stress.cpp
ww/spec.html
cc614df38c199d9781a6dea123e714970e82711f 16-Jan-2012 Howard Hinnant <hhinnant@apple.com> Comment smithing. Changed some casts from C-style to C++. And added timings to all of the tests.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148241 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
est/dynamic_cast14.cpp
est/dynamic_cast3.cpp
est/dynamic_cast5.cpp
1309366d3676ca5a34bea0388ad2d2dd5701dc9b 16-Jan-2012 Howard Hinnant <hhinnant@apple.com> I think this is getting close on __dynamic_cast. There's been quite a bit of code rearrangement, renaming, and better commenting. This exercise has exposed and fixed a few more bugs. I've also added several more tests (there's definitely a need for more tests here).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148227 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
est/dynamic_cast14.cpp
est/dynamic_cast5.cpp
est/dynamic_cast_stress.cpp
481fe05b27444f74f941678051e3a6b3ada25f39 14-Jan-2012 Howard Hinnant <hhinnant@apple.com> Two bug fixes, several clarifications, and a few comment updates.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148180 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
271f1ac649aac4c80df7534270b19f3fbdce9c5d 14-Jan-2012 Howard Hinnant <hhinnant@apple.com> A bug fix involving the updating of path_dst_ptr_to_static_ptr. Some minor code rearrangement optimizations (putting most likely 'if' first in an if-else series. And some major optimizations which involve stopping the search prior to an exhaustive walk over the entire tree. Some of these stops are because an ambiguity is detected earlier. And some of the short circuiting is due to the information from the bits __diamond_shaped_mask and __non_diamond_repeat_mask. The stress test checked in last night is now about 28% faster for the B<Width/2, Depth> -O3 case. I'm still playing with some more optimization possibilities but I'm not sure they will play out.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148153 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
a39c1045016e51a6c4a834e02fe158373af2b49d 13-Jan-2012 Howard Hinnant <hhinnant@apple.com> Enclosed is a stress test for dynamic_cast. It stresses both libc++abi, and clang itself. It creates a ridiculously large class hierarchy using variadic templates. You can specify both the width and depth of the class hierarchy. And you can specify whether the cast is to the actual run time type, or to an intermediate layer in the class. About 1/3 of the time I compile this, it crashes the compiler. There seems to be an uninitialized area of memory, and I'm probably blowing past an assumption on class hierarchy size within clang (and understandably so). I can get it work most of the time with a class hierarchy width of 20 and a depth of 7. I'm making timings with both -O3 and -Os, using both cast to root and cast to intermediate, on both libc++abi, and gcc's dynamic_cast. I've put the results in a comment/table at the bottom of the test.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148083 91177308-0d34-0410-b5e6-96231b3b80d8
est/dynamic_cast_stress.cpp
68fd743cd3278364c9ec13da437586d989641265 12-Jan-2012 Howard Hinnant <hhinnant@apple.com> Oops, forgot to svn add the new test.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148047 91177308-0d34-0410-b5e6-96231b3b80d8
est/dynamic_cast5.cpp
9a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649 12-Jan-2012 Howard Hinnant <hhinnant@apple.com> Put debug print statments under a flag so that I can get a first glimpse at performance. So far I haven't noticed any performance difference between this new __dynamic_cast and gcc's implementation. But I've barely started looking. Also adding a couple of tests which come straight out of the standard.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148046 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
est/dynamic_cast3.cpp
185dc7d61ff4e58909f043f3a0c0d7d1d87ba7da 12-Jan-2012 Howard Hinnant <hhinnant@apple.com> Fixed a couple of bugs, updated many comments, and am including a comprehensive test for when there are only 3 types in place. I need to do something similar for 4 and maybe more types, but I'm not sure how comprehensive I can make the test at 4 and above types.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148038 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
est/dynamic_cast3.cpp
f877d21f16d5ecb32570a89148e614ff68d632be 12-Jan-2012 Howard Hinnant <hhinnant@apple.com> Initial implementaiton of __dynamic_cast. There is still lots of debugging code in here that needs to be stripped out. And many, many unit tests need to be written. And comments and probably code cleanliness needs to be improved. But I *think* the basic algorithm is sound. There also may still be some oportunities for algorithm optimization, I'm not positive.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147981 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
16650b58dfc7d1a2632b052843dc4e21ae949b07 11-Jan-2012 Howard Hinnant <hhinnant@apple.com> This is a transitory commit for __dynamic_cast. It contains debugging statements that are not intended to be in the finished product. However some of the dubbing statements themselves contain important documentation such as how to navigate a __class_type_info hierarchy, documenting object offset and inheritance access. The intention is that this debugging code will migrate into both actual code and comments. And capturing it here so that there is no chance this stuff will be lost.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147898 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
152beb7a421a05155ae339434c2b48e2151111cd 09-Jan-2012 Howard Hinnant <hhinnant@apple.com> Getting a start on the typeinfo infrastructure.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147776 91177308-0d34-0410-b5e6-96231b3b80d8
rc/private_typeinfo.cpp
rc/private_typeinfo.h
3fa75e1680116753824c47e3eba5648abbf891d0 09-Jan-2012 Howard Hinnant <hhinnant@apple.com> First brush with testing __gxx_personality_v0 reveals there is still a long way to go. But my understanding of what it is supposed to do continues to improve. I am currently contemplating whether I need to implement typeinfo before completing __gxx_personality_v0 in order to get matching catch handlers correct.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147761 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
8ca7603d21b85b03a57d703feb9e8e8bcd6dcfd0 09-Jan-2012 Howard Hinnant <hhinnant@apple.com> Add a few TODO's and FIXME's. Making notes as I go along, but not slowing down to fix these yet. Just don't want anything to fall through the cracks.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147760 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
acfbf36d9498d945da1491ed571b73bf9f5e050f 09-Jan-2012 Howard Hinnant <hhinnant@apple.com> Correct comment regarding members of __cxa_dependent_exception. Actually it is useful to disguise a __cxa_dependent_exception as a __cxa_exception by filling in most (not all) of these members at __cxa_dependent_exception construction time. That way most routines don't have to care which kind of exception they have.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147759 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.hpp
701d94c5dd4758912ad4ce4bfec79bd0c85127a4 06-Jan-2012 Howard Hinnant <hhinnant@apple.com> __gxx_personality_v0 update. This is completely untested code. But my brain is scrambled and I wanted to get it checked in. Code review from anyone who knows anything at all about personality functions would be much appreciated. What is in here is borrowed heavily from llvm/examples/ExceptionDemo/ExceptionDemo.cpp. There are some calls to abort() that should probably be changed to return an error code instead. There may be encodings under readEncodedPointer that need to be implemented. And my handling of type_info is almost a complete guess.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147680 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_personality.cpp
0acbd98b56b3e10c7e02db24ae09e9875be27c40 04-Jan-2012 Marshall Clow <mclow@qualcomm.com> Improved comment to explain why we can use __cxa_get_globals_fast here

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147554 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
ed2ea9bfd2ff873061734d7fc59886901f462c00 04-Jan-2012 Howard Hinnant <hhinnant@apple.com> Just getting started on the personality routine. This is just a skeleton. Still learning how to fill it in...

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147547 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_personality.cpp
2bce81b9692028a861666035755904a406cd084a 04-Jan-2012 Marshall Clow <mclow@qualcomm.com> Better comment

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147532 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
aeed3a90ceedca2111fc93301de2acc38a80229c 04-Jan-2012 Marshall Clow <mclow@qualcomm.com> Don't allocate TLS storage when checking to see if an exception has been thrown - really

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147497 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
62edc0172b356c9d2b4c46c1f309884d40ab1b7e 04-Jan-2012 Marshall Clow <mclow@qualcomm.com> Don't allocate TLS storage when checking to see if an exception has been thrown

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147492 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
57d64cd19aee4b6cf4acf6184a3f5d454bb69e9d 22-Dec-2011 Howard Hinnant <hhinnant@apple.com> credits adjustment

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147148 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
rc/cxa_exception.cpp
64e0097014e8a321735633265e5f9460f505c155 22-Dec-2011 Marshall Clow <mclow@qualcomm.com> Updated __cxa_current_exception_type to call __cxa_get_globals_fast - will not allocate globals

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147147 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
rc/cxa_exception.cpp
50dbae0b853250acc01b20357e77890ebfa371fe 22-Dec-2011 Howard Hinnant <hhinnant@apple.com> Updated spec.html regarding __cxa_uncaught_exception.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147110 91177308-0d34-0410-b5e6-96231b3b80d8
ww/spec.html
dd47ca4f1c0252fbdfd1d6338eaac9c42cade3b8 22-Dec-2011 Howard Hinnant <hhinnant@apple.com> Forgot to increment uncaughtExceptions in __cxa_rethrow_primary_exception

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@147108 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
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
nclude/cxxabi.h
rc/cxa_exception.cpp
ww/spec.html
4a6e1033ec6cb5648593424fa9e19689668f15a8 20-Dec-2011 Howard Hinnant <hhinnant@apple.com> Add new and delete operators

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146989 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_new_delete.cpp
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
nclude/cxa_demangle.h
rc/cxa_demangle.cpp
est/test_demangle.cpp
5ee51a7062e0973ac1d8b2d44598bf9e69bb08f0 13-Dec-2011 Howard Hinnant <hhinnant@apple.com> Fix size calculation for pointer to member function

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146463 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
d4028fe9fa58c189d699c8aad79941b5f3eef86e 12-Dec-2011 Howard Hinnant <hhinnant@apple.com> Made some minor tweaks to __cxa_rethrow

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146396 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
ww/spec.html
b5fea43d2d4953c953ed4dde24caedca4f4e9733 12-Dec-2011 Howard Hinnant <hhinnant@apple.com> Added dependent exception support to __cxa_current_exception_type

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146381 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
ww/spec.html
f270035a31a0abd92c1592ba0e87db0016127c3e 09-Dec-2011 Howard Hinnant <hhinnant@apple.com> Added support for <special-name> ::= TC <first type> <number> _ <second type> # construction vtable for second-in-first, and for <special-name> ::= GR <object name> # reference temporary for object

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146274 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
6eb54ad96edcf6311d304068c2fc7c9f15eb808d 08-Dec-2011 Howard Hinnant <hhinnant@apple.com> Modified __cxa_end_catch to handle dependent exceptions.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146172 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_exception.hpp
ww/spec.html
e8fcf83b576ff70ba5886fbd73434218a68ac414 07-Dec-2011 Howard Hinnant <hhinnant@apple.com> Reviewing cxa_exception.cpp and marking as implemented as I go. Not marking as implemented on arm when I'm not sure about that platform.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146072 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/cxa_handlers.cpp
rc/cxa_handlers.hpp
ww/spec.html
cd081650f80590890b3d8e024e32ce0789f00cfa 07-Dec-2011 Howard Hinnant <hhinnant@apple.com> Added __cxa_allocate_dependent_exception and __cxa_free_dependent_exception and marked them as done.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@146045 91177308-0d34-0410-b5e6-96231b3b80d8
ww/spec.html
fb271ad9c5f92a5d35bdc847020ba698bbff8997 06-Dec-2011 Howard Hinnant <hhinnant@apple.com> Substituted std::get_terminate() for direct access to the handler function pointer (which is now a static in cxa_handlers.cpp). This has the advantage of going through the atomic API and so is less likely to cause a data race. Ditto for unexpected.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@145951 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
b9f2cc816dc3e5369507db9509bea6d10b524a94 06-Dec-2011 Howard Hinnant <hhinnant@apple.com> Add/update copyright notices

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@145949 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.c
rc/abort_message.h
rc/cxa_exception.hpp
est/test_exception_storage.cpp
est/test_fallback_malloc.cpp
est/test_vector3.cpp
d2af0fd62fc0a75baebd3ba16f9caf35d6e8a0c5 06-Dec-2011 Howard Hinnant <hhinnant@apple.com> terminate, unexpected and new handlers. If terminating while an exception is unwinding, an attempt is made to print out the what() string if the exception is derived from std::exception. __terminate(handler) and __unexpected(handler) helpers are present in anticipation of other parts of libc++abi needing to call these interfaces with custom handlers.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@145948 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_handlers.cpp
f2888967f1c99bd49d64b56b91b68962a65f7df9 01-Dec-2011 Howard Hinnant <hhinnant@apple.com> Updated heuristic regulating small string buffer

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@145543 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
8ffc845e3f13335fb171858f935aec35c461e54a 28-Nov-2011 Howard Hinnant <hhinnant@apple.com> Add alignment requirement to char buffer

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@145277 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
7ac31268d7e8ece416572ccea8eb3b7f4029ea42 15-Aug-2011 Marshall Clow <mclow@qualcomm.com> reformatted to match Clang style; thanks to John McCall for the nudge

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@137623 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
89df8ad0d1bad867aeddf9cafe85b921eac31eba 12-Aug-2011 Howard Hinnant <hhinnant@apple.com> demangler: Drop preceeding () from function types, but not from pointers and references to function types

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@137469 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_demangle.cpp
est/test_demangle.cpp
7c4652fc013fe114c9df54b85ea8f892499ed399 09-Aug-2011 Marshall Clow <mclow@qualcomm.com> First cut at exception handling; missing dependent exceptions. Next step: tests

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@137118 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
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
nclude/cxa_demangle.h
rc/cxa_demangle.cpp
87143dced1a13254922973c14f5f71054b1e5b77 08-Aug-2011 Marshall Clow <mclow@qualcomm.com> Remove include reference to non-existant file cxa_exception_storage.hpp

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@137046 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
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
nclude/cxxabi.h
92567ec0a1786593ab3f1da16516e9a923e36d7e 02-Aug-2011 Nick Kledzik <kledzik@apple.com> use LIBCXXABI_NORETURN

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136681 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.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
nclude/cxxabi.h
f4429fe226241f3c537c3f5068518da9d1ab0de2 02-Aug-2011 Nick Kledzik <kledzik@apple.com> use abort_message() for pthread errors in __cxa_get_globals

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136672 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception_storage.cpp
4360a640d25a45b514dc69a045dab8d9ac3807fb 02-Aug-2011 Nick Kledzik <kledzik@apple.com> use abort_message()

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136671 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_virtual.cpp
41683112536848562f538ee20e16dcd86c84fed5 02-Aug-2011 Nick Kledzik <kledzik@apple.com> move abort_message() to its own file

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136670 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_guard.cpp
23171ddcf4478005836260c4dc5c7d2a68a2c248 02-Aug-2011 Nick Kledzik <kledzik@apple.com> add abort_message() utility function

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136669 91177308-0d34-0410-b5e6-96231b3b80d8
rc/abort_message.c
rc/abort_message.h
e7676de76d4d29c07bf7d7583533591977d44dba 02-Aug-2011 Nick Kledzik <kledzik@apple.com> Added kledzik to CREDITS.TXT

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@136667 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
ce5360cf5b54504f341900b59db0489e600451ec 25-Jul-2011 Marshall Clow <mclow@qualcomm.com> Updated comments

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135909 91177308-0d34-0410-b5e6-96231b3b80d8
rc/fallback_malloc.cpp
086e9d0b7479409f65f21bc491c2f8706f7a39a5 20-Jul-2011 Marshall Clow <mclow@qualcomm.com> Added copyright header

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135601 91177308-0d34-0410-b5e6-96231b3b80d8
rc/fallback_malloc.cpp
81b7ea7df48333715c0c57d5418c5383e3f5c950 20-Jul-2011 Howard Hinnant <hhinnant@apple.com> Update status: http://libcxxabi.llvm.org/spec.html . Looking good! :-)

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135590 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
ww/spec.html
47c29eb784f53ff170074ea00cd238e0e95af82f 20-Jul-2011 Marshall Clow <mclow@qualcomm.com> Memory manangement routines for exception objects

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135587 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.cpp
rc/fallback_malloc.cpp
est/test_fallback_malloc.cpp
61b898e4f717ecb3ce6aaa2652f7da712452d693 20-Jul-2011 Marshall Clow <mclow@qualcomm.com> Exception handling stuctures, and thread-local variables for exception handling

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135586 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_exception.hpp
rc/cxa_exception_storage.cpp
est/test_exception_storage.cpp
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
nclude/cxxabi.h
3c883588c333dd2baa1722afcb2130c5157c6748 18-Jul-2011 Howard Hinnant <hhinnant@apple.com> Update by Marshall Clow

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135397 91177308-0d34-0410-b5e6-96231b3b80d8
ww/spec.html
7123bcb3bbbcc33c69666d4f0f83052b9a64a7fb 14-Jul-2011 Howard Hinnant <hhinnant@apple.com> A stawman specification for libc++abi and status page

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@135181 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
ww/spec.html
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
nclude/cxa_demangle.h
rc/cxa_demangle.cpp
est/test_demangle.cpp
3050a5b3864fb7299e847feb7e691ee94a8e860c 13-Jun-2011 Marshall Clow <mclow@qualcomm.com> Clean up the vector tests

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132921 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_vector1.cpp
est/test_vector2.cpp
e52bde43f8528bfb81501eeffc4a17b44fdf3bfc 10-Jun-2011 Marshall Clow <mclow@qualcomm.com> Implement vector new and delete functionality

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132832 91177308-0d34-0410-b5e6-96231b3b80d8
rc/cxa_vector.cpp
est/test_vector1.cpp
est/test_vector2.cpp
est/test_vector3.cpp
0fff2a0592e8a59ce760dce629f82867fbf507f8 08-Jun-2011 Marshall Clow <mclow@qualcomm.com> Added Marshall to CREDITS.TXT as requested

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132754 91177308-0d34-0410-b5e6-96231b3b80d8
REDITS.TXT
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
nclude/cxxabi.h
rc/cxa_aux_runtime.cpp
est/test_guard.cpp
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
nclude/cxxabi.h
rc/cxa_guard.cpp
5dfef8de38c88d0bbccdb0b0f86a696f6d53dba8 04-Jun-2011 Nick Lewycky <nicholas@mxc.ca> Add more tests for cxa_guard methods. This includes our first two tests using
actual threads!

There's no build file for libcxxabi, so I'll tell you that I built it with this:
$ g++-4.6 -pthread -std=gnu++0x test_guard.cpp ../src/cxa_guard.o -o test_guard


git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132644 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_guard.cpp
05df4f911281af38267ca3e1f9a0bb3a13bf7b51 03-Jun-2011 Marshall Clow <mclow@qualcomm.com> Tests for bad_typeid and bad_cast

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@132545 91177308-0d34-0410-b5e6-96231b3b80d8
est/test_aux_runtime.cpp
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
nclude/cxxabi.h
rc/cxa_aux_runtime.cpp
rc/cxa_virtual.cpp
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
nclude/cxxabi.h
rc/cxa_guard.cpp
rc/cxa_virtual.cpp
est/test_guard.cpp
628bfc461df5d87a8fbf7d10cce7325245fd7d7e 20-May-2011 Howard Hinnant <hhinnant@apple.com> Add goal

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131703 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
84aba5e2368515cec9e1f04b833e379446974c6f 20-May-2011 Howard Hinnant <hhinnant@apple.com> Fix think-o

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131700 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
c2c0ad22d429a5cb6e741f1b3e2b608158e455f9 20-May-2011 Howard Hinnant <hhinnant@apple.com> testing

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131694 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
34aeef18d4b08e2d893d42dbb7bad6198738e29a 20-May-2011 Howard Hinnant <hhinnant@apple.com> testing

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131693 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
fb4e2f5744d85870cc1e7bd1eb763117be7a33db 20-May-2011 Howard Hinnant <hhinnant@apple.com> Add Mac OS X as supported platform.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131686 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
dbd74a44aeeb8698c6b2944eefba144b247d648d 20-May-2011 Howard Hinnant <hhinnant@apple.com> Add Mac OS X as supported platform.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@131685 91177308-0d34-0410-b5e6-96231b3b80d8
ww/index.html
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
REDITS.TXT
ICENSE.TXT
nclude/cxa_demangle.h
nclude/cxxabi.h
rc/cxa_demangle.cpp
est/test_demangle.cpp
ww/content.css
ww/index.html
ww/menu.css