On 7 Dec 2017, at 19:54, Lobron, David <[email protected]> wrote:
> 
> I did this, and I've pasted the output below.  At first glance, the 
> exceptions all seem to be the same (or at least, all have the same address of 
> 0x17158c80).  I'm not entirely sure how to interpret the rest of the action 
> there.  One thing that leaps out is that there seem to be personalities 
> involved: GNUCOBJC and GNUCC++.  The code that throws this exception is a .mm 
> file, i.e., Objective-C++, with a mix of ObjC and C++.  

Aha!  That might be it, and might be enough to come up with a reduced test 
case.  When you throw the exception, it’s an ObjC exception.  When you throw it 
through an ObjC++ stack frame, it’s transformed into a C++ exception and passed 
to the C++ personality function, but only when the cleanup is run for that 
frame.  I suspect that the ObjC personality function is not correctly handling 
the transformation back to an ObjC exception for the catch.

David


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

Reply via email to