20000117 chk-ICE at jump.c:3767 compiling gcc/libgcc2.c(_muldi3) on i586-pc-linux-gnu

Rodney Brown rdb@localhost
Wed Jan 19 14:46:00 GMT 2000


i586-pc-linux-gnu --enable-checking 
also on
alpha-dec-osf4.0e --enable-checking
i586-sco-sysv5uw7.1.0 --enable-checking

  ./xgcc -B/usr/local/i586-pc-linux-gnu/bin/ -B./ -I/usr/local/i586-pc-linux-gnu/include -O2   -DIN_GCC    -g -W -Wall -Wtraditional -I./include  -fPIC -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I../../egcs-20000117/gcc -I../../egcs-20000117/gcc/config -I../../egcs-20000117/gcc/../include -c -DL${name} \
       ../../egcs-20000117/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  ` if [ -f /home/rdb/src/egcs-20000117.chk/gcc/../binutils/ar ] ; then echo /home/rdb/src/egcs-20000117.chk/gcc/../binutils/ar ; else if [ "i586-pc-linux-gnu" = "i586-pc-linux-gnu" ] ; then echo ar; else t='s,^,i586-pc-linux-gnu-,'; echo ar | sed -e $t ; fi; fi` rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
../../egcs-20000117/gcc/libgcc2.c: In function `__muldi3':
../../egcs-20000117/gcc/libgcc2.c:401: RTL check: expected elt 3 type 'e' or 'u', have '0' (rtx note)
../../egcs-20000117/gcc/libgcc2.c:401: Internal compiler error in `returnjump_p', at jump.c:3767
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
make[2]: *** [libgcc2.a] Error 1
make[2]: Leaving directory `/home/rdb/src/egcs-20000117.chk/gcc'


 ./cc1 libgcc2.i -quiet -dumpbase libgcc2.c -g -g1 -O2 -W -Wall -Wtraditional -version -fPIC -o libgcc2.s
GNU C version 2.96 20000117 (experimental) (i586-pc-linux-gnu) compiled by GNU C version 2.7.2.3.
../../egcs-20000117/gcc/libgcc2.c: In function `__muldi3':
../../egcs-20000117/gcc/libgcc2.c:401: RTL check: expected elt 3 type 'e' or 'u', have '0' (rtx note)
../../egcs-20000117/gcc/libgcc2.c:401: Internal compiler error in `returnjump_p', at jump.c:3767
Please submit a full bug report.


GNU C version 2.96 20000117 (experimental) (i586-pc-linux-gnu) compiled by GNU C version 2.7.2.3.

Breakpoint 4, returnjump_p (insn=0x400b98a0)
    at ../../egcs-20000117/gcc/jump.c:3767
3767	  return for_each_rtx (&PATTERN (insn), returnjump_p_1, NULL);
#0  returnjump_p (insn=0x400b98a0) at ../../egcs-20000117/gcc/jump.c:3767
#1  0x818da70 in emit_insn (pattern=0x400bf6a0)
    at ../../egcs-20000117/gcc/emit-rtl.c:2952
#2  0x811e9f4 in init_expmed () at ../../egcs-20000117/gcc/expmed.c:103
#3  0x804ca8f in compile_file (name=0xbffffe68 "libgcc2.i")
    at ../../egcs-20000117/gcc/toplev.c:2061
#4  0x8052702 in main (argc=15, argv=0xbffffd24)
    at ../../egcs-20000117/gcc/toplev.c:4795
3762	
3763	int
3764	returnjump_p (insn)
3765	     rtx insn;
3766	{
3767	  return for_each_rtx (&PATTERN (insn), returnjump_p_1, NULL);
3768	}
3769	
3770	/* Return true if INSN is a jump that only transfers control and
3771	   nothing more.  */
(gdb) ptype insn
type = struct rtx_def {
...
} *
(gdb) p debug_rtx(insn)
(insn 1 0 0 (set (reg:SI 10000)
        (ashift:SI (reg:SI 10000)
            (const_int 0 [0x0]))) -1 (nil)
    (nil))
$1 = void

Relevant change?
*** egcs-20000110/gcc/jump.c	Tue Jan  4 08:29:40 2000
--- egcs-20000117/gcc/jump.c	Mon Jan 17 07:28:05 2000
*************** returnjump_p_1 (loc, data)
*** 3757,3763 ****
       void *data ATTRIBUTE_UNUSED;
  {
    rtx x = *loc;
!   return GET_CODE (x) == RETURN;
  }
  
  int
--- 3757,3763 ----
       void *data ATTRIBUTE_UNUSED;
  {
    rtx x = *loc;
!   return x && GET_CODE (x) == RETURN;
  }
  
  int


More information about the Gcc-bugs mailing list