On Wed, May 26, 2010 at 6:08 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> 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). > > Can't we simply record the first personality routine encountered when reading > in the GIMPLE IL and assign it to all FDEs that don't have one? That would > at least solve the problem in the homogeneous case.
Hm, we could arrange dwarf2out.c:current_unit_personality to be set to that of the first DECL_FUNCTION_PERSONALITY we stream in and in expr.c:get_personality_function use that for the eh_personality_any case. Sort of ugly as current_unit_personality is not exported, but ... For multi-language LTO it's probably still prefered to use the C personality for eh_personality_any, so conditionalizing this on !CFI assembler would be needed. Richard.