1 // { dg-do assemble  }
2 // { dg-options "-Woverloaded-virtual" }
3 
4 struct B4 {
5   virtual void bothfardiff(float);	// { dg-warning "" } was hidden
6 };
7 
8 struct B3 : public B4 {
9 };
10 
11 struct B2 {
12 };
13 
14 struct B {
15   virtual void baseonly(int);
16 
17   virtual void bothsame(int);
18 
19   virtual void bothdiff(float);		// { dg-warning "" } was hidden
20 
21   virtual void both2same(int);
22   virtual void both2same(float);
23 
24   virtual void both12diff(int);
25   virtual void both12diff(float);	// { dg-warning "" } was hidden
26 };
27 
28 struct D : public B, public B2, public B3 {
29   virtual void derivedonly(int);
30 
31   virtual void bothsame(int);
32 
33   virtual void bothdiff(int);		// { dg-message "" }
34 
35   virtual void both2same(int);
36   virtual void both2same(float);
37 
38   virtual void both12diff(int);		// { dg-message "" }
39 
40   virtual void bothfardiff(int);	// { dg-message "" }
41 };
42 
43