xref: /llvm-project/clang/test/OpenMP/parallel_master_taskloop_priority_messages.cpp (revision 5bbceadfc89dda6ff11195aaa3043b2eaaadad25)
1*5bbceadfSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s -Wuninitialized
2*5bbceadfSAlexey Bataev 
3*5bbceadfSAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 %s -Wuninitialized
4*5bbceadfSAlexey Bataev 
foo()5*5bbceadfSAlexey Bataev void foo() {
6*5bbceadfSAlexey Bataev }
7*5bbceadfSAlexey Bataev 
foobool(int argc)8*5bbceadfSAlexey Bataev bool foobool(int argc) {
9*5bbceadfSAlexey Bataev   return argc;
10*5bbceadfSAlexey Bataev }
11*5bbceadfSAlexey Bataev 
12*5bbceadfSAlexey Bataev struct S1; // expected-note {{declared here}}
13*5bbceadfSAlexey Bataev 
14*5bbceadfSAlexey Bataev template <class T, class S> // expected-note {{declared here}}
tmain(T argc,S ** argv)15*5bbceadfSAlexey Bataev int tmain(T argc, S **argv) {
16*5bbceadfSAlexey Bataev   T z;
17*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority // expected-error {{expected '(' after 'priority'}}
18*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
19*5bbceadfSAlexey Bataev     foo();
20*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
21*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
22*5bbceadfSAlexey Bataev     foo();
23*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority () // expected-error {{expected expression}}
24*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
25*5bbceadfSAlexey Bataev     foo();
26*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
27*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
28*5bbceadfSAlexey Bataev     foo();
29*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}}
30*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
31*5bbceadfSAlexey Bataev     foo();
32*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] + z)
33*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
34*5bbceadfSAlexey Bataev     foo();
35*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'priority' clause}}
36*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
37*5bbceadfSAlexey Bataev     foo();
38*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (S) // expected-error {{'S' does not refer to a value}}
39*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
40*5bbceadfSAlexey Bataev     foo();
41*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
42*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
43*5bbceadfSAlexey Bataev     foo();
44*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority(0)
45*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
46*5bbceadfSAlexey Bataev     foo();
47*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority(-1) // expected-error {{argument to 'priority' clause must be a non-negative integer value}}
48*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
49*5bbceadfSAlexey Bataev     foo();
50*5bbceadfSAlexey Bataev 
51*5bbceadfSAlexey Bataev   return 0;
52*5bbceadfSAlexey Bataev }
53*5bbceadfSAlexey Bataev 
main(int argc,char ** argv)54*5bbceadfSAlexey Bataev int main(int argc, char **argv) {
55*5bbceadfSAlexey Bataev   int z;
56*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority // expected-error {{expected '(' after 'priority'}}
57*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
58*5bbceadfSAlexey Bataev     foo();
59*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
60*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
61*5bbceadfSAlexey Bataev     foo();
62*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority () // expected-error {{expected expression}}
63*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
64*5bbceadfSAlexey Bataev     foo();
65*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
66*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
67*5bbceadfSAlexey Bataev     foo();
68*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc)) // expected-warning {{extra tokens at the end of '#pragma omp parallel master taskloop' are ignored}}
69*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
70*5bbceadfSAlexey Bataev     foo();
71*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc > 0 ? argv[1][0] : argv[2][argc] - z)
72*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
73*5bbceadfSAlexey Bataev     foo();
74*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (foobool(argc)), priority (true) // expected-error {{directive '#pragma omp parallel master taskloop' cannot contain more than one 'priority' clause}}
75*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
76*5bbceadfSAlexey Bataev     foo();
77*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (S1) // expected-error {{'S1' does not refer to a value}}
78*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
79*5bbceadfSAlexey Bataev     foo();
80*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
81*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
82*5bbceadfSAlexey Bataev     foo();
83*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority (1 0) // expected-error {{expected ')'}} expected-note {{to match this '('}}
84*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
85*5bbceadfSAlexey Bataev     foo();
86*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority(if(tmain(argc, argv) // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
87*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
88*5bbceadfSAlexey Bataev     foo();
89*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority(0)
90*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
91*5bbceadfSAlexey Bataev     foo();
92*5bbceadfSAlexey Bataev   #pragma omp parallel master taskloop priority(-1) // expected-error {{argument to 'priority' clause must be a non-negative integer value}}
93*5bbceadfSAlexey Bataev   for (int i = 0; i < 10; ++i)
94*5bbceadfSAlexey Bataev     foo();
95*5bbceadfSAlexey Bataev 
96*5bbceadfSAlexey Bataev   return tmain(argc, argv);
97*5bbceadfSAlexey Bataev }
98