[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / gomp / pr63249.C
blob80f763a4c5fd03421c8b7cef912a884d999f4168
1 // PR c++/63249
2 // { dg-do compile }
3 // { dg-options "-Wall -W -fopenmp" }
5 template <int N>
6 int
7 foo (int *v, int A, int B)      // { dg-bogus "set but not used" }
9   int r = 0;
10   int a = 2;                    // { dg-bogus "set but not used" }
11   int b = 4;                    // { dg-bogus "set but not used" }
12 #pragma omp target map(to: v[a:b])
13   r |= v[3];
14 #pragma omp target map(to: v[A:B])
15   r |= v[3];
16   return r;
19 template <typename T>
20 int
21 bar (T *v, T A, T B)            // { dg-bogus "set but not used" }
23   T r = 0, a = 2, b = 4;        // { dg-bogus "set but not used" }
24 #pragma omp target map(to: v[a:b])
25   r |= v[3];
26 #pragma omp target map(to: v[A:B])
27   r |= v[3];
28   return r;
31 int
32 baz (int *v, int A, int B)
34   return foo<0> (v, A, B) + bar (v, A, B);