(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
doacross-3.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fopenmp" } */
       3  
       4  void
       5  foo (void)
       6  {
       7    int i, j;
       8    #pragma omp for ordered (1)
       9    for (i = 0; i < 64; i++)
      10      {
      11        #pragma omp ordered depend (sink: i + 1)	/* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */
      12        #pragma omp ordered depend (source)
      13      }
      14    #pragma omp for ordered (1)
      15    for (i = 63; i >= 0; i--)
      16      {
      17        #pragma omp ordered depend (sink: i - 1)	/* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */
      18        #pragma omp ordered depend (source)
      19      }
      20    #pragma omp for ordered (2) collapse (2)
      21    for (i = 0; i < 64; i++)
      22      for (j = 0; j < 64; j++)
      23        {
      24  	#pragma omp ordered depend (sink: i + 1, j - 2)	/* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */
      25  	#pragma omp ordered depend (source)
      26        }
      27    #pragma omp for ordered (2) collapse (2)
      28    for (i = 63; i >= 0; --i)
      29      for (j = 0; j < 64; j++)
      30        {
      31  	#pragma omp ordered depend (sink: i - 2, j - 2)	/* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */
      32  	#pragma omp ordered depend (source)
      33        }
      34    #pragma omp for ordered (2) collapse (2)
      35    for (i = 0; i < 64; i++)
      36      for (j = 0; j < 64; j++)
      37        {
      38  	#pragma omp ordered depend (sink: i - 1, j + 2)
      39  	#pragma omp ordered depend (source)
      40        }
      41    #pragma omp for ordered (2) collapse (2)
      42    for (i = 63; i >= 0; --i)
      43      for (j = 0; j < 64; j++)
      44        {
      45  	#pragma omp ordered depend (sink: i + 2, j + 2)
      46  	#pragma omp ordered depend (source)
      47        }
      48    #pragma omp for ordered (1)
      49    for (i = 0; i < 64; i += 2)
      50      {
      51        #pragma omp ordered depend (sink: i - 1)	/* { dg-warning "'depend' clause with 'sink' modifier refers to iteration never in the iteration space" } */
      52        #pragma omp ordered depend (source)
      53      }
      54  }