1 // PR ipa/64896
2 // { dg-do compile }
3 // { dg-options "-O2" }
4 
5 struct A { int a, b; };
6 struct B { A c; int d; };
7 struct C { virtual B fn1 () const; };
8 struct D { B fn2 () const; void fn3 () const; C *fn4 () const; };
9 
10 void
fn3()11 D::fn3 () const
12 {
13   fn4 ()->fn1 ();
14 }
15 
16 B
fn2()17 D::fn2 () const
18 {
19   return B ();
20 }
21 
22 class F : C
23 {
24   B
fn1()25   fn1 () const
26   {
27     return B ();
28   }
29 };
30