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).

Reply via email to