[LLVMdev] Alternative exception handling proposal

Duncan Sands baldrick at free.fr
Thu Dec 2 02:41:00 PST 2010


Hi Renato,

> On 1 December 2010 21:37, Duncan Sands<baldrick at free.fr>  wrote:
>> <catch info>  = [personality<ptr>] [cleanup] [catches<list of catches and filters>]
>
> That would allow you to choose a different personality routine for
> every invoke inside the same function (ie. same EH table), which
> doesn't make sense to me...

if you inline Ada code into C++ code you might get this.  That said, I
keep oscillating between having personalities be per-function (and not
allowing inlining if there would be a personality clash) or per invoke.

> It'd also disassociate the personality routine with the landing pads
> (which are used to build the EH table).

In theory it is possible to have several personality functions per
function, but I'm not sure it is worth the effort of supporting.

In any case this is a minor point, but does show the problem of baking
personality functions, catches etc into the IR: changing your mind about
how you want to do things then involves a big cost...

Ciao,

Duncan.



More information about the llvm-dev mailing list