1*a914888bSAlexey Bataev // RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 -verify -fopenmp -ferror-limit 100 -o - %s -Wuninitialized 2e955b3d3SArpith Chacko Jacob 3*a914888bSAlexey Bataev // RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 -verify -fopenmp-simd -ferror-limit 100 -o - %s -Wuninitialized 4a8a9153aSAlexey Bataev foo()5e955b3d3SArpith Chacko Jacobvoid foo() { 6e955b3d3SArpith Chacko Jacob } 7e955b3d3SArpith Chacko Jacob foobool(int argc)8e955b3d3SArpith Chacko Jacobbool foobool(int argc) { 9e955b3d3SArpith Chacko Jacob return argc; 10e955b3d3SArpith Chacko Jacob } 11e955b3d3SArpith Chacko Jacob 12e955b3d3SArpith Chacko Jacob struct S1; // expected-note {{declared here}} 13e955b3d3SArpith Chacko Jacob main(int argc,char ** argv)14e955b3d3SArpith Chacko Jacobint main(int argc, char **argv) { 15*a914888bSAlexey Bataev int k; 16e955b3d3SArpith Chacko Jacob #pragma omp target parallel device // expected-error {{expected '(' after 'device'}} 173d58f269SArpith Chacko Jacob foo(); 18e955b3d3SArpith Chacko Jacob #pragma omp target parallel device ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 193d58f269SArpith Chacko Jacob foo(); 20e955b3d3SArpith Chacko Jacob #pragma omp target parallel device () // expected-error {{expected expression}} 213d58f269SArpith Chacko Jacob foo(); 22e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 233d58f269SArpith Chacko Jacob foo(); 24e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target parallel' are ignored}} 253d58f269SArpith Chacko Jacob foo(); 26e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (argc > 0 ? argv[1] : argv[2]) // expected-error {{expression must have integral or unscoped enumeration type, not 'char *'}} 273d58f269SArpith Chacko Jacob foo(); 28e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (argc + argc) 293d58f269SArpith Chacko Jacob foo(); 30*a914888bSAlexey Bataev #pragma omp target parallel device (k), device (argc+1) // expected-error {{directive '#pragma omp target parallel' cannot contain more than one 'device' clause}} 313d58f269SArpith Chacko Jacob foo(); 32e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (S1) // expected-error {{'S1' does not refer to a value}} 333d58f269SArpith Chacko Jacob foo(); 34e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (-2) // expected-error {{argument to 'device' clause must be a non-negative integer value}} 353d58f269SArpith Chacko Jacob foo(); 36e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (-10u) 373d58f269SArpith Chacko Jacob foo(); 38e955b3d3SArpith Chacko Jacob #pragma omp target parallel device (3.14) // expected-error {{expression must have integral or unscoped enumeration type, not 'double'}} 39e955b3d3SArpith Chacko Jacob foo(); 40e955b3d3SArpith Chacko Jacob 41e955b3d3SArpith Chacko Jacob return 0; 42e955b3d3SArpith Chacko Jacob } 43