1 // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s
3 // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s
8 bool foobool(int argc) {
12 struct S1; // expected-note {{declared here}}
14 template <class T, class S> // expected-note {{declared here}}
15 int tmain(T argc, S **argv) {
16 #pragma omp taskloop priority // expected-error {{expected '(' after 'priority'}}
17 for (int i = 0; i < 10; ++i)
19 #pragma omp taskloop priority ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
20 for (int i = 0; i < 10; ++i)
22 #pragma omp taskloop priority () // expected-error {{expected expression}}
23 for (int i = 0; i < 10; ++i)
25 #pragma omp taskloop priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
26 for (int i = 0; i < 10; ++i)
28 #pragma omp taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}}
29 for (int i = 0; i < 10; ++i)
31 #pragma omp taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc])
32 for (int i = 0; i < 10; ++i)
34 #pragma omp taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'priority' clause}}
35 for (int i = 0; i < 10; ++i)
37 #pragma omp taskloop priority (S) // expected-error {{'S' does not refer to a value}}
38 for (int i = 0; i < 10; ++i)
40 #pragma omp taskloop priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
41 for (int i = 0; i < 10; ++i)
43 #pragma omp taskloop priority(0)
44 for (int i = 0; i < 10; ++i)
46 #pragma omp taskloop priority(-1) // expected-error {{argument to 'priority' clause must be a non-negative integer value}}
47 for (int i = 0; i < 10; ++i)
53 int main(int argc, char **argv) {
54 #pragma omp taskloop priority // expected-error {{expected '(' after 'priority'}}
55 for (int i = 0; i < 10; ++i)
57 #pragma omp taskloop priority ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
58 for (int i = 0; i < 10; ++i)
60 #pragma omp taskloop priority () // expected-error {{expected expression}}
61 for (int i = 0; i < 10; ++i)
63 #pragma omp taskloop priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
64 for (int i = 0; i < 10; ++i)
66 #pragma omp taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp taskloop' are ignored}}
67 for (int i = 0; i < 10; ++i)
69 #pragma omp taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc])
70 for (int i = 0; i < 10; ++i)
72 #pragma omp taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp taskloop' cannot contain more than one 'priority' clause}}
73 for (int i = 0; i < 10; ++i)
75 #pragma omp taskloop priority (S1) // expected-error {{'S1' does not refer to a value}}
76 for (int i = 0; i < 10; ++i)
78 #pragma omp taskloop priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
79 for (int i = 0; i < 10; ++i)
81 #pragma omp taskloop priority (1 0) // expected-error {{expected ')'}} expected-note {{to match this '('}}
82 for (int i = 0; i < 10; ++i)
84 #pragma omp taskloop priority(if(tmain(argc, argv) // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
85 for (int i = 0; i < 10; ++i)
87 #pragma omp taskloop priority(0)
88 for (int i = 0; i < 10; ++i)
90 #pragma omp taskloop priority(-1) // expected-error {{argument to 'priority' clause must be a non-negative integer value}}
91 for (int i = 0; i < 10; ++i)
94 return tmain(argc, argv);