Hi,
Can I interject something at this point.
Can I suggest that invoke/unwind be renamed DWARF_invoke/DWARF_unwind to
warn the unwary that if they want lightweight exception handling in
their Python/ML/whatever implementation they should use some other method.
PS.
Kenneth, why don't you just use setjmp/longjmp directly.
Or, if you want, I can email you my lightweight versions if you want,
Mark.
Duncan Sands wrote:> Hi,
>
>> How do either of these prevent DWARF exception handling from working?
>
> if you throw an exception using your proposed unwind implementation,
> then it wouldn't be caught by dwarf catch/cleanup regions (eg: invoke).
>
>> Would a landing pad expecting to get an exception object from the
>> exception intrinsics fail to get one in the case of an unwind and
>> crash?
>
> The landing pad would never be executed in the first place. This
> is rather bad, for example cleanups won't be run.
>
>> (Perhaps I should put all this aside and just have my compiler handle
>> my invoke/unwind logic instead of trying to use invoke/unwind
>> instructions.)
>
> For the moment that is the best solution I think.
>
> Ciao,
>
> Duncan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>