68 lines · cpp
1// RUN: %clang_cc1 -fopenmp -fopenmp-version=60 -x c++ -std=c++11 -ast-print %s | FileCheck %s2// expected-no-diagnostics3 4extern void bar();5 6template<int N>7void foo()8{9 #pragma omp assume no_openmp_routines10 // CHECK: omp assume no_openmp_routines11 {12 #pragma omp assume no_parallelism13 // CHECK: omp assume no_parallelism14 {}15 }16 17 #pragma omp assume no_openmp_constructs18 // CHECK: omp assume no_openmp_constructs19 {20 #pragma omp assume no_parallelism21 // CHECK: omp assume no_parallelism22 {}23 }24 25 #pragma omp target26 // CHECK: omp target27 {28 #pragma omp assume holds(1==N)29 // CHECK: omp assume holds(1 == N)30 {}31 }32 33 #pragma omp assume no_parallelism34 // CHECK: omp assume no_parallelism35 {36 #pragma omp target37 // CHECK: omp target38 {}39 }40 41 #pragma omp assume absent(parallel)42 // CHECK: omp assume absent(parallel)43 {44 #pragma omp assume contains(target, loop)45 // CHECK: omp assume contains(target, loop)46 {47 #pragma omp assume holds(1==N)48 // CHECK: omp assume holds(1 == N)49 {50 #pragma omp assume absent(teams)51 // CHECK: omp assume absent(teams)52 {53 #pragma omp assume no_openmp_routines54 // CHECK: omp assume no_openmp_routines55 {56 bar();57 }58 }59 }60 }61 }62}63 64int main() {65 foo<5>();66 return 0;67}68