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/69188] [5/6/7 Regression] ICE when linking objects at different optimization levels with LTO and profile generation enabled. (Works with 4.9.3.)


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69188

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-12-01
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
      Known to work|                            |4.9.4
     Ever confirmed|0                           |1
      Known to fail|                            |5.4.0, 6.2.0, 7.0

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

lto1: internal compiler error: in lto_varpool_replace_node, at
lto/lto-symtab.c:122
0x62e519 lto_varpool_replace_node
        /space/rguenther/src/gcc-git/gcc/lto/lto-symtab.c:122
0x62f67a lto_symtab_merge_symbols_1
        /space/rguenther/src/gcc-git/gcc/lto/lto-symtab.c:882
0x62f67a lto_symtab_merge_symbols()
        /space/rguenther/src/gcc-git/gcc/lto/lto-symtab.c:939
0x62352e read_cgraph_and_symbols
        /space/rguenther/src/gcc-git/gcc/lto/lto.c:2930
0x62352e lto_main()
        /space/rguenther/src/gcc-git/gcc/lto/lto.c:3304
Please submit a full bug report,

The test is just using -O -fprofile-generate -flto -fPIC and letting option
auto-deduce work at link time (no options given). One file is built with -O0.

118     static void
119     lto_varpool_replace_node (varpool_node *vnode,
120                               varpool_node *prevailing_node)
121     {
122       gcc_assert (!vnode->definition || prevailing_node->definition);
123       gcc_assert (!vnode->analyzed || prevailing_node->analyzed);
124
125       prevailing_node->clone_referring (vnode);
126       if (vnode->force_output)
(gdb) p vnode->definition
$1 = 1
(gdb) p prevailing_node->definition
$2 = 0
(gdb) p vnode->analyzed
$3 = 1
(gdb) p prevailing_node->analyzed
$4 = 0

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