[LLVMdev] How to code catch-all in the new exception handling scheme?
gvenn.cfe.dev at gmail.com
Tue Sep 27 13:38:49 CDT 2011
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?
> Ciao, Duncan.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
Thanks in advance
More information about the LLVMdev