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]

Bootstrap failure with enable-checking in current CVS (varasm.c: 3423)



With the current CVS version (updated at 19991101 13:00 UTC) I get a
bootstrap failure with --enable-checking:

for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab _clear_cache _trampoline __main _exit _ctors _pure; \
do \
  echo ${name}; \
  ./xgcc -B/opt/gcc-2.96/i686-pc-linux-gnu/bin/ -B./ -I/opt/gcc-2.96/i686-pc-linux-gnu/include -O2   -DIN_GCC    -g -W -Wall -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I../../cvs/gcc/gcc -I../../cvs/gcc/gcc/config -I../../cvs/gcc/gcc/../include -c -DL${name} \
       ../../cvs/gcc/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  ` if [ -f /usr/src/build-cc/gcc/../binutils/ar ] ; then echo /usr/src/build-cc/gcc/../binutils/ar ; else if [ "i686-pc-linux-gnu" = "i686-pc-linux-gnu" ] ; then echo ar; else t='s,^,i686-pc-linux-gnu-,'; echo ar | sed -e $t ; fi; fi` rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
_divdi3
_moddi3
_udivdi3
_umoddi3
_negdi2
_lshrdi3
_ashldi3
_ashrdi3
_ffsdi2
_udiv_w_sdiv
_udivmoddi4
_cmpdi2
_ucmpdi2
_floatdidf
_floatdisf
../../cvs/gcc/gcc/libgcc2.c: In function `__floatdisf':
../../cvs/gcc/gcc/libgcc2.c:1079: RTL check: expected elt 0 type 'e' or 'u', have 's' (rtx symbol_ref)
../../cvs/gcc/gcc/libgcc2.c:1079: Internal compiler error in `decode_rtx_const', at varasm.c:3423

The ICE happens in cc1:
 ./cc1 libgcc2.i -quiet -dumpbase libgcc2.c -g -g1 -O2 -W -Wall -version -fPIC -o libgcc2.s
GNU C version 2.96 19991101 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release).
../../cvs/gcc/gcc/libgcc2.c: In function `__floatdisf':
../../cvs/gcc/gcc/libgcc2.c:1079: RTL check: expected elt 0 type 'e' or 'u', have 's' (rtx symbol_ref)
../../cvs/gcc/gcc/libgcc2.c:1079: Internal compiler error in `decode_rtx_const', at varasm.c:3423
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.

(gdb) bt
#0  fancy_abort (file=0x86cb3bc "../../cvs/gcc/gcc/varasm.c", line=3423, function=0x86cc29c "decode_rtx_const")
    at ../../cvs/gcc/gcc/rtl.c:1146
#1  0x815e0d2 in rtl_check_failed_type2 (r=0x40180550, n=0, c1=101, c2=117, file=0x86cb3bc "../../cvs/gcc/gcc/varasm.c", line=3423, 
    func=0x86cc29c "decode_rtx_const") at ../../cvs/gcc/gcc/rtl.c:1064
#2  0x8152cf1 in decode_rtx_const (mode=SImode, x=0x40180550, value=0xbfffaa48) at ../../cvs/gcc/gcc/varasm.c:3423
#3  0x8152f48 in const_hash_rtx (mode=SImode, x=0x40180550) at ../../cvs/gcc/gcc/varasm.c:3458
#4  0x81535b3 in force_const_mem (mode=SImode, x=0x40180550) at ../../cvs/gcc/gcc/varasm.c:3555
#5  0x826af75 in cse_insn (insn=0x4019d8a0, libcall_insn=0x0) at ../../cvs/gcc/gcc/cse.c:5342
#6  0x827d196 in cse_basic_block (from=0x4019c6e0, to=0x4019cfa0, next_branch=0xbffff0b8, around_loop=0) at ../../cvs/gcc/gcc/cse.c:7148
#7  0x827c856 in cse_main (f=0x4019c6e0, nregs=42, after_loop=0, file=0x0) at ../../cvs/gcc/gcc/cse.c:6993
#8  0x804e272 in rest_of_compilation (decl=0x4019b480) at ../../cvs/gcc/gcc/toplev.c:3810
#9  0x86969f0 in finish_function (nested=0) at ../../cvs/gcc/gcc/c-decl.c:6713
#10 0x867510a in yyparse () at c-parse.y:314
#11 0x804c744 in compile_file (name=0x40122da0 "jrand48_r") at ../../cvs/gcc/gcc/toplev.c:3206
#12 0x8051550 in main (argc=14, argv=0xbffff7f4) at ../../cvs/gcc/gcc/toplev.c:5588

(gdb) up
#2  0x8152cf1 in decode_rtx_const (mode=SImode, x=0x40180550, value=0xbfffaa48) at ../../cvs/gcc/gcc/varasm.c:3423
3423            value->un.addr.base = XEXP (value->un.addr.base, 0);
(gdb) p *value
$2 = {kind = RTX_INT, mode = SImode, un = {du = {d = {r = {1075316048, 0, 0}}, i = {1075316048, 0, 0}}, addr = {base = 0x40180550, 
      offset = 0}, di = {high = 1075316048, low = 0}}}
(gdb) p *x
$4 = {code = SYMBOL_REF, mode = SImode, jump = 0, call = 0, unchanging = 1, volatil = 0, in_struct = 0, used = 0, integrated = 0, 
  frame_related = 0, fld = {{rtwint = 1075316040, rtint = 1075316040, rtstr = 0x40180548 "*.LC1", rtx = 0x40180548, rtvec = 0x40180548, 
      rttype = 1075316040, rt_addr_diff_vec_flags = {min_align = 72, base_after_vec = 1, min_after_vec = 0, max_after_vec = 1, 
        min_after_base = 0, max_after_base = 0, offset_unsigned = 0, 0, scale = 24}, rtbit = 0x40180548, rttree = 0x40180548, 
      bb = 0x40180548}}}

My system: i686, Linux 2.2.13, glibc 2.1.2

If you need further details, please tell me.

Andreas
-- 
 Andreas Jaeger   
  SuSE Labs aj@suse.de	
   private aj@arthur.rhein-neckar.de


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