[LLVMdev] Alternative exception handling proposal

Nick Kledzik kledzik at apple.com
Thu Dec 2 11:32:52 PST 2010


On Dec 2, 2010, at 4:01 AM, Duncan Sands wrote:

> On 02/12/10 12:53, Renato Golin wrote:
>> On 2 December 2010 11:26, Duncan Sands<baldrick at free.fr>  wrote:
>>> It occurs when doing LTO and inlining functions written in one language
>>> into functions written in another, thus my Ada inlined into C++ example.
>>> Mixed language programming is quite common, so it may be worth supporting
>>> this, but it's not clear.
>> 
>> Good point.
>> 
>> Still, mixing personalities in the same EH table is scary... ;) Is
>> there any compiler that do this?
> 
> Apparently the gcc people are working on this as part of their LTO support.
How can this be encoded in dwarf unwind info?  The personality routine is specified by the CIE and each FDE can only point to one CIE and currently there is one FDE per function. 

So would you have multiple (non overlapping) FDEs per function?  Seems like that would break some assumptions somewhere.

I'd image that you just block inlining of a function that needs a different personality function.

Or better yet, stop putting language specific semantics into the personality function and instead encode the semantics the language wants the function to have into the LSDA info and just have one uber-personality function (to rule them all).

-Nick





More information about the llvm-dev mailing list