[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-10 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2007-09-10 21:56 ---
Fixed so closing.  Though there should be a testcase for this one committed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-09 Thread lauras at gcc dot gnu dot org


-- 

lauras at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING


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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-09 Thread marcus at jet dot franken dot de


--- Comment #7 from marcus at jet dot franken dot de  2007-09-10 05:50 
---
with current SVN (r128305) it is build again.


-- 


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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-08 Thread rguenth 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  [EMAIL PROTECTED]

* 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|-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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-08 Thread lauras at gcc dot gnu dot org


--- Comment #4 from lauras at gcc dot gnu dot org  2007-09-08 18:36 ---
It sure looks like it is caused by my patch. I will be able to take care of
that on Monday. 

I think this change should fix it (completely untested): rewrite


for (p = NEXT_INSN (prev); p != next; p = NEXT_INSN (p))
  if (p != insn  INSN_P (p)
 ...

as 
rtx next_p;
...
for (p = NEXT_INSN (prev); p != next; p = next_p)
  {
next_p = NEXT_INSN (p);
if (p != insn  INSN_P (p))
  ...
  }

Sorry for the trouble.


-- 

lauras at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |lauras at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-09-08 12:45:26 |2007-09-08 18:36:18
   date||


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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-08 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-09-08 19:19 ---
I think PR 33346 is the same issue.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||33346
  nThis||


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



[Bug middle-end/33351] [4.3 Regression] segfault in assembler function

2007-09-08 Thread hp at gcc dot gnu dot org


--- Comment #6 from hp at gcc dot gnu dot org  2007-09-09 05:01 ---
Please try after r128284.


-- 

hp at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hp at gcc dot gnu dot org


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