ICE with --enable-bootstrapping in nothrow_function_p/can_throw

Andreas Jaeger aj@suse.de
Fri Mar 10 07:05:00 GMT 2000


I configured the current gcc CVS version (checked out today around 2pm
GMT) with:
/cvs/gcc/configure --prefix=/opt/gcc-2.96 --enable-shared --enable-threads \
         --enable-checking --with-gnu-as --with-gnu-ld

My system: glibc 2.1.3, i686, Linux 2.3.48.

I get the following error:
make[3]: Entering directory `/usr/src/build-cc/19991209/gcc'
./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    -W -Wall -Wtraditional -O2 -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -g -O2 -I. -I/cvs/gcc/gcc -I/cvs/gcc/gcc/config -I/cvs/gcc/gcc/../include \
  -c /cvs/gcc/gcc/cp/tinfo.cc
cc1plus: warning: Ignoring command line option '-Wtraditional'
/cvs/gcc/gcc/cp/tinfo.cc: In method `type_info::~type_info ()':
/cvs/gcc/gcc/cp/tinfo.cc:40: RTL check: expected elt 0 type 'i' or 'n',
/cvs/gcc/gcc/cp/tinfo.cc:40: have 'w' (rtx const_int)
/cvs/gcc/gcc/cp/tinfo.cc:40: Internal compiler error in `can_throw', at
/cvs/gcc/gcc/cp/tinfo.cc:40: except.c:2632
/cvs/gcc/gcc/cp/tinfo.cc:40: Please submit a full bug report.
/cvs/gcc/gcc/cp/tinfo.cc:40: See
/cvs/gcc/gcc/cp/tinfo.cc:40: <URL: http://www.gnu.org/software/gcc/bugs.html >
/cvs/gcc/gcc/cp/tinfo.cc:40: for instructions.
make[3]: *** [tinfo.o] Error 1

gcc -v gives:
 ./cc1plus /tmp/ccQnaDCa.ii -quiet -dumpbase tinfo.cc -g -g1 -g -O2 -O2 -O2 -O2 -W -Wall -Wtraditional -version -fPIC -o /tmp/ccMXXHre.s
cc1plus: warning: Ignoring command line option '-Wtraditional'
GNU C++ version 2.96 20000310 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 20000310 (experimental).

/cvs/gcc/gcc/cp/tinfo.cc: In method `type_info::~type_info ()':
/cvs/gcc/gcc/cp/tinfo.cc:40: RTL check: expected elt 0 type 'i' or 'n',
/cvs/gcc/gcc/cp/tinfo.cc:40: have 'w' (rtx const_int)

gdb shows this backtrace:

Breakpoint 2, fancy_abort (file=0x84d74fa "/cvs/gcc/gcc/except.c", line=2632, 
    function=0x84d7894 "can_throw") at /cvs/gcc/gcc/rtl.c:1249
1249      if (function == NULL)
(gdb) bt
#0  fancy_abort (file=0x84d74fa "/cvs/gcc/gcc/except.c", line=2632, 
    function=0x84d7894 "can_throw") at /cvs/gcc/gcc/rtl.c:1249
#1  0x80f83f3 in rtl_check_failed_type2 () at /cvs/gcc/gcc/rtl.c:1168
#2  0x80a296e in can_throw (insn=0x4016fec0) at /cvs/gcc/gcc/except.c:2632
#3  0x80a29e9 in nothrow_function_p () at /cvs/gcc/gcc/except.c:2658
#4  0x804e843 in rest_of_compilation (decl=0x40119e00)
    at /cvs/gcc/gcc/toplev.c:3716
#5  0x8420c5e in finish_function (lineno=40, flags=0)
    at /cvs/gcc/gcc/cp/decl.c:14045
#6  0x84bb963 in expand_body (fn=0x40119e00)
    at /cvs/gcc/gcc/cp/semantics.c:2788
#7  0x84794bf in yyparse () at parse.y:737
#8  0x804c34b in compile_file (name=0x4010d370 "tinfo.ii")
    at /cvs/gcc/gcc/toplev.c:2451
#9  0x80503e9 in main (argc=19, argv=0xbffff754) at /cvs/gcc/gcc/toplev.c:4918
#10 0x40035a51 in __libc_start_main (main=0x804fde0 <main>, argc=19, 
    argv=0xbffff754, init=0x8048ebc <_init>, fini=0x84cad9c <_fini>, 
    rtld_fini=0x4000a824 <_dl_fini>, stack_end=0xbffff74c)
    at ../sysdeps/generic/libc-start.c:92

#3  0x80a29e9 in nothrow_function_p () at /cvs/gcc/gcc/except.c:2658
2658        if (can_throw (insn))
(gdb) p insn
$1 = 0x4016fec0
(gdb) p *insn
$2 = {code = CALL_INSN, mode = VOIDmode, jump = 0, call = 0, unchanging = 0, 
  volatil = 0, in_struct = 0, used = 0, integrated = 0, frame_related = 0, 
  fld = {{rtwint = 39, rtint = 39, rtstr = 0x27 <Address 0x27 out of bounds>, 
      rtx = 0x27, rtvec = 0x27, rttype = 39, rt_addr_diff_vec_flags = {
        min_align = 39, base_after_vec = 0, min_after_vec = 0, 
        max_after_vec = 0, min_after_base = 0, max_after_base = 0, 
        offset_unsigned = 0, 0, scale = 0}, rtbit = 0x27, rttree = 0x27, 
      bb = 0x27}}}


Jason, this fails in the code you just checked in.  Is this a bug in
nothrow_function_p?  If you need further details, please contact me.

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


More information about the Gcc-bugs mailing list