http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48100
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011.03.14 11:23:58 CC| |hubicka at gcc dot gnu.org Target Milestone|--- |4.6.0 Summary|[4.6 Regression] Assertion |[4.6 Regression] Assertion |failed in |failed in |lto_varpool_replace_node, |lto_varpool_replace_node, |at lto-symtab.c:304 |at lto-symtab.c:304 with | |mixed LTO/non-LTO objects Ever Confirmed|0 |1 --- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-03-14 11:23:58 UTC --- Confirmed. We do not handle commons (multiple defs) gracefully that the linker plugin chooses the prevailing def from a non-IL file from. 2 i.o 1 79 a37d8495 RESOLVED_EXEC i m.o 2 79 c7371d0 PREVAILING_DEF main 84 c7371d0 RESOLVED_EXEC i so it chose i-nonlto.o to provide i but we don't see that (obviously). It works when re-ordering the object files on the command-line so it chooses i.o as the provider. Something to think about (also in the context of C++ comdat groups).