Howard Hinnant
|
86b4dfac01
|
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.
llvm-svn: 147761
|
2012-01-08 23:50:46 +00:00 |
Howard Hinnant
|
7530f19d03
|
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.
llvm-svn: 147760
|
2012-01-08 23:40:41 +00:00 |
Howard Hinnant
|
5dc3179e5d
|
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.
llvm-svn: 147759
|
2012-01-08 23:39:14 +00:00 |
Howard Hinnant
|
d3dba31762
|
__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.
llvm-svn: 147680
|
2012-01-06 20:39:47 +00:00 |
Marshall Clow
|
d2bab35080
|
Improved comment to explain why we can use __cxa_get_globals_fast here
llvm-svn: 147554
|
2012-01-04 22:18:10 +00:00 |
Howard Hinnant
|
66d9327b80
|
Just getting started on the personality routine. This is just a skeleton. Still learning how to fill it in...
llvm-svn: 147547
|
2012-01-04 20:49:43 +00:00 |
Marshall Clow
|
f368486f4c
|
Better comment
llvm-svn: 147532
|
2012-01-04 14:56:09 +00:00 |
Marshall Clow
|
f83663a9cd
|
Don't allocate TLS storage when checking to see if an exception has been thrown - really
llvm-svn: 147497
|
2012-01-03 23:26:09 +00:00 |
Marshall Clow
|
3e417e7a5c
|
Don't allocate TLS storage when checking to see if an exception has been thrown
llvm-svn: 147492
|
2012-01-03 23:10:20 +00:00 |
Howard Hinnant
|
f5bde09cc1
|
credits adjustment
llvm-svn: 147148
|
2011-12-22 16:00:06 +00:00 |
Marshall Clow
|
1de4fc0dfa
|
Updated __cxa_current_exception_type to call __cxa_get_globals_fast - will not allocate globals
llvm-svn: 147147
|
2011-12-22 15:45:05 +00:00 |
Howard Hinnant
|
2aa433398a
|
Updated spec.html regarding __cxa_uncaught_exception.
llvm-svn: 147110
|
2011-12-22 00:03:36 +00:00 |
Howard Hinnant
|
22f28b2d52
|
Forgot to increment uncaughtExceptions in __cxa_rethrow_primary_exception
llvm-svn: 147108
|
2011-12-21 23:48:05 +00:00 |
Howard Hinnant
|
e04f51662c
|
Added __cxa_increment_exception_refcount, __cxa_decrement_exception_refcount, __cxa_current_primary_exception, __cxa_rethrow_primary_exception
llvm-svn: 147106
|
2011-12-21 23:32:11 +00:00 |
Howard Hinnant
|
72a05a9198
|
Add new and delete operators
llvm-svn: 146989
|
2011-12-20 20:38:05 +00:00 |
Howard Hinnant
|
bf8a39bb94
|
Fixed several bugs, implemented support for vector types, and cleaned out dead code.
llvm-svn: 146677
|
2011-12-15 20:02:15 +00:00 |
Howard Hinnant
|
7a084fdd39
|
Fix size calculation for pointer to member function
llvm-svn: 146463
|
2011-12-13 01:23:16 +00:00 |
Howard Hinnant
|
58926c9a9b
|
Made some minor tweaks to __cxa_rethrow
llvm-svn: 146396
|
2011-12-12 19:11:42 +00:00 |
Howard Hinnant
|
7fcad54836
|
Added dependent exception support to __cxa_current_exception_type
llvm-svn: 146381
|
2011-12-12 18:16:10 +00:00 |
Howard Hinnant
|
8de583abf2
|
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
llvm-svn: 146274
|
2011-12-09 20:07:56 +00:00 |
Howard Hinnant
|
6ccae15ef0
|
Modified __cxa_end_catch to handle dependent exceptions.
llvm-svn: 146172
|
2011-12-08 19:35:18 +00:00 |
Howard Hinnant
|
5ec9183afc
|
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.
llvm-svn: 146072
|
2011-12-07 21:16:40 +00:00 |
Howard Hinnant
|
b3344a3ac7
|
Added __cxa_allocate_dependent_exception and __cxa_free_dependent_exception and marked them as done.
llvm-svn: 146045
|
2011-12-07 18:30:06 +00:00 |
Howard Hinnant
|
dfb34fcb1a
|
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.
llvm-svn: 145951
|
2011-12-06 19:02:03 +00:00 |
Howard Hinnant
|
987afbeede
|
Add/update copyright notices
llvm-svn: 145949
|
2011-12-06 18:01:47 +00:00 |
Howard Hinnant
|
2642af9e23
|
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.
llvm-svn: 145948
|
2011-12-06 17:51:25 +00:00 |
Howard Hinnant
|
dc82cca6bf
|
Updated heuristic regulating small string buffer
llvm-svn: 145543
|
2011-12-01 00:08:59 +00:00 |
Howard Hinnant
|
148b3f64ec
|
Add alignment requirement to char buffer
llvm-svn: 145277
|
2011-11-28 21:03:21 +00:00 |
Marshall Clow
|
9b454bc912
|
reformatted to match Clang style; thanks to John McCall for the nudge
llvm-svn: 137623
|
2011-08-15 18:06:47 +00:00 |
Howard Hinnant
|
26a9d23657
|
demangler: Drop preceeding () from function types, but not from pointers and references to function types
llvm-svn: 137469
|
2011-08-12 17:33:10 +00:00 |
Marshall Clow
|
8769449b61
|
First cut at exception handling; missing dependent exceptions. Next step: tests
llvm-svn: 137118
|
2011-08-09 15:09:41 +00:00 |
Howard Hinnant
|
49b607a2cd
|
Silence some -Wall warnings pointed out by Marshall Clow
llvm-svn: 137047
|
2011-08-08 15:49:07 +00:00 |
Marshall Clow
|
7c9f1fa9cf
|
Remove include reference to non-existant file cxa_exception_storage.hpp
llvm-svn: 137046
|
2011-08-08 15:12:08 +00:00 |
Nick Kledzik
|
2dfc79b19e
|
make cxxabi.h safe for C code to include
llvm-svn: 136682
|
2011-08-02 05:15:26 +00:00 |
Nick Kledzik
|
1c839a945b
|
use LIBCXXABI_NORETURN
llvm-svn: 136681
|
2011-08-02 05:01:31 +00:00 |
Nick Kledzik
|
12a10bc046
|
make LIBCXXABI_NORETURN be the right attribute
llvm-svn: 136680
|
2011-08-02 05:01:17 +00:00 |
Nick Kledzik
|
7cb4926da1
|
use abort_message() for pthread errors in __cxa_get_globals
llvm-svn: 136672
|
2011-08-02 01:34:26 +00:00 |
Nick Kledzik
|
18ab5f4164
|
use abort_message()
llvm-svn: 136671
|
2011-08-02 01:19:07 +00:00 |
Nick Kledzik
|
49cbb02a6a
|
move abort_message() to its own file
llvm-svn: 136670
|
2011-08-02 01:18:14 +00:00 |
Nick Kledzik
|
d5b690d39c
|
add abort_message() utility function
llvm-svn: 136669
|
2011-08-02 01:16:03 +00:00 |
Nick Kledzik
|
476e600cd4
|
Added kledzik to CREDITS.TXT
llvm-svn: 136667
|
2011-08-02 01:05:24 +00:00 |
Marshall Clow
|
b226908bea
|
Updated comments
llvm-svn: 135909
|
2011-07-25 15:00:11 +00:00 |
Marshall Clow
|
e41bb4dd69
|
Added copyright header
llvm-svn: 135601
|
2011-07-20 18:41:23 +00:00 |
Howard Hinnant
|
c6b4318b9a
|
Update status: http://libcxxabi.llvm.org/spec.html . Looking good! :-)
llvm-svn: 135590
|
2011-07-20 16:32:57 +00:00 |
Marshall Clow
|
e2dcb75b2e
|
Memory manangement routines for exception objects
llvm-svn: 135587
|
2011-07-20 15:04:39 +00:00 |
Marshall Clow
|
1df50ca6a2
|
Exception handling stuctures, and thread-local variables for exception handling
llvm-svn: 135586
|
2011-07-20 14:53:53 +00:00 |
Marshall Clow
|
60fa2d232a
|
Fixed struct/class mismatch for std::type_info and added NORETURN flags
llvm-svn: 135584
|
2011-07-20 14:27:46 +00:00 |
Howard Hinnant
|
4af8869934
|
Update by Marshall Clow
llvm-svn: 135397
|
2011-07-18 16:38:32 +00:00 |
Howard Hinnant
|
08ad085712
|
A stawman specification for libc++abi and status page
llvm-svn: 135181
|
2011-07-14 20:16:50 +00:00 |
Howard Hinnant
|
471e111324
|
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.
llvm-svn: 133632
|
2011-06-22 19:27:39 +00:00 |