🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #833

Re: g++ 2.2.2 crashes when using multiple inheritance

#833
From: Mike Stump
Date: Sat, 29 Aug 1992 15:41
63 lines
2830 bytes
cygnus bash[910] gcc -S -B./ t3.cc
t3.cc: In function `void  g (struct A*)':
t3.cc:15: cannot convert a pointer of type `A'
t3.cc:15: to a pointer of type `B'
cygnus bash[911] 

is what I get now.  no dump, but I suspect it is wrong.

> From: adams@cs.wisc.edu (Paul Adams)
> Message-Id: <9208272057.AA03920@grana.cs.wisc.edu>
> To: bug-g++@prep.ai.mit.edu
> Date: Thu, 27 Aug 92 15:57:10 CDT

> Hi.  The following program causes g++ 2.2.2 to crash.  

> Hierarchy:

>         A       B
>          \     /
>           v   v
>            \ /
>             C

> The crash occurs if either B or C (or both) are virtual base classes of C.
> The program compiles fine if non-virtual base classes are used. 

> --------------------------------------------------------------------------------
> Script started on Thu Aug 27 15:28:22 1992
> adams 21>cat bug2.c
> struct A {
> 	virtual void f();
> }; 

> struct B {
> 	virtual void f() ;
> }; 

> struct C : virtual A , virtual B {
> 	virtual void f();
> };

> void g(A *ptr)
> {
> 	ptr->f();
> }
> adams 22>g++ -c -v bug2.c
> Reading specs from /usr/gnu/lib/gcc-lib/decstation/2.2.2/specs
> gcc version 2.2.2
>  /usr/gnu/lib/gcc-lib/decstation/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__ANSI_COMPAT -DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -Dbsd4_2 -Dhost_mips -Dmips -Dultrix -Dunix -D__ANSI_COMPAT -D__MIPSEL__ -D__R3000__ -D__SYSTYPE_BSD__ -D___SYSTYPE_BSD__ -D__bsd4_2__ -D__host_mips__ -D__mips__ -D__ultrix__ -D__unix__ -D__ANSI_COMPAT -D__MIPSEL -D__R3000 -D__SYSTYPE_BSD -D___SYSTYPE_BSD -D__bsd4_2 -D__host_mips -D__mips -D__ultrix -D__unix -D__LANGUAGE_C__ -D__LANGUAGE_C -D

LANGUAGE_C bug2.c /usr/tmp/cca03756.i
> GNU CPP version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
>  /usr/gnu/lib/gcc-lib/decstation/2.2.2/cc1plus /usr/tmp/cca03756.i -quiet -dumpbase bug2.cc -version -o /usr/tmp/cca03756.s
> GNU C++ version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by GNU C version 2.2.2.
> bug2.c: In function `void  g (struct A*)':
> bug2.c:15: cannot convert a pointer of type `A'
> bug2.c:15: to a pointer of type `B'
> pid 3767 (cc1plus) was killed on an unaligned access, at pc 0x449c4c 
> /usr/gnu/bin/gcc: Internal compiler error: program cc1plus got fatal signal 10
> adams 23>exit
> exit

> script done on Thu Aug 27 15:29:03 1992
Technical Details
Message-ID: <9208291541.AA00156@cygnus.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!usc!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!cygnus.com!mrs

Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!usc!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!cygnus.com!mrs
From: mrs@cygnus.com (Mike Stump)
Subject: Re:  g++ 2.2.2 crashes when using multiple inheritance
Message-ID: <9208291541.AA00156@cygnus.com>
Sender: gnulists@ai.mit.edu
Organization: GNUs Not Usenet
Distribution: gnu
Date: Sat, 29 Aug 1992 15:41:43 GMT
Approved: bug-g++@prep.ai.mit.edu
Lines: 65