[gnu.g++.bug] Multiple inheritance bug in G++ 1.35.1

bryan@UUNET.UU.NET (Bryan Boreham) (06/20/89)

Example:

kewill% cat mibug.C
class Object {};
class VObject : public Object {};
class View: public VObject {};

class LineItem : public VObject {
public:
   void Enable();
};

class CollectionView: public View {
public:
    int selection;
};

class Menu : public CollectionView {
    int selection;
public:
    void Init();
    void GetTitle() {}
};

void LineItem::Enable() {}

void Menu::Init()
{
    selection= -1;
}

kewill% /usr/local/lib/gcc-cc1plus -version mibug.C -quiet -noreg -o /dev/null
GNU C++ version 1.35.1- (68k, MIT syntax) compiled by GNU C version 1.35.
In method void Menu::Init ():
mibug.C:26: request for member `selection' is ambiguous in multiple inheritance
lattice

I pared this down from 96K of code; the bug goes away if you change
almost anything in the above. It does catch G++ out in three files
of ET++. The temporary work-round is to replace "selection" with
"this->selection".

Bryan.