1// g++ 1.37.1 bug 900519_13 2 3// If multiple inheritance creates a situation in which a given name is 4// inherited from more than one base class, and if the inherited declarations 5// for the name are for different categories of members (e.g. object members, 6// function members, enumeral members), then g++ will (in some cases) fail 7// to flag errors when the ambiguous name is used. 8 9// cfront 2.0 passes this test. 10 11// keywords: inheritance, ambiguity resolution, members 12 13struct base_0 { 14 enum { base_member }; // ERROR - candidate (26, 30) 15}; 16 17struct base_1 { 18 int base_member; // ERROR - candidate (26, 34) 19}; 20 21struct base_2 { 22 int base_member (); // ERROR - candidate (30, 34) 23}; 24 25struct derived_0 : public base_0, public base_1 { 26 void member () { base_member; } // ERROR - 27}; 28 29struct derived_1 : public base_0, public base_2 { 30 void member () { base_member; } // ERROR - missed 31}; 32 33struct derived_2 : public base_1, public base_2 { 34 void member () { base_member; } // ERROR - missed 35}; 36