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