1  int i;
       2  
       3  #pragma omp begin assumes no_openmp, absent (target, teams) holds (i < 32U) holds (i < 32U)
       4  void
       5  bar (void)
       6  {
       7  }
       8  #pragma omp end assumes
       9  
      10  #pragma omp begin assumes no_openmp_routines, contains (simd)
      11  void
      12  baz (int *a)
      13  {
      14    #pragma omp simd
      15    for (int j = 0; j < i; j++)
      16      a[j] = j;
      17  }
      18  #pragma omp end assumes
      19  
      20  #pragma omp begin assumes no_parallelism, contains (error)
      21  void
      22  qux (void)
      23  {
      24    if (i >= 32)
      25      {
      26        #pragma omp error at (execution) message ("Should not happen")
      27      }
      28  }
      29  #pragma omp end assumes
      30  
      31  #pragma omp begin assumes absent (for)
      32  void
      33  fred (void)
      34  {
      35  }
      36  #pragma omp end assumes
      37  
      38  #pragma omp begin assumes absent (atomic, barrier, cancel, cancellation point) absent (critical, depobj) \
      39  			  absent (distribute, flush, loop, masked, master, nothing, ordered) \
      40  			  absent (parallel, scan, scope, section, sections, simd, single, task) \
      41  			  absent (taskgroup, taskloop, taskwait, taskyield)
      42  void
      43  foo (void)
      44  {
      45  }
      46  #pragma omp end assumes