Compiler crash in cselib_invalidate_regno()

Toshiyasu Morita tm@netcom.com
Tue Apr 25 19:24:00 GMT 2000


version: gcc CVS 
   host: i386-linux (RH 6.1)
 target: sh-elf

When compiling the file ls_step.i with the options "-O2 -m4-single-only -ml"
cc1 crashes:

Program received signal SIGSEGV, Segmentation fault.
0x8180f45 in cselib_invalidate_regno (regno=24, mode=SFmode) at 
../../egcs/gcc/simplify-rtx.c:2872

The code in question looks like:

/* Now, we clear the mapping from value to reg.  It must exist, so
   this code will crash intentionally if it doesn't.  */
for (p = &v->locs; ; p = &(*p)->next)
  {
    rtx x = (*p)->loc;
...

(xxgdb) print p
$1 = (struct elt_loc_list **) 0x825e8d0
(xxgdb) print *p
$2 = (struct elt_loc_list *) 0x0
(xxgdb) 

So, it looks like there is a bad mapping from value to reg created somewhere?

BTW, file ls_step.i is included in stress 1.14 at:

ftp://shell14.ba.best.com/~tm2/stress-1.14.tar.gz

Toshi



More information about the Gcc-bugs mailing list