rfg@MCC.COM (Ron Guilmette) (01/19/89)
The following short program causes the "compiler proper" part of G++ 1.32.0 (i.e. the c++ program) to abort. Commenting out the call to init causes the abort to go away, and the error messages then produced reveal that this program has some apparent semantic errors. The results of compiling this program are: g++ -v -B./ -S x02.cc g++ version 1.32.0 ./cpp -+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix x02.cc /tmp/cca06039.cpp GNU CPP version 1.32 ./c++ /tmp/cca06039.cpp -quiet -dumpbase x02.cc -noreg -version -o x02.s GNU C++ version 1.32.0 (68k, MIT syntax) compiled by CC. In function void leaf::init (struct handle &): x02.cc:14: warning: parameter `l' never used Failed assertion at __LINE__ 992 of `cplus-convert.c'. g++: Program c++ got fatal signal 6. /* ------------------- compiler-aborts/x02.cc ------------------------*/ struct handle { int node_id; }; struct leaf : public handle { void init(handle&); }; void leaf::init(handle& l) { } struct tree_top : public leaf { tree_top(); }; tree_top::tree_top() : leaf() { handle& prev = *this; init(prev); }