newton%cadillac.cad.mcc.com@MCC.COM (Dave Newton) (12/09/89)
The following code was compiled on a SUN3. Changing "B(char* Name): (Name) {}" to "B(char* Name): A(Name) {}" seems to work. #include <stream.h> class A { public: A() {} A(char* n) {name=n;} virtual char* Name() {return name;} char* name; }; class B: public virtual A { public: B(char* Name): (Name) {} }; main() { B b("dave"); cout << b.Name() << "\n"; } g++-1.36.2 -g -O -v -o testvbug1 testvbug1.cc g++ version 1.36.2- (based on GCC 1.36) /usr/local/gnu/1.36.2/lib/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 testvbug1.cc /usr/tmp/cca18915.cpp GNU CPP version 1.36 /usr/local/gnu/1.36.2/lib/gcc-cc1plus /usr/tmp/cca18915.cpp -quiet -dumpbase testvbug1.cc -g -O -version -o /usr/tmp/cca18915.s GNU C++ version 1.36.2- (based on GCC 1.36) (68k, MIT syntax) compiled by GNU C version 1.36. default target switches: -m68020 -mc68020 -m68881 -mbitfield testvbug1.cc: In function int main (): testvbug1.cc:17: Segmentation violation g++-1.36.2: Program cc1plus got fatal signal 11.