Fix test-suite fallout of default -Wreturn-type.
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr42760.C
blob084fcfdfa6834fb4ef401fc236dc528b0f403fe9
1 // PR middle-end/42760
2 // { dg-do compile }
4 template <typename T>
5 struct A
7   static T b (T it) { return it; }
8 };
10 template <typename T, typename U>
11 static U
12 baz (T x, T y, U z)
14   for (long n = y - x; n > 0; --n)
15     {
16       *z = *x;
17       ++z;
18     }
19   return U();
22 template <typename T, typename U>
24 bar (T x, T y, U z)
26   baz (A <T>::b (x), A <T>::b (y), A <U>::b (z));
27   return U();
30 struct C
32   __complex__ float v;
35 template <class T>
36 struct B
38   B (T y[]) { bar (y, y + 1, x); }
39   operator T *() { return x; }
40   T x[1];
43 B <C>
44 foo ()
46   C y[1];
47   return B <C> (y);