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