[Bug lto/42392] [LTO] ICE with top level asm
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Dec 16 13:43:00 GMT 2009
------- Comment #2 from rguenth at gcc dot gnu dot org 2009-12-16 13:43 -------
The issue here is that the asm doesn't switch sections properly and we emit
LTO sections before the actual assembly. So we end up with
...
.section .gnu.lto_.opts,"",@progbits
.string "x\001\001,"
.string "\323\377\001"
.string ""
...
.ascii "\"\306\003T"
.section .gnu.lto_main
#APP
.globl start; start: nop
#NO_APP
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
popl %ebp
ret
.size main, .-main
.comm gnu_lto_v1,1,1
where after finishing .gnu.lto_.opts we switch "back" to .gnu.lto_main which
then has the toplevel asm appended.
Oops.
Now assembling the testcase w/o LTO also gets us
.file "t.c"
#APP
.globl start; start: nop
#NO_APP
.text
.globl main
.type main, @function
main:
...
thus the asm gets emitted in the default section. Which means the testcase
is kind of invalid (and the issue is that we emit LTO stuff at the beginning,
not at the end where it could remain unspecified).
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot
|dot org |org
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-12-16 13:43:16
date| |
Version|4.4.1 |4.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42392
More information about the Gcc-bugs
mailing list