brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · b0f50b0 Raw
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