int i; #pragma omp begin assumes no_openmp, absent (target, teams) holds (i < 32U) holds (i < 32U) void bar (void) { } #pragma omp end assumes #pragma omp begin assumes no_openmp_routines, contains (simd) void baz (int *a) { #pragma omp simd for (int j = 0; j < i; j++) a[j] = j; } #pragma omp end assumes #pragma omp begin assumes no_parallelism, contains (error) void qux (void) { if (i >= 32) { #pragma omp error at (execution) message ("Should not happen") } } #pragma omp end assumes #pragma omp begin assumes absent (for) void fred (void) { } #pragma omp end assumes #pragma omp begin assumes absent (atomic, barrier, cancel, cancellation point) absent (critical, depobj) \ absent (distribute, flush, loop, masked, master, nothing, ordered) \ absent (parallel, scan, scope, section, sections, simd, single, task) \ absent (taskgroup, taskloop, taskwait, taskyield) void foo (void) { } #pragma omp end assumes