[LLVMdev] How to code catch-all in the new exception handling scheme?
Garrison Venn
gvenn.cfe.dev at gmail.com
Tue Sep 27 11:38:49 PDT 2011
Hi Duncan,
On Sep 27, 2011, at 7:58, Duncan Sands wrote:
> Hi Bill,
>
>>>> I'm looking at the docs, and while it refers to a "catch-all" clause,
>>>
>>> hopefully Bill will get rid of the first reference to "catch-all" since
>>> that section is inaccurate.
>>>
>> I *think* this is now correct. Please check. :)
>
> I still have some niggles:
>
> The unwinder delegates the decision of whether to stop in a call frame to
> that call frame's language-specific personality function. Not all personality
> functions guarantee that they will stop to perform cleanups.
>
> This is incorrect: it is not the personality function that makes the decision,
> it is who-ever is doing the unwinding. For example if you use the Ada "throw"
> method it will always run all C++ cleanups, even if that's all there is to do.
> While if you use the C++ throw method it won't bother running Ada cleanups if
> that is all there is to do. All personality functions that I am familiar with
> treat cleanups in the same way.
How does one incorporate their own LLVM backend unwinding mechanism?
I'm assuming that you have an Ada backend. Does your backend not call
_Unwind_RaiseException for example?
[snip]
...
> Ciao, Duncan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Thanks in advance
Garrison
More information about the llvm-dev
mailing list