summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/assume-1.c
blob: 05c64a803da286d9a6de2bab152dc7e341678de4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void
foo (int i, int *a)
{
  #pragma omp assume no_openmp, absent (target, teams) holds (i < 32U) holds (i < 32U)
  ;
  #pragma omp assume no_openmp_routines, contains (simd)
  {
    #pragma omp simd
    for (int j = 0; j < i; j++)
      a[j] = j;
  }
  #pragma omp assume no_parallelism, contains (error)
  {
    if (i >= 32)
      {
	#pragma omp error at (execution) message ("Should not happen")
      }
  }
  #pragma omp assume absent (for)
  ;
  #pragma omp assume absent (atomic, barrier, cancel, cancellation point) absent (critical, depobj)
  ;
  #pragma omp assume absent (distribute, flush, loop, masked, master, nothing, ordered)
  ;
  #pragma omp assume absent (parallel, scan, scope, section, sections, simd, single, task)
  ;
  #pragma omp assume absent (taskgroup, taskloop, taskwait, taskyield)
  ;
}