]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/g++.dg/gomp/critical-3.C
OpenMP: Fixes for omp critical + hint
[thirdparty/gcc.git] / gcc / testsuite / g++.dg / gomp / critical-3.C
CommitLineData
28567c40
JJ
1int i;
2
3template <int N>
4void
c7c24828
TB
5foo0 (void)
6{
7 #pragma omp critical (foo), hint (N + 1) // { dg-error "critical' with 'hint' clause requires a name, except when 'omp_sync_hint_none' is used" }
8 i++;
9}
10
11template <int N>
12void
13foo_1 (void)
28567c40
JJ
14{
15 #pragma omp critical (foo), hint (N + 1)
16 i++;
17}
18
c7c24828
TB
19template <int N>
20void
21foobar0 (void)
22{
23 #pragma omp critical hint (N + 0)
24 i++;
25}
26
27template <int N>
28void
29foobar1 (void)
30{
31 #pragma omp critical hint (N + 0) // { dg-error "critical' with 'hint' clause requires a name, except when 'omp_sync_hint_none' is used" }
32 i++;
33}
34
28567c40
JJ
35template <int N>
36void
37bar (void)
38{
39 #pragma omp critical (bar), hint (N + i) // { dg-error "constant integer expression" }
40 i++;
41}
42
43template <typename T>
44void
45baz (T x)
46{
47 #pragma omp critical (baz) hint (x) // { dg-error "expression must be integral" }
48 i++;
49}
50
51void
52test ()
53{
c7c24828
TB
54 foo0 <0> (); // Error
55 foo_1 <-1> (); // OK
56 foobar0 <0> (); // OK
57 foobar1 <1> (); // Error
28567c40
JJ
58 bar <0> ();
59 baz (0.0);
60}