[LLVMdev] Exception handling question

James Williams junk at giantblob.com
Fri Jan 22 05:06:27 PST 2010


2010/1/22 Duncan Sands <baldrick at free.fr>

> Hi Garrison,
>
>
>  %7 = invoke i8* (...)* bitcast (i32 (%struct._Unwind_Exception*)*
>> @_Unwind_RaiseException to i8* (...)*)(i64* %6)
>>          to label %8 unwind label %.finally_pad  ; <i8*> [#uses=0]
>>
>> I am not sure this is going to work, at least from the way I've played
>> with the system. In my examples the _Unwind_RaiseException(...) is called
>> from a frame (function) called via
>> the invoke instruction, not from a frame that contains the invoke
>> instruction.
>>
>
> I'm pretty sure this doesn't matter.  It seems to me more likely that the
> exception object was not initialized properly.
>
Hmm. I've tried a bunch of different ways of creating the exception
including calling a C++ function that then does a throw. If I understand
right, the personality function should still be offered the foreign
exception so it has a chance to call cleanups?


> Ciao,
>
> Duncan.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100122/2b0395bc/attachment.html>


More information about the llvm-dev mailing list