summaryrefslogtreecommitdiffstats
path: root/libcxxabi
Commit message (Collapse)AuthorAgeFilesLines
...
* Demangler update: This now demangles many more (all?) C++11 symbols. ↵Howard Hinnant2013-06-176-9852/+3204
| | | | | | Demangler tests updated. llvm-svn: 184097
* Add capability to demangle invocation functions for ObjC blocks.Howard Hinnant2013-04-103-0/+83
| | | | llvm-svn: 179208
* Bruce Mitchener: Typo fixes.Howard Hinnant2013-02-157-12/+16
| | | | llvm-svn: 175275
* Partially revert r152770. That commit moved the default handlers to their ↵Howard Hinnant2013-02-061-9/+5
| | | | | | 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. llvm-svn: 174532
* Update the copyright coredits -- Happy new year 2013!NAKAMURA Takumi2013-01-011-2/+2
| | | | llvm-svn: 171342
* Rename class __lambda_node to ___lambda_node to fix compile failure with gcc ↵Daniel Malea2012-12-051-3/+3
| | | | | | | | 4.6 and 4.7 - using "__lambda_node" causes internal compiler error in newer GCC versions llvm-svn: 169402
* __list::ends_with_template was giving the wrong answer for empty lists. And ↵Howard Hinnant2012-11-302-31/+83
| | | | | | __parse_unnamed_type_name wasn't properly handling the list of paramters and was not safe against incorrectly mangled lambdas (running past last). llvm-svn: 169022
* Remove aborts under __dynamic_cast which were under ↵Howard Hinnant2012-11-151-25/+11
| | | | | | _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. llvm-svn: 168052
* Update CREDIT.TXTHoward Hinnant2012-11-131-0/+4
| | | | llvm-svn: 167847
* Wen-Han Gu: Fix for http://llvm.org/bugs/show_bug.cgi?id=14312 Exception ↵Howard Hinnant2012-11-121-2/+6
| | | | | | Table out-of-range but still keep walking. llvm-svn: 167733
* Make the type_info for __shim_type_info visible. This should address some ↵Howard Hinnant2012-10-131-5/+5
| | | | | | failing dynamic_casts that a few applications are doing on the type_info hierarchy. llvm-svn: 165883
* Move TargetData to DataLayout.Micah Villmow2012-10-081-156/+156
| | | | llvm-svn: 165397
* Set up code under _LIBCXX_DYNAMIC_FALLBACK which is off by default. For a ↵Howard Hinnant2012-09-282-50/+129
| | | | | | full description of _LIBCXX_DYNAMIC_FALLBACK, see src/private_typeinfo.cpp. llvm-svn: 164863
* Improve the diagnostic messages on dynamic_cast.Howard Hinnant2012-09-281-6/+6
| | | | llvm-svn: 164833
* Two changes: 1) I still didn't have the ABI correct to match the gcc-4.2 ↵Howard Hinnant2012-09-282-10/+48
| | | | | | 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. llvm-svn: 164809
* Updating email addressMarshall Clow2012-09-241-2/+1
| | | | llvm-svn: 164490
* Rename class __lambda to __lambda_node to avoid clash with gcc. This fixes ↵Howard Hinnant2012-09-211-3/+3
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=13889 llvm-svn: 164405
* Tweak use of dlopen to be a little more correct and higher performing.Howard Hinnant2012-09-211-1/+1
| | | | llvm-svn: 164404
* I've added Apple-only behavior that looks for libstdc++ in the same process ↵Howard Hinnant2012-09-181-6/+44
| | | | | | 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. llvm-svn: 164170
* Specifically disallow primary-expressions of the form LT_... on the basis of ↵Howard Hinnant2012-09-131-0/+4
| | | | | | 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. llvm-svn: 163859
* Change size of reference count field in __libcpp_nmstr from 32 bits to 64 ↵Howard Hinnant2012-08-081-3/+3
| | | | | | 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. llvm-svn: 161496
* Fixes apple: #12020687. This was a problem in the demangler with templateHoward Hinnant2012-08-032-2/+4
| | | | | | | | | 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. llvm-svn: 161267
* Update status.Howard Hinnant2012-08-022-5/+6
| | | | llvm-svn: 161221
* Update CREDITS.TXTHoward Hinnant2012-08-011-0/+5
| | | | llvm-svn: 161129
* Erik Olofsson: This patch adds support for lambda demangling. I fixed this ↵Howard Hinnant2012-08-012-4/+135
| | | | | | | | 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. llvm-svn: 161125
* Andrew Morrow: Mainline clang seems to have recently become more strict ↵Howard Hinnant2012-07-292-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 160933
* Andrew Morrow: The variable 't1' on line 10188 of cxa_demangle.cpp is ↵Howard Hinnant2012-07-291-1/+1
| | | | | | | | uninitialized which generates -Wsometimes-uninitialized. Howard: The only thing this patch is missing is an update to CREDITS.TXT. llvm-svn: 160932
* add a link to the libc++ websiteSylvestre Ledru2012-07-201-1/+1
| | | | llvm-svn: 160553
* Add missing #include <stdlib.h> into test which uses ::exit.Richard Smith2012-07-111-1/+2
| | | | llvm-svn: 160039
* Don't dereference root in __parse_ctor_dtor_name unless it is known to not ↵Howard Hinnant2012-06-151-1/+1
| | | | | | be null. llvm-svn: 158556
* Fix bug in cxa_demangle involving template substitution.Howard Hinnant2012-05-022-6/+10
| | | | llvm-svn: 155994
* Make __cxa_new_handler un-mangledHoward Hinnant2012-04-281-1/+1
| | | | llvm-svn: 155763
* Changed 'cause' from 'terminate' to 'uncaught' in default_terminate_handlerHoward Hinnant2012-04-241-1/+1
| | | | llvm-svn: 155452
* Richard Smith: __int128 is a GNU keyword which clang 3.1 supports. This ↵Howard Hinnant2012-04-181-2/+2
| | | | | | usage of it as an identifier will need to be renamed. llvm-svn: 155044
* I would really like to write the handlers in terms of C++11 atomics. This ↵Howard Hinnant2012-03-193-4/+39
| | | | | | 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. llvm-svn: 153041
* I've moved __cxa_terminate_handler, __cxa_unexpected_handler and ↵Howard Hinnant2012-03-196-50/+31
| | | | | | __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. llvm-svn: 153039
* Arm fixes in cxa_personality.cpp and a little refactoring.Howard Hinnant2012-03-171-24/+41
| | | | llvm-svn: 152966
* Less lame "concurrency" supportDave Zarzycki2012-03-152-6/+6
| | | | | | | | 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. llvm-svn: 152786
* Be friendly to when dead_strip doesn't workDave Zarzycki2012-03-152-19/+23
| | | | | | Apple Radar: 11053417 llvm-svn: 152785
* move default handlers to their own file so they can be overridden at build ↵Nick Kledzik2012-03-153-77/+124
| | | | | | time (dyld) llvm-svn: 152770
* Missed an underscore on the last commit.Howard Hinnant2012-03-141-2/+2
| | | | llvm-svn: 152736
* Enable __arm__ on appleHoward Hinnant2012-03-142-7/+7
| | | | llvm-svn: 152735
* fix crash log magicNick Kledzik2012-03-142-10/+4
| | | | llvm-svn: 152693
* Enable / silence -Wunused-parameter.Howard Hinnant2012-03-094-10/+12
| | | | llvm-svn: 152415
* Enable -Wstrict-aliasing=2 -Wstrict-overflow=4.Howard Hinnant2012-03-081-1/+1
| | | | llvm-svn: 152338
* Enable/silence -Wsign-compare.Howard Hinnant2012-03-081-1/+2
| | | | llvm-svn: 152336
* Enable/silence -Wsign-compare.Howard Hinnant2012-03-082-11/+12
| | | | llvm-svn: 152335
* Enable/silence -Wmissing-field-initializers.Howard Hinnant2012-03-082-1/+16
| | | | llvm-svn: 152334
* Enable/silence -Wunused-variable.Howard Hinnant2012-03-082-1/+3
| | | | llvm-svn: 152329
* Enable/silence -Wconversion.Howard Hinnant2012-03-084-8/+8
| | | | llvm-svn: 152328
OpenPOWER on IntegriCloud