[llvm-commits] [llvm-gcc-4.2] r100149 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Duncan Sands baldrick at free.fr
Tue Apr 13 23:10:51 PDT 2010


Hi Bill,

>> while you are there, maybe you can fix the problem that this variable breaks
>> LTO with multi-language programs.  For example, if I compile some C++ then
>> .llvm.eh.catch.all.value is set to null; with Ada it is to set some different
>> Ada value.  If I link the bitcode for these two together than the result won't
>> work, either because the Ada value will be used for the C++, or because the
>> C++ value will be used with the Ada.  This variable should really be some kind
>> of map from the personality function to the catch-all.
>>
> Hi Duncan,
>
> That's a longer-term goal of mine. Right now, it's dangerous to mix Ada, C++, etc. methods which could throw exceptions, because if they're inlined then they won't use the correct personality functions anyway.
>
> But there is a bug in here...It's keeping this weak external around. I need to mark it as "private" or something...

I had an idea which (if it works out) means that we don't need to do any of
these tricks, and should solve all of the traditional problems we have with
exception handling.  I will try to whip up some proof of concept code.

Ciao,

Duncan.



More information about the llvm-commits mailing list