On 20/12/15 13:14, David Chisnall wrote:
> The differences between ARM and not-ARM should be largely encapsulated in the 
> unwind-*.h headers.

Yes, this is what I already found.

> The Objective-C++ exception handling part is here:
>
> https://github.com/gnustep/libobjc2/blob/master/eh_personality.c#L491
>
> It actually looks as if it ought to work on ARM, so you can try removing the 
> #ifndef on #490 and see if it does.  Basically, when we’re in an 
> Objective-C++ catch block, we’re going to catch either a C++ or Objective-C 
> exception.  If an Objective-C exception was thrown, then we allocate a new 
> C++ exception and pass that off to the C++ personality function.  If we’ve 
> been thrown a C++ exception, then we just pass it through.

Thanks for explanation, this is exactly what was unclear for me - how to
properly handle both Objective-C and C++ exceptions in
__gnustep_objcxx_personality_v0. The way to wrap Objective-C exception
into C++ one makes sense and looks simple to implement. I'll try to move
with it and will get back with results in a few days.

-- 
Dmitry Moskalchuk

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to