Fix test-suite fallout of default -Wreturn-type.
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / pr69649.C
blob1ad70dc8af7c5a7f5d5cddc164da3839c675a0e1
1 // PR c++/69649
2 // { dg-do compile }
3 // { dg-options "-O2" }
5 struct A { virtual void m1 (); };
6 struct C : A { void m1 () { m1 (); } };
7 template <class T> struct B
9   T *t;
10   B (T *x) : t (x) { if (t) t->m1 (); }
11   B (const B &);
13 struct D : public C {};
14 struct F : public D
16   virtual B<D> m2 ();
17   virtual B<D> m3 ();
18   int m4 ();
20 struct G : F
22   B<D> m2 ();
23   B<D> m3 ();
25 B<D> G::m2 ()
27   if (m4 () == 0)
28     return this;
29   return 0;
31 B<D> G::m3 ()
33   if (m4 () == 0)
34     return this;
35   return 0;