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