[Bug target/51843] New: ICE with LTO and attribute `dllimport'

d.g.gorbachev at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jan 13 06:55:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51843

             Bug #: 51843
           Summary: ICE with LTO and attribute `dllimport'
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: d.g.gorbachev@gmail.com
            Target: *-*-mingw32


Created attachment 26312
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26312
Testcase

"If a symbol previously declared `dllimport' is later defined, the attribute is
ignored in subsequent references, and a warning is emitted."

GCC 4.7.0 gives this error:

In file included from :0:0:
main.c: In function 'main':
main.c:4:5: error: constant not recomputed when ADDR_EXPR changed
&bar
In file included from b.c:1:0,
                 from :1:
main.c:6:7: note: in statement
# .MEM_3 = VDEF <.MEM_2(D)>
bar = 7;

In file included from :0:0:
main.c:4:5: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

GCC 4.6.3 just ignores the attribute, emitting no warning.

Without LTO, the two `bar's are treated as 2 different variables.



More information about the Gcc-bugs mailing list