1 // { dg-do run  }
2 // prms-id: 4736
3 
4 int did_fail = 1;
5 
6 class O {
7 public:
of()8   virtual void of() { }
9 };
10 
11 class A : public O {
12 public:
vf()13   virtual void vf() { }
14 };
15 
16 class W {
17 public:
vf()18   virtual void vf() { }
19 };
20 
21 class X : public W, public A {
22 public:
vf()23   virtual void vf() { }
24 };
25 
26 class Z : public X {
27 public:
vf()28   virtual void vf() { did_fail = 0; }
29 };
30 
31 Z sz;
32 
fail1(W * w)33 void fail1(W* w) {
34   w->vf();
35 }
36 
main()37 int main() {
38   fail1 (&sz);
39   return did_fail;
40 }
41