[Bug lto/48100] [4.6 Regression] Assertion failed in lto_varpool_replace_node, at lto-symtab.c:304 with mixed LTO/non-LTO objects
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 14 11:24:00 GMT 2011
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).
More information about the Gcc-bugs
mailing list