Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!rutgers!mcnc!thorin!zeta!tuck From: tuck@zeta.cs.unc.edu (Russ Tuck) Newsgroups: gnu.g++.bug Subject: 1.36.4- segv with pure virt fn & virt base class (Sun-4, SunOS 4) Message-ID: <11625@thorin.cs.unc.edu> Date: 24 Jan 90 02:49:07 GMT Sender: news@thorin.cs.unc.edu Reply-To: tuck@zeta.cs.unc.edu (Russ Tuck) Distribution: gnu Organization: University Of North Carolina, Chapel Hill Lines: 30 The following set of declarations causes g++ to die with a fatal signal. I believe it is legal code. Cfront 2.0 compiles it without comment. class base { public: virtual int concrete() = 0; }; class deriv1 : virtual public base { public: virtual int concrete() = 0; }; class deriv2 : virtual public deriv1 { public: virtual int concrete() = 0; }; // line 7, segv The compile command and output follow. g++ -c -v g++bug.C g++ version 1.36.4- (based on GCC 1.36.92) /usr/softlab/contrib/src/g++-1.36.4-/sparc_sunos/lib/sparc_sunos/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__s\un__ -D__unix__ g++bug.C /usr/tmp/cca21257.cpp GNU CPP version 1.36 /usr/softlab/contrib/src/g++-1.36.4-/sparc_sunos/lib/sparc_sunos/gcc-cc1plus /usr/tmp/cca21257.cpp -quiet -dumpbase g++bug.C -version -o /usr/tmp/cca21257.s GNU C++ version 1.36.4- (based on GCC 1.36.92) (sparc) compiled by GNU C version 1.36. default target switches: -mfpu -mepilogue g++bug.C:7: Segmentation violation g++: Program cc1plus got fatal signal 11. This is on a Sun-4/280 running SunOS 4.0.3. g++ 1.36.4- came from labrea.stanford.edu:~ftp/pub/gnu/g++.xtar.Z on 1/22/90. Russ Tuck tuck@cs.unc.edu UNC Dept. of Computer Science ...!mcnc!unc!tuck CB 3175, Sitterson Hall Chapel Hill, NC 27599-3175, USA (919) 962-1755 or 962-1700