g++ drops in infinite recursion in fold-const.c / cp/cvt.c
Klaus-Georg Adams
Klaus-Georg.Adams@chemie.uni-karlsruhe.de
Thu Oct 8 04:28:00 GMT 1998
I have a C++ source (760k .ii file, available on request) which causes
a sudden death with signal 11 due to an infinite recursion. The start
of the stacktrace is:
#40696 0x80bd26d in fold (expr=0x8237538)
at /user/adams/egcs-cvs/gcc/fold-const.c:6130
#40697 0x809390c in ocp_convert (type=0x8242aa4, expr=0x8237538, convtype=15,
flags=515) at /user/adams/egcs-cvs/gcc/cp/cvt.c:687
#40698 0x8093c7e in convert (type=0x8242aa4, expr=0x8237538)
at /user/adams/egcs-cvs/gcc/cp/cvt.c:882
#40699 0x80bb3b9 in fold (expr=0x8237510)
at /user/adams/egcs-cvs/gcc/fold-const.c:5085
#40700 0x80bd26d in fold (expr=0x82374e8)
at /user/adams/egcs-cvs/gcc/fold-const.c:6130
#40701 0x808e4bb in condition_conversion (expr=0x82374c0)
at /user/adams/egcs-cvs/gcc/cp/typeck.c:4329
#40702 0x80a1f69 in finish_if_stmt_cond (cond=0x82374c0, if_stmt=0x0)
at /user/adams/egcs-cvs/gcc/cp/semantics.c:128
#40703 0x8066136 in tsubst_expr (t=0x8613a28, args=0x92bf9a8,
in_decl=0x86137b4) at /user/adams/egcs-cvs/gcc/cp/pt.c:6223
#40704 0x80660c4 in tsubst_expr (t=0x86139b8, args=0x92bf9a8,
in_decl=0x86137b4) at /user/adams/egcs-cvs/gcc/cp/pt.c:6200
#40705 0x80661ac in tsubst_expr (t=0x86138cc, args=0x92bf9a8,
in_decl=0x86137b4) at /user/adams/egcs-cvs/gcc/cp/pt.c:6253
#40706 0x80680c3 in instantiate_decl (d=0x92bfa34)
at /user/adams/egcs-cvs/gcc/cp/pt.c:8216
#40707 0x80744ad in finish_file () at /user/adams/egcs-cvs/gcc/cp/decl2.c:3302
#40708 0x80a2c77 in finish_translation_unit ()
at /user/adams/egcs-cvs/gcc/cp/semantics.c:1137
#40709 0x8082305 in yyparse () at parse.y:337
#40710 0x80a8d22 in compile_file (name=0xbffffb50 "difRefList.ii")
at /user/adams/egcs-cvs/gcc/toplev.c:2786
#40711 0x80ab8c0 in main (argc=22, argv=0xbffff9bc)
at /user/adams/egcs-cvs/gcc/toplev.c:4860
>From this point on downwards you get the same circle of
#40697 0x809390c in ocp_convert (type=0x8242aa4, expr=0x8237538, convtype=15,
flags=515) at /user/adams/egcs-cvs/gcc/cp/cvt.c:687
#40698 0x8093c7e in convert (type=0x8242aa4, expr=0x8237538)
at /user/adams/egcs-cvs/gcc/cp/cvt.c:882
#40699 0x80bb3b9 in fold (expr=0x8237510)
at /user/adams/egcs-cvs/gcc/fold-const.c:5085
#40700 0x80bd26d in fold (expr=0x82374e8)
at /user/adams/egcs-cvs/gcc/fold-const.c:6130
This is with a CVS from 19981007:about 7:00 UTC.
fold-const.c is version 1.48, and cp/cvt.c 1.34
rth was the last to touch fold-const.c, and Mark made recent changes
to cvt.c
I couldn't try a later version because the Bootstrap dies with in ICE
during compilation of libgcc2.c:
for name in _eh; \
do \
echo ${name}; \
./xgcc -B./ -O2 -DIN_GCC -DUSE_GNULIBC_1 -g -W -Wall -I./include -fPIC -g1 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions -I. -I/work/adams/egcs-cvs/gcc -I/work/adams/egcs-cvs/gcc/config -I/work/adams/egcs-cvs/gcc/../include -c \
-DL${name} /work/adams/egcs-cvs/gcc/libgcc2.c -o ${name}.o; \
if [ $? -eq 0 ] ; then true; else exit 1; fi; \
` if [ -f /work/adams/egcs-linux/gcc/../binutils/ar ] ; then echo /work/adams/egcs-linux/gcc/../binutils/ar ; else if [ "i686-pc-linux-gnulibc1" = "i686-pc-linux-gnulibc1" ] ; then echo ar; else t='s,x,x,'; echo ar | sed -e $t ; fi; fi` rc tmplibgcc2.a ${name}.o; \
rm -f ${name}.o; \
done
_eh
/work/adams/egcs-cvs/gcc/gcse.c:4399: Internal compiler error in function pre_insert_insn
-- kga
-------------------------------------------------------------------------
Klaus-Georg Adams Email: Klaus-Georg.Adams@chemie.uni-karlsruhe.de
Institut f. Anorg. Chemie, Lehrstuhl II Tel: 49(0)721 608 3485
Universität Karlsruhe, D-76128 Karlsruhe
-------------------------------------------------------------------------
More information about the Gcc-bugs
mailing list