(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
doacross-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-fopenmp" } */
       3  
       4  void
       5  foo (void)
       6  {
       7    int i, j, k;
       8    #pragma omp for ordered (1)
       9    for (i = 0; i < 64; i++)
      10      {
      11        #pragma omp ordered depend (sink: i - 1)
      12        #pragma omp ordered depend (source)
      13      }
      14    #pragma omp for ordered (1) collapse (1)
      15    for (i = 0; i < 64; i++)
      16      {
      17        #pragma omp ordered depend (sink: i - 1)
      18        #pragma omp ordered depend (source)
      19      }
      20    #pragma omp for collapse (2) ordered (1)		/* { dg-error "clause parameter is less than" } */
      21    for (i = 0; i < 64; i++)
      22      for (j = 0; j < 64; j++)
      23        {
      24  	#pragma omp ordered depend (sink: i - 1)	/* { dg-error "does not match number" } */
      25  	#pragma omp ordered depend (source)
      26        }
      27    #pragma omp for ordered (2) collapse (3)		/* { dg-error "clause parameter is less than" } */
      28    for (i = 0; i < 64; i++)
      29      for (j = 0; j < 64; j++)
      30        for (k = 0; k < 64; k++)
      31  	{
      32  	  #pragma omp ordered depend (sink: i - 1, j - 2) /* { dg-error "does not match number" } */
      33  	  #pragma omp ordered depend (source)
      34  	}
      35    #pragma omp ordered depend (sink: j)			/* { dg-error "clause must be closely nested inside an .ordered. loop" } */
      36    #pragma omp ordered depend (source)			/* { dg-error "clause must be closely nested inside an .ordered. loop" } */
      37    #pragma omp for ordered (1)
      38    for (i = 0; i < 64; i++)
      39      {
      40        #pragma omp ordered depend (sink: i - 1) depend (sink: i - 2)
      41        #pragma omp ordered depend (source) depend (source) /* { dg-error "more than one .depend. clause with .source. modifier on an .ordered. construct" } */
      42      }
      43    #pragma omp for ordered (1)
      44    for (i = 0; i < 64; i++)
      45      {
      46        #pragma omp ordered depend (sink: i - 1) depend (source) depend (sink: i - 2) /* { dg-error ".depend. clause with .source. modifier specified together with .depend. clauses with .sink. modifier on the same construct" } */
      47      }
      48  }