C99 testsuite readiness: Compile more tests with -std=gnu89
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / pr31598.C
blob3ebcead5ac999f67bb264a2ff760f88bc4290552
1 // PR c++/31598
2 // { dg-do compile }
3 //
4 // Copyright (C) 2007 Free Software Foundation, Inc.
5 // Contributed by Theodore.Papadopoulo
6 //   16 Apr 2007 <Theodore.Papadopoulo@sophia.inria.fr>
8 int i;
9 template <typename> struct A { A() {} };
10 template <typename> struct C { C() { i++; } C(const C &) { i += 2; } };
11 struct D { D() {} };
13 struct M { typedef double E; };
15 template <typename T>
16 struct R
18   R()
19   {
20     typedef A<typename T::E> B;
21     B b;
22     #pragma omp parallel for firstprivate(b) schedule(guided)
23       for (int t = 0; t < 10; ++t)
24         ;
25   }
28 template <typename T>
29 struct S
31   S()
32   {
33     typedef C<typename T::E> B;
34     B b;
35     #pragma omp parallel for firstprivate(b)
36       for (int t = 0; t < 10; ++t)
37         ;
38   }
41 struct U
43   U()
44   {
45     D b;
46     #pragma omp parallel for firstprivate(b)
47       for (int t = 0; t < 10; ++t)
48         ;
49   }
52 int
53 main ()
55   R<M> r;
56   S<M> s;
57   U u;
58   return 0;