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 >