On Wed, May 26, 2010 at 5:38 PM, Eric Botcazou <ebotca...@adacore.com> wrote:
>> When I run the test suite with Ada, I have two test suite failures,
>> for lto6.adb and lto8.adb. The failure mode is the same for both, see
>> end of this mail. Are these failures expected?
>
> That's an LTO bug: it can change the personality routine without any real
> reasons.  You don't need several personality routines to compile an all-Ada
> program.  This can presumably happen for an all-C++ program as well, but is
> masked if you have recent enough binutils (2.20 and above).

I say it's a middle-end bug that it doesn't support multiple personalities
without cfi asm.

LTO does it the way it does it to allow cross-language inlining for
more functions (we can't inline functions with different personalities,
but we can inline to/from a function that only requires _some_
personality).  So we make this distinction and thus end up
with the basic C personality for some functions.

You could "fix" this by walking all functions and check if only
one real language personality routine remains and promote
the generic C personality uses to that.  Of course you need then
to be able to identify the C personality which you can't (well,
you could by name).

Richard.

> --
> Eric Botcazou
>

Reply via email to