[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / pr66571-2.C
blobac4c609c90c2abbf334502533ba88173ff29aab6
1 // PR c++/66571
2 // { dg-do compile }
3 // { dg-options "-fopenmp" }
5 template <typename T>
6 extern void bar (T, T, T, T);
8 template <typename T>
9 void
10 foo (T a, T b, T c, T d)
12   #pragma omp parallel for simd private (a) firstprivate (b) lastprivate (c) linear (d:2)
13   for (int i = 0; i < 10; i++)
14     bar<T> (a, b, c, d), d += 2;
15   #pragma omp parallel private (c)
16     #pragma omp single copyprivate (c)
17       bar<T> (a, b, c, d);
18   T e = a;
19   T f = b;
20   T g = c;
21   T h = d;
22   #pragma omp parallel for simd private (e) firstprivate (f) lastprivate (g) linear (h:2)
23   for (int i = 0; i < 10; i++)
24     bar<T> (e, f, g, h), h += 2;
25   #pragma omp parallel private (g)
26     #pragma omp single copyprivate (g)
27       bar<T> (e, f, g, h);
30 void
31 baz ()
33   int a = 0, b = 0, c = 0, d = 0;
34   foo <int> (a, b, c, d);
35   foo <int &> (a, b, c, d);