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