31 lines · c
1// RUN: %clang_cc1 -triple=x86_64-linux-gnu -verify -fopenmp -x c -std=c99 %s2// RUN: %clang_cc1 -triple=x86_64-linux-gnu -verify -fopenmp-simd -x c -std=c99 %s3 4[[omp::directive(assume no_openmp)]] // expected-error {{unexpected OpenMP directive '#pragma omp assume'}}5 6void foo(void) {7 [[omp::directive(assume hold(1==1))]] // expected-warning {{extra tokens at the end of '#pragma omp assume' are ignored}}8 {}9}10 11void bar(void) {12 [[omp::directive(assume absent(target))]]13} // expected-error {{expected statement}}14 15void qux(void) {16 [[omp::directive(assume extra_bits)]] // expected-warning {{extra tokens at the end of '#pragma omp assume' are ignored}}17 {}18}19 20void quux(void) {21 // This form of spelling for assumption clauses is supported for22 // "omp assumes" (as a non-standard extension), but not here.23 [[omp::directive(assume ext_spelled_like_this)]] // expected-warning {{extra tokens at the end of '#pragma omp assume' are ignored}}24 {}25}26 27void dups(void) {28 [[omp::directive(assume no_openmp no_openmp)]] // expected-error {{directive '#pragma omp assume' cannot contain more than one 'no_openmp' clause}}29 {}30}31