This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/33351] [4.3 Regression] segfault in assembler function
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Sep 2007 12:45:26 -0000
- Subject: [Bug middle-end/33351] [4.3 Regression] segfault in assembler function
- References: <bug-33351-3760@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from rguenth at gcc dot gnu dot org 2007-09-08 12:45 -------
Confirmed.
Program received signal SIGSEGV, Segmentation fault.
0x0842837c in reload_as_needed (live_known=1)
at /home/richard/src/trunk/gcc/reload1.c:4161
4161 if (p != insn && INSN_P (p)
(gdb) bt
#0 0x0842837c in reload_as_needed (live_known=1)
at /home/richard/src/trunk/gcc/reload1.c:4161
#1 0x08421375 in reload (first=0xb7cce680, global=1)
at /home/richard/src/trunk/gcc/reload1.c:1146
#2 0x08910765 in global_alloc () at /home/richard/src/trunk/gcc/global.c:683
#3 0x08914e4f in rest_of_handle_global_alloc ()
at /home/richard/src/trunk/gcc/global.c:2055
(gdb) print p
$1 = (rtx) 0x0
(gdb) call debug_rtx (insn)
(insn 11 29 12 2 t.i:12 (parallel [
(set (reg/f:SI 0 ax [orig:63 <variable>.fn ] [63])
(asm_operands/v:SI ("pushl %%ebp; pushl %3; movl %2,%%ebp; call
*%%eax; popl %%ebp; popl %%ebp") ("=a") 0 [
(reg/f:SI 0 ax [orig:63 <variable>.fn ] [63])
(reg:SI 4 si)
(reg:SI 5 di)
]
[
(asm_input:SI ("0") ("") 0)
(asm_input:SI ("r") ("") 0)
(asm_input:SI ("r") ("") 0)
] ("t.i") 12))
(clobber (reg:QI 18 fpsr))
(clobber (reg:QI 17 flags))
(clobber (mem:BLK (scratch) [0 A8]))
(clobber (reg:QI 1 dx))
(clobber (reg:QI 2 cx))
]) -1 (expr_list:REG_DEAD (reg/f:SI 5 di [64])
(expr_list:REG_UNUSED (reg/f:SI 0 ax [orig:63 <variable>.fn ] [63])
(expr_list:REG_UNUSED (reg:QI 18 fpsr)
(expr_list:REG_UNUSED (reg:QI 17 flags)
(expr_list:REG_UNUSED (reg:QI 2 cx)
(expr_list:REG_UNUSED (reg:QI 1 dx)
(nil))))))))
I think this is because of the NEXT_INSN changes.
2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
FOR_BB_INSNS_SAFE instead of for loop.
* cse.c (cse_extended_basic_block): Likewise.
* postreload.c (reload_cse_regs_1): New variable next. Make sure
that the for loop does not invoke NEXT_INSN on a deleted insn.
...
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |laurynas dot biveinis at
| |gmail dot com
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
GCC build triplet|x86_64-unknown-linux-gnu |
GCC host triplet|x86_64-unknown-linux-gnu |
GCC target triplet|i586-unknown-linux-gnu |i?86-*-*
Keywords| |ice-on-valid-code
Last reconfirmed|0000-00-00 00:00:00 |2007-09-08 12:45:26
date| |
Summary|segfault in assembler |[4.3 Regression] segfault in
|function |assembler function
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33351