Howard Hinnant
|
71cf5ab0d3
|
__gxx_personality_v0 and __cxa_call_unexpected are complete on darwin and I *think* linux (not positive), but still unimplemented on arm.
llvm-svn: 149711
|
2012-02-03 20:53:52 +00:00 |
Howard Hinnant
|
92afda06d7
|
Pushed optimization back up. Crash disappeared with compiler upgrade. Assumed to be due to compiler bug.
llvm-svn: 149702
|
2012-02-03 18:36:36 +00:00 |
Howard Hinnant
|
31dea02601
|
corrected namespace in test
llvm-svn: 149635
|
2012-02-02 22:00:52 +00:00 |
Howard Hinnant
|
eaa65afc7b
|
Work on restricting symbol visibility.
llvm-svn: 149633
|
2012-02-02 20:47:28 +00:00 |
Howard Hinnant
|
90ef25c05e
|
Add version number to this library so we can recognize when we're using it.
llvm-svn: 149632
|
2012-02-02 20:47:05 +00:00 |
Howard Hinnant
|
67e5863cd9
|
There's a crasher I need to track down, occurring at -O0.
llvm-svn: 149631
|
2012-02-02 20:42:31 +00:00 |
Marshall Clow
|
a27b0cd8ee
|
added const nullptr tests
llvm-svn: 149552
|
2012-02-01 22:27:24 +00:00 |
Marshall Clow
|
e71ddf2fcb
|
removed duplicated tests - Howard was quicker than me.
llvm-svn: 149545
|
2012-02-01 21:49:28 +00:00 |
Marshall Clow
|
62e0f4abf6
|
Added tests for catching const/non-const nullptr
llvm-svn: 149542
|
2012-02-01 21:37:24 +00:00 |
Howard Hinnant
|
60eaa49036
|
Add test for pointer qualification conversion.
llvm-svn: 149541
|
2012-02-01 21:25:40 +00:00 |
Howard Hinnant
|
30025116de
|
Changed a TODO to a 'maybe some time in the future'.
llvm-svn: 149539
|
2012-02-01 21:12:07 +00:00 |
Howard Hinnant
|
8030b7f751
|
Removed DEBUG statements.
llvm-svn: 149538
|
2012-02-01 21:08:30 +00:00 |
Howard Hinnant
|
089123e65f
|
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.
llvm-svn: 149537
|
2012-02-01 21:06:46 +00:00 |
Howard Hinnant
|
c325fa7705
|
Add some tests to test catching nullptr with pointers and member pointers. Tests are only activated if #if __has_feature(cxx_nullptr).
llvm-svn: 149536
|
2012-02-01 21:01:52 +00:00 |
Howard Hinnant
|
2d6810fbd6
|
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.
llvm-svn: 149534
|
2012-02-01 20:53:21 +00:00 |
Howard Hinnant
|
a21f8c2acf
|
Quash TODO regarding catch by function type. Add tests to back it up.
llvm-svn: 149530
|
2012-02-01 19:42:45 +00:00 |
Howard Hinnant
|
26ffb64177
|
Quash TODO regarding catch by array type. Add tests to back it up.
llvm-svn: 149527
|
2012-02-01 19:21:28 +00:00 |
Howard Hinnant
|
69a10f466b
|
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.
llvm-svn: 149522
|
2012-02-01 18:52:35 +00:00 |
Howard Hinnant
|
d0bfbb336f
|
Teach exception_cleanup_func about dependent exceptions.
llvm-svn: 149520
|
2012-02-01 18:44:21 +00:00 |
Howard Hinnant
|
8aa78517ab
|
Treat all exceptions except that the ones that this library throws as foreign. Even other C++ exceptions.
llvm-svn: 149518
|
2012-02-01 18:15:15 +00:00 |
Howard Hinnant
|
62efe0b062
|
Nothing but polishing comments.
llvm-svn: 149515
|
2012-02-01 16:56:40 +00:00 |
Howard Hinnant
|
4ca103d14c
|
Move an error detector to a better place.
llvm-svn: 149513
|
2012-02-01 16:16:11 +00:00 |
Howard Hinnant
|
3b22c6c395
|
Here's a test for catching pointers.
llvm-svn: 149459
|
2012-02-01 00:22:38 +00:00 |
Howard Hinnant
|
372e2f4bd4
|
More test cases concentrating on catching class types.
llvm-svn: 149453
|
2012-01-31 23:52:20 +00:00 |
Howard Hinnant
|
eedecf51bb
|
Some unwinding test cases
llvm-svn: 149436
|
2012-01-31 21:58:58 +00:00 |
Howard Hinnant
|
310fcc749d
|
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.
llvm-svn: 149414
|
2012-01-31 20:22:59 +00:00 |
Howard Hinnant
|
3d97931a86
|
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 :-)
llvm-svn: 149413
|
2012-01-31 20:10:33 +00:00 |
Howard Hinnant
|
f8d292eb08
|
Correct test bug.
llvm-svn: 149412
|
2012-01-31 20:01:06 +00:00 |
Howard Hinnant
|
fe2052d635
|
Have the default unexpected/terminate handler output *demangled* names for the type of exception instead of the mangled name.
llvm-svn: 149409
|
2012-01-31 19:48:06 +00:00 |
Howard Hinnant
|
43f5fecdb5
|
Fix type-o in the comment of the last commit
llvm-svn: 149403
|
2012-01-31 19:05:08 +00:00 |
Howard Hinnant
|
6351792447
|
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.
llvm-svn: 149400
|
2012-01-31 18:57:20 +00:00 |
Howard Hinnant
|
d96cac1282
|
Found and fixed bug in personality function: Don't dive into the action table if the action entry is zero.
llvm-svn: 149389
|
2012-01-31 17:15:14 +00:00 |
Howard Hinnant
|
d6d4c25ef0
|
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.
llvm-svn: 149329
|
2012-01-31 01:51:15 +00:00 |
Howard Hinnant
|
c9204f6bed
|
Refactored personality function. Found one bug in scanning exception spec lists.
llvm-svn: 149272
|
2012-01-30 20:16:21 +00:00 |
Howard Hinnant
|
2c50972c32
|
Removed debugging print statements
llvm-svn: 149271
|
2012-01-30 20:13:37 +00:00 |
Howard Hinnant
|
47cb854818
|
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.
llvm-svn: 149251
|
2012-01-30 16:07:00 +00:00 |
Howard Hinnant
|
3f0d2384aa
|
Add -fstrict-aliasing -Wstrict-aliasing and change optimization from -Os to -O3
llvm-svn: 149250
|
2012-01-30 16:03:23 +00:00 |
Howard Hinnant
|
5bbc597f1e
|
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.
llvm-svn: 149249
|
2012-01-30 16:02:11 +00:00 |
Howard Hinnant
|
9aa4684fbb
|
Minor updates to a couple of comments.
llvm-svn: 149158
|
2012-01-28 00:34:46 +00:00 |
Howard Hinnant
|
ece71ead6d
|
Add a little paranoia for testing purposes.
llvm-svn: 149157
|
2012-01-28 00:32:31 +00:00 |
Howard Hinnant
|
805036cc83
|
Minor header fixups for test.
llvm-svn: 149156
|
2012-01-28 00:30:38 +00:00 |
Howard Hinnant
|
44e3703639
|
Silence a warning.
llvm-svn: 149155
|
2012-01-28 00:29:27 +00:00 |
Howard Hinnant
|
ad048719a7
|
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.
llvm-svn: 149154
|
2012-01-28 00:28:31 +00:00 |
Howard Hinnant
|
113cf60e0b
|
These commits are intended to be temporary in nature and are to facilitate the testing of libc++abi.dylib at this point in time.
llvm-svn: 148967
|
2012-01-25 19:27:42 +00:00 |
Howard Hinnant
|
db97064263
|
Add comment documenting extension behavior of __cxa_get_globals_fast().
llvm-svn: 148966
|
2012-01-25 19:19:13 +00:00 |
Howard Hinnant
|
5d6b9d28f7
|
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.
llvm-svn: 148965
|
2012-01-25 19:02:40 +00:00 |
Howard Hinnant
|
2449538500
|
Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall. Thanks John.
llvm-svn: 148963
|
2012-01-25 18:50:55 +00:00 |
Howard Hinnant
|
abc770690a
|
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.
llvm-svn: 148880
|
2012-01-24 23:42:30 +00:00 |
Howard Hinnant
|
7fdfd5d269
|
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.
llvm-svn: 148866
|
2012-01-24 21:48:10 +00:00 |
Howard Hinnant
|
73ab1864ef
|
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.
llvm-svn: 148863
|
2012-01-24 21:41:27 +00:00 |