]>
Commit | Line | Data |
---|---|---|
28567c40 JJ |
1 | int i; |
2 | ||
3 | template <int N> | |
4 | void | |
c7c24828 TB |
5 | foo0 (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 | ||
11 | template <int N> | |
12 | void | |
13 | foo_1 (void) | |
28567c40 JJ |
14 | { |
15 | #pragma omp critical (foo), hint (N + 1) | |
16 | i++; | |
17 | } | |
18 | ||
c7c24828 TB |
19 | template <int N> |
20 | void | |
21 | foobar0 (void) | |
22 | { | |
23 | #pragma omp critical hint (N + 0) | |
24 | i++; | |
25 | } | |
26 | ||
27 | template <int N> | |
28 | void | |
29 | foobar1 (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 |
35 | template <int N> |
36 | void | |
37 | bar (void) | |
38 | { | |
39 | #pragma omp critical (bar), hint (N + i) // { dg-error "constant integer expression" } | |
40 | i++; | |
41 | } | |
42 | ||
43 | template <typename T> | |
44 | void | |
45 | baz (T x) | |
46 | { | |
47 | #pragma omp critical (baz) hint (x) // { dg-error "expression must be integral" } | |
48 | i++; | |
49 | } | |
50 | ||
51 | void | |
52 | test () | |
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 | } |