This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/48100] [4.6 Regression] Assertion failed in lto_varpool_replace_node, at lto-symtab.c:304 with mixed LTO/non-LTO objects


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]