summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Move typeinfos for exceptions in <stdexcept> to the abiHoward Hinnant2012-02-171-0/+122
| | | | llvm-svn: 150834
* Remove outdated information from comment.Howard Hinnant2012-02-171-7/+0
| | | | llvm-svn: 150827
* Work on restricting symbol visibility.Howard Hinnant2012-02-028-57/+81
| | | | llvm-svn: 149633
* Changed a TODO to a 'maybe some time in the future'.Howard Hinnant2012-02-011-1/+2
| | | | llvm-svn: 149539
* Removed DEBUG statements.Howard Hinnant2012-02-012-138/+0
| | | | llvm-svn: 149538
* Remove a TODO regarding where some can_catch are implemented. I opted to ↵Howard Hinnant2012-02-012-10/+1
| | | | | | 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. llvm-svn: 149537
* Quash a TODO related to catching pointer-to-member. These tests fail on my ↵Howard Hinnant2012-02-011-2/+1
| | | | | | 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. llvm-svn: 149534
* Quash TODO regarding catch by function type. Add tests to back it up.Howard Hinnant2012-02-011-1/+4
| | | | llvm-svn: 149530
* Quash TODO regarding catch by array type. Add tests to back it up.Howard Hinnant2012-02-011-1/+4
| | | | llvm-svn: 149527
* Removing a TODO: can_catch is fundamentally different than ↵Howard Hinnant2012-02-011-2/+0
| | | | | | 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. llvm-svn: 149522
* Teach exception_cleanup_func about dependent exceptions.Howard Hinnant2012-02-011-6/+3
| | | | llvm-svn: 149520
* Treat all exceptions except that the ones that this library throws as ↵Howard Hinnant2012-02-014-13/+16
| | | | | | foreign. Even other C++ exceptions. llvm-svn: 149518
* Nothing but polishing comments.Howard Hinnant2012-02-011-8/+27
| | | | llvm-svn: 149515
* Move an error detector to a better place.Howard Hinnant2012-02-011-5/+2
| | | | llvm-svn: 149513
* Back the optimization down from -O3 to -Os. I'm getting an unexplained ↵Howard Hinnant2012-01-311-2/+4
| | | | | | 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. llvm-svn: 149414
* Have the default unexpected/terminate handler output *demangled* names for ↵Howard Hinnant2012-01-311-3/+10
| | | | | | the type of exception instead of the mangled name. llvm-svn: 149409
* Fix type-o in the comment of the last commitHoward Hinnant2012-01-311-1/+1
| | | | llvm-svn: 149403
* Found and fixed a bug in __cxa_call_unexpected. If the unexpected_handler ↵Howard Hinnant2012-01-311-3/+16
| | | | | | rethrows the same exception then needed information gets overwritten in the original exception header. Therefore save it locally before executing the unexpected_handler. llvm-svn: 149400
* Found and fixed bug in personality function: Don't dive into the action ↵Howard Hinnant2012-01-312-7/+23
| | | | | | table if the action entry is zero. llvm-svn: 149389
* Minor bug fix in __cxa_call_unexpected. Changed std::terminate to detect a ↵Howard Hinnant2012-01-312-1/+20
| | | | | | caught-but-unhandled exception, and choose the handler out of that if found. llvm-svn: 149329
* Refactored personality function. Found one bug in scanning exception spec ↵Howard Hinnant2012-01-301-779/+361
| | | | | | lists. llvm-svn: 149272
* Removed debugging print statementsHoward Hinnant2012-01-301-9/+0
| | | | llvm-svn: 149271
* Add a descriptive name for a constant. Also I'm at least temporarily waging ↵Howard Hinnant2012-01-307-181/+1123
| | | | | | 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. llvm-svn: 149251
* Minor updates to a couple of comments.Howard Hinnant2012-01-281-1/+3
| | | | llvm-svn: 149158
* Add a little paranoia for testing purposes.Howard Hinnant2012-01-281-3/+11
| | | | llvm-svn: 149157
* Sometimes it takes all day to write a decent comment. This is one of those ↵Howard Hinnant2012-01-281-36/+144
| | | | | | times, and I'm still not quite sure I have them correct. llvm-svn: 149154
* These commits are intended to be temporary in nature and are to facilitate ↵Howard Hinnant2012-01-254-4/+54
| | | | | | the testing of libc++abi.dylib at this point in time. llvm-svn: 148967
* Add comment documenting extension behavior of __cxa_get_globals_fast().Howard Hinnant2012-01-251-0/+4
| | | | llvm-svn: 148966
* cxa_guard.cpp didn't quite make it on the last commit: Restricted headers ↵Howard Hinnant2012-01-251-3/+10
| | | | | | to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall. Thanks John. llvm-svn: 148965
* Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a ↵Howard Hinnant2012-01-251-1/+1
| | | | | | comment regarding reentrancy brought up by John McCall. Thanks John. llvm-svn: 148963
* By changing all of the throw() specs to noexcept I've been able to compile ↵Howard Hinnant2012-01-244-42/+42
| | | | | | 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. llvm-svn: 148880
* Add some needed symbols in exception.cpp and eliminate dependence upon ↵Howard Hinnant2012-01-242-1/+42
| | | | | | uncaught_exception() from cxa_vector.cpp. libc++abi is very nearly a self-contained (though not complete) library now. llvm-svn: 148866
* Marshall Clow reminded me that fallback_malloc.cpp was broken out for ↵Howard Hinnant2012-01-242-161/+175
| | | | | | testing purposes. We've agreed to simply rename fallback_malloc.cpp to fallback_malloc.ipp. Thanks Marshall. llvm-svn: 148863
* Add some needed symbols to cxa_new_delete.cpp and put the display() stuff ↵Howard Hinnant2012-01-243-50/+113
| | | | | | under #DEBUG (again). llvm-svn: 148860
* Got fooled by fallback_malloc.cpp source file: it is really a private ↵Howard Hinnant2012-01-242-178/+161
| | | | | | header. I've manually included it into the only place it is used: cxa_exception.cpp. llvm-svn: 148854
* Add new file for public type_info-related signaturesHoward Hinnant2012-01-242-13/+57
| | | | llvm-svn: 148853
* CrashReporterClient.h is back, but this time protected with __has_include. ↵Howard Hinnant2012-01-243-53/+32
| | | | | | 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). llvm-svn: 148851
* Remove dependence upon std::exception_ptr from the ↵Howard Hinnant2012-01-242-23/+38
| | | | | | default_terminate_handler. Recovered the equivalent functionality at a lower level. llvm-svn: 148830
* Forgot to include this file in the last commit: Move kOurExceptionClass and ↵Howard Hinnant2012-01-241-2/+0
| | | | | | 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. llvm-svn: 148829
* Move kOurExceptionClass and kOurDependentExceptionClass from source to ↵Howard Hinnant2012-01-242-3/+4
| | | | | | header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed. llvm-svn: 148827
* Removed reference to internal headerHoward Hinnant2012-01-241-37/+8
| | | | llvm-svn: 148763
* Changed my mind about __cxa_uncaught_exception and added it.Howard Hinnant2012-01-241-0/+9
| | | | llvm-svn: 148754
* I renamed abort_message to be a C++ file to simplify my simplistic build ↵Howard Hinnant2012-01-231-0/+58
| | | | | | script which I'm still working on. I also added a struct for the crash reporter on __APPLE__. llvm-svn: 148752
* A lot of the code in cxa_exception.cpp depends on __cxa_get_globals_fast() ↵Howard Hinnant2012-01-231-5/+4
| | | | | | 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). llvm-svn: 148750
* Added missing #includeHoward Hinnant2012-01-231-0/+2
| | | | llvm-svn: 148749
* I'm beginning to be able to throw/catch a wide variety of objects.Howard Hinnant2012-01-232-10/+224
| | | | llvm-svn: 148713
* Getting started on matching a thrown exception to a catch clause, and ↵Howard Hinnant2012-01-223-8/+53
| | | | | | setting the adjusted pointer to the caught object appearing in the catch clause. llvm-svn: 148666
* I kept getting confused among the __cxa_exception*, the _Unwind_Exception* ↵Howard Hinnant2012-01-222-158/+216
| | | | | | 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. llvm-svn: 148663
* Add __shim_type_info which fits below std::type_info and above all of the ↵Howard Hinnant2012-01-222-30/+217
| | | | | | 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. llvm-svn: 148647
* One more small optimization: Where possible, for loops that do a search and ↵Howard Hinnant2012-01-161-75/+84
| | | | | | 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. llvm-svn: 148246
OpenPOWER on IntegriCloud