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 middle-end/33351] [4.3 Regression] segfault in assembler function



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


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