PATCH: Re: ../../../libio/stream.cc:60: Internal error: Segmentation fault.
John David Anglin
dave@hiauly1.hia.nrc.ca
Sat Nov 25 17:40:00 GMT 2000
>
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x81df1aa in do_compare_and_jump (exp=0x40536de0, signed_code=GT,
> > unsigned_code=GTU, if_false_label=0x40533e80, if_true_label=0x0)
> > at ../../gcc/expr.c:10066
> > 10066 > GET_MODE_BITSIZE (TREE_TYPE (TREE_OPERAND (exp, 1))))))
> > (gdb) disass 0x81df1aa 0x81df1b0
> > Dump of assembler code from 0x81df1aa to 0x81df1b0:
> > 0x81df1aa <do_compare_and_jump+842>: mov 0x843d520(,%eax,4),%eax
> > End of assembler dump.
> > (gdb) info reg eax
> > eax 0x40155400 1075139584
> >
> > I think one of the changes in the last week has caused this.
>
> The enclosed patch appears to fix the problem. The bootstrap and check
> now completes under i686 linux. However, there are a huge number of
> failures in g++ related tests. For example,
>
> spawn /home/dave/gnu/gcc-2.97/objdir/gcc/testsuite/../g++ -B/home/dave/gnu/gcc-2
> .97/objdir/gcc/testsuite/../ /home/dave/gnu/gcc-2.97/gcc/testsuite/g++.old-deja/
> g++.brendan/copy3.C -I/home/dave/gnu/gcc-2.97/libstdc++ -I/home/dave/gnu/gcc-2.9
> 7/libstdc++/stl -fmessage-length=0 -ansi -pedantic-errors -Wno-long-long -I/home
> /dave/gnu/gcc-2.97/libio -I/home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu/libi
> o -lstdc++ -L/home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu//libstdc++ -L/home
> /dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu//libiberty -lm -pthread -o /home/dav
> e/gnu/gcc-2.97/objdir/gcc/testsuite/g++-brendan-copy3-C
> /home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu//libstdc++/libstdc++.a(exceptio
> n.o): In function `_ZNK9exception4whatEv':
> /home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu/libstdc++/../../../libstdc++/ex
> ception.cc:403: undefined reference to `__cxa_bad_typeid'
> /home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu//libstdc++/libstdc++.a(tinfo2.o
> ): In function `_ZNK10__cxxabiv117__pbase_type_info10__do_catchEPK9type_infoPPvj
> ':
> /home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu/libstdc++/../../../libstdc++/ti
> nfo2.cc:176: undefined reference to `__cxa_bad_typeid'
> /home/dave/gnu/gcc-2.97/objdir/i686-pc-linux-gnu/libstdc++/../../../libstdc++/ti
> nfo2.cc:176: undefined reference to `__cxa_bad_typeid'
> collect2: ld returned 1 exit status
>
> Please review for installation.
Oops!
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2000-11-25 John David Anglin <dave@hiauly1.hia.nrc.ca>
* expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
--- expr.c.orig Sat Nov 25 17:33:17 2000
+++ expr.c Sat Nov 25 20:22:18 2000
@@ -10063,7 +10063,8 @@
if (TREE_CODE (TREE_OPERAND (exp, 0)) == INTEGER_CST
&& (TREE_CODE (TREE_OPERAND (exp, 1)) != INTEGER_CST
|| (GET_MODE_BITSIZE (mode)
- > GET_MODE_BITSIZE (TREE_TYPE (TREE_OPERAND (exp, 1))))))
+ > GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp,
+ 1)))))))
{
/* op0 might have been replaced by promoted constant, in which
case the type of second argument should be used. */
More information about the Gcc-bugs
mailing list