theraven
6317b79a10
Implemented the new exception ABI, and a load of tests for it. This is used by
...
clang trunk if -fobjc-runtime-1.7 is specified and provides significantly
better interoperability with foreign exceptions.
Note: Most of the exception tests will not pass with gcc or clang < 3.3. They
test things that are impossible to implement quite correctly with the
GCC-compatible exception ABI.
Also updated the release notes to reflect recent improvements.
2013-01-12 13:17:36 +00:00
theraven
c6eede8179
GCC-compatibility tweak in EH.
2012-07-12 18:10:51 +00:00
theraven
6cea966cad
Remove some accidentally-committed debug stuff.
2011-11-09 21:10:51 +00:00
theraven
9490b1b84e
Implement ARM EH support, fix objc_msgSend() to work on ARM.
2011-11-09 21:03:35 +00:00
theraven
8af52846b7
Small object (hidden in a pointer) support.
2011-07-26 17:39:13 +00:00
theraven
9ef84a982c
Remove redundant include.
2011-06-24 14:32:15 +00:00
theraven
6c7cf4a5a6
Add visibility attributes on all internal functions so that we aren't ever exporting them outside of libobjc.
2011-04-14 12:25:17 +00:00
theraven
600e970dea
Separate ObjC++ support out into libobjcxx. Now code that doesn't need ObjCXX support can safely ignore it again.
2011-04-05 17:21:30 +00:00
theraven
7e465eb325
Tweak building without ObjC++ support a bit.
2011-03-21 17:44:51 +00:00
theraven
3ccb4240cc
Fix getting Objective-C objects out of C++ exceptions.
2011-03-20 21:20:42 +00:00
theraven
e0719a9c62
Added Objective-C++ exception handling support. Allows throwing Objective-C objects with throw or @throw and catching them with catch() or @catch.
2011-03-20 20:38:12 +00:00
theraven
fc28010846
...but don't catch foreign exceptions in catch statements for the boxing class's superclass.
2011-03-16 16:35:24 +00:00
theraven
4e5578b0be
Allow boxed foreign exceptions to be caught in explicit catch statements.
2011-03-16 16:22:30 +00:00
theraven
d6455e2a65
More EH tweaks. New ABI now uses "@id" for id catches and NULL for catchalls. Code compiled with GCC and clang with the old ABI will continue to use NULL for catchalls and id catches, which means that C++ exceptions will be caught in their boxed form here and must be explicitly rethrown.
2011-03-16 15:48:06 +00:00
theraven
45c428f9a3
Allow the boxed exception object to rethrow itself, if it knows how. This means that a C++ function can throw a C++ object, we can box it in an ObjC object for passing through Objective-C stack frames, and then unbox it to catch it in C++ code.
2011-03-16 15:04:26 +00:00
theraven
943ed5e714
Some source tidies.
2010-08-15 11:17:00 +00:00
theraven
7ac0904a1f
Don't leak memory when throwing exceptions.
2010-07-16 11:49:51 +00:00
theraven
7d0d599241
Fix handling of cleanups while unwinding for exception throwing.
2010-07-15 17:47:13 +00:00
theraven
f4e7a7bf5c
Return the correct thing to exception handlers.
2010-06-30 12:09:42 +00:00
theraven
f375d20d7a
Add support for catching C++ (and Java / Ada) exceptions in Objective-C.
2010-06-30 12:02:53 +00:00
theraven
07758fe521
Removed last bits of legacy code from libobjc2. Added new exception handling implementation.
2010-06-29 21:46:20 +00:00