(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
depend-iterator-2.c
       1  volatile int v;
       2  
       3  __attribute__((noipa)) void
       4  foo (int *p, int i)
       5  {
       6    #pragma omp task depend (out: p[0])
       7    v++;
       8    #pragma omp task depend (in: p[0])
       9    v++;
      10    #pragma omp task depend (inout: p[0])
      11    v++;
      12    #pragma omp task depend (mutexinoutset: p[0])
      13    v++;
      14    #pragma omp task depend (out: p[0]) depend (in: p[1])
      15    v++;
      16    #pragma omp task depend (in: p[0]) depend (inout: p[1])
      17    v++;
      18    #pragma omp task depend (inout: p[0]) depend (mutexinoutset: p[1])
      19    v++;
      20    #pragma omp task depend (mutexinoutset: p[0]) depend (out: p[1])
      21    v++;
      22    #pragma omp task depend (iterator (j=0:2) , out : p[j])
      23    v++;
      24    #pragma omp task depend (iterator (j=0:2) , in : p[j])
      25    v++;
      26    #pragma omp task depend (iterator (j=0:2) , inout : p[j])
      27    v++;
      28    #pragma omp task depend (iterator (j=0:2) , mutexinoutset : p[j])
      29    v++;
      30    #pragma omp task depend (iterator (j=0:2) , out : p[j]) depend (iterator (j=0:2) , in : p[j + 2])
      31    v++;
      32    #pragma omp task depend (iterator (j=0:2) , in : p[j]) depend (iterator (j=0:2) , inout : p[j + 2])
      33    v++;
      34    #pragma omp task depend (iterator (j=0:2) , inout : p[j]) depend (iterator (j=0:2) , mutexinoutset : p[j + 2])
      35    v++;
      36    #pragma omp task depend (iterator (j=0:2) , mutexinoutset : p[j]) depend (iterator (j=0:2) , out : p[j + 2])
      37    v++;
      38    #pragma omp task depend (iterator (j=0:i) , out : p[j])
      39    v++;
      40    #pragma omp task depend (iterator (j=0:i) , in : p[j])
      41    v++;
      42    #pragma omp task depend (iterator (j=0:i) , inout : p[j])
      43    v++;
      44    #pragma omp task depend (iterator (j=0:i) , mutexinoutset : p[j])
      45    v++;
      46    #pragma omp task depend (iterator (j=0:i) , out : p[j]) depend (iterator (j=0:i) , in : p[j + 2])
      47    v++;
      48    #pragma omp task depend (iterator (j=0:i) , in : p[j]) depend (iterator (j=0:i) , inout : p[j + 2])
      49    v++;
      50    #pragma omp task depend (iterator (j=0:i) , inout : p[j]) depend (iterator (j=0:i) , mutexinoutset : p[j + 2])
      51    v++;
      52    #pragma omp task depend (iterator (j=0:i) , mutexinoutset : p[j]) depend (iterator (j=0:i) , out : p[j + 2])
      53    v++;
      54  }
      55  
      56  int
      57  main ()
      58  {
      59    int p[4];
      60    foo (p, 2);
      61    foo (p, -1);
      62    return 0;
      63  }