This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/8183: ICE when compiling classes with virtual base class on sparc64-sun-solaris2.8
- From: Christian Jönsson <c dot christian dot joensson at telia dot com>
- To: Robert Schiele <rschiele at uni-mannheim dot de>
- Cc: Christian Jönsson <c dot christian dot joensson at telia dot com>, gcc-gnats at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org, ghazi at caip dot rutgers dot edu
- Date: Sat, 11 Jan 2003 09:39:38 +0100
- Subject: Re: c++/8183: ICE when compiling classes with virtual base class on sparc64-sun-solaris2.8
- References: <3E1D6728.5030301@telia.com> <20030109130233.GA8737@schiele.local>
On Thu, Jan 09, 2003 at 02:02:33PM +0100, Robert Schiele wrote:
> On Thu, Jan 09, 2003 at 01:12:24PM +0100, Christian Jönsson wrote:
> > however, if I just build the compiler, i.e., not doing a bootstrap, I do
> > not get the ICE.
>
> Well, this is perfectly clear, because if you just built the compiler,
> you didn't compile anything with such a class construction, as the
> compiler is written in C, not C++.
well, "make" does build both the compiler and the support libraries,
such as the libstdc++-v3 that contains the complex_io.cc file... there
it's an ICE...
> But I would expect the such built compiler to also fail building my
> test case, doesn't it?
Sure does.
> > So, I wonder what the analysis is?
>
> I can't say very much about that, but it seems so that there is
> something broken in the C++ frontend on 64 bit systems. I assume some
> false assumptions about size of specific data types that are only
> correct on some platforms.
>
> I don't have tried on other 64 bit platforms, but for Solaris I can
> say that I am able to build both 32 and 64 bit versions of the
> testcase successfully with the compiler built itself in 32 bit mode.
> But with a compiler built in 64 bit mode, the bug is triggered
> independent of the target being 32 or 64 bit.
Likewise here, building for sparc-linux gets me a through, but not for
sprac64-linux.
I just tried the cvs main trunk, now 3.4 (experimental), and it's
still there. A bootstrap gets me here:
chj@u1sparc:/usr/local/src/gcc-binutils/trunk/objdir$ /usr/local/src/gcc-binutils/trunk/objdir/gcc/xgcc -shared-libgcc -B/usr/local/src/gcc-binutils/trunk/objdir/gcc/ -nostdinc++ -L/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/src -L/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/src/.libs -B/usr/local/gcc-binutils/sparc64-linux/bin/ -B/usr/local/gcc-binutils/sparc64-linux/lib/ -isystem /usr/local/gcc-binutils/sparc64-linux/include -L/usr/local/src/gcc-binutils/trunk/objdir/ld -m32 -nostdinc++ -I/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/sparc64-linux -I/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include -I/usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/libsupc++ -I/usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/libmath -g -O2 -D_GNU_SOURCE -m32 -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -c /usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/src/complex_io.cc -fPIC -DPIC -o .libs/complex_io.o
In file included from /usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/sstream:635,
from /usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/complex:51,
from /usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/src/complex_io.cc:30:
/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/iosfwd: In instantiation of `std::basic_iostream<char, std::char_traits<char> >':
/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/bits/sstream.tcc:231: instantiated from `std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/bits/sstream.tcc:231: instantiated from here
/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/iosfwd:64: internal compiler error: in
lookup_base_r, at cp/search.c:283
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
chj@u1sparc:/usr/local/src/gcc-binutils/trunk/objdir$ chj@u1sparc:/usr/local/src/gcc-binutils/trunk/objdir$ /usr/local/src/gcc-binutils/trunk/objdir/gcc/xgcc -shared-libgcc -B/usr/local/src/gcc-binutils/trunk/objdir/gcc/ -nostdinc++ -L/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/src -L/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/src/.libs -B/usr/local/gcc-binutils/sparc64-linux/bin/ -B/usr/local/gcc-binutils/sparc64-linux/lib/ -isystem /usr/local/gcc-binutils/sparc64-linux/include -L/usr/local/src/gcc-binutils/trunk/objdir/ld -m32 -nostdinc++ -I/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include/sparc64-linux -I/usr/local/src/gcc-binutils/trunk/objdir/sparc64-linux/32/libstdc++-v3/include -I/usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/libsupc++ -I/usr/local/src/gcc-binutils/trunk/gcc-binutils/libstdc++-v3/libmath -g -O2 -D_GNU_SOURCE -m32 -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -c ~/ice.ii -fPIC -DPIC -o /tmp/out.o
/home/chj/ice.ii:4: internal compiler error: in lookup_base_r, at cp/search.c:
283
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
chj@u1sparc:/usr/local/src/gcc-binutils/trunk/objdir$
This was on a Aurora SPARC Linux 0.42 build (Douglas) Ultra1
sun4u system with these packages:
binutils 2.13.1 20021207 sparc64-linux
bison-1.35-1
dejagnu-1.4.2-3
expect-5.32.2-67
gcc 3.2.2 20021204 (prerelease) sparc64-linux
glibc-2.2.5-42
glibc64-2.2.5-42
kernel-2.4.19-1.2sparc
tcl-8.3.3-67
In-tree joined gcc and binutils cvs trunks.
LAST_UPDATED: Fri Jan 10 15:24:38 UTC 2003
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host u1sparc.j-son.org:
#
# /usr/local/src/gcc-binutils/trunk/gcc-binutils/configure sparc64-linux --prefix=/usr/local/gcc-binutils --enable-shared --enable-threads=posix --with-gcc-version-trigger=/usr/local/src/gcc-binutils/trunk/gcc-binutils/gcc/version.c
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.
Cheers,
/ChJ