xref: /llvm-project/clang/test/OpenMP/assume_nesting.cpp (revision a42e515e3a9f3bb4e44389c097b89104d95b9b29)
1 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -ast-print %s | FileCheck %s
2 // expected-no-diagnostics
3 
4 extern void bar();
5 
6 void foo()
7 {
8   #pragma omp assume no_openmp_routines
9   // CHECK: omp assume no_openmp_routines
10   {
11     #pragma omp assume no_parallelism
12     // CHECK: omp assume no_parallelism
13     {}
14   }
15 
16   #pragma omp target
17   // CHECK: omp target
18   {
19     #pragma omp assume holds(1==1)
20     // CHECK: omp assume holds(1 == 1)
21     {}
22   }
23 
24   #pragma omp assume no_parallelism
25   // CHECK: omp assume no_parallelism
26   {
27     #pragma omp target
28     // CHECK: omp target
29     {}
30   }
31 
32   #pragma omp assume absent(parallel)
33   // CHECK: omp assume absent(parallel)
34   {
35     #pragma omp assume contains(target, loop)
36     // CHECK: omp assume contains(target, loop)
37     {
38       #pragma omp assume holds(1==1)
39       // CHECK: omp assume holds(1 == 1)
40       {
41         #pragma omp assume absent(teams)
42         // CHECK: omp assume absent(teams)
43         {
44           #pragma omp assume no_openmp_routines
45           // CHECK: omp assume no_openmp_routines
46           {
47             bar();
48           }
49         }
50       }
51     }
52   }
53 }
54