Commit Graph

961 Commits

Author SHA1 Message Date
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
Marshall Clow 92091dbe41 Clean up the vector tests
llvm-svn: 132921
2011-06-13 17:57:10 +00:00
Marshall Clow 280ddee8bd Implement vector new and delete functionality
llvm-svn: 132832
2011-06-10 03:40:19 +00:00
Marshall Clow 8da97113c2 Added Marshall to CREDITS.TXT as requested
llvm-svn: 132754
2011-06-08 16:58:01 +00:00
Howard Hinnant 575498b52f tabs to spaces
llvm-svn: 132729
2011-06-07 19:56:49 +00:00
Nick Lewycky 69e35a7f55 Add support for the ARM EABI variant of the __cxa_guard methods, controlled by
the LIBCXXABI_ARMEABI macro.

llvm-svn: 132723
2011-06-07 18:46:10 +00:00
Nick Lewycky 6fde150697 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

llvm-svn: 132644
2011-06-04 18:01:24 +00:00
Marshall Clow f8da5b22af Tests for bad_typeid and bad_cast
llvm-svn: 132545
2011-06-03 13:54:37 +00:00
Marshall Clow ad3dea06a9 Added __cxa_bad_cast and __cxa_bad_typeid and placeholder NORETURN macro
llvm-svn: 132524
2011-06-03 02:04:41 +00:00
Howard Hinnant 4a88971ac1 Introduce cxa_virtual.cpp and cxa_guard.cpp. Contributed by Nick Lewycky, Howard Hinnant and John McCall
llvm-svn: 132009
2011-05-24 22:01:16 +00:00
Howard Hinnant f3f1a9c942 Add goal
llvm-svn: 131703
2011-05-19 23:38:38 +00:00
Howard Hinnant 30ab971979 Fix think-o
llvm-svn: 131700
2011-05-19 23:37:21 +00:00
Howard Hinnant d13581e492 testing
llvm-svn: 131694
2011-05-19 22:57:05 +00:00
Howard Hinnant 58bc7ff892 testing
llvm-svn: 131693
2011-05-19 22:56:33 +00:00
Howard Hinnant 7b0290da3f Add Mac OS X as supported platform.
llvm-svn: 131686
2011-05-19 22:03:11 +00:00
Howard Hinnant 4ed80a3372 Add Mac OS X as supported platform.
llvm-svn: 131685
2011-05-19 22:02:38 +00:00
Howard Hinnant d3da57f99b initial import
llvm-svn: 130921
2011-05-05 15:27:28 +00:00