(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
distribute-1.c
       1  int s1, s2, s3, s4, s5, s6, s7, s8;
       2  #pragma omp declare target (s1, s2, s3, s4, s5, s6, s7, s8)
       3  
       4  void
       5  f1 (void)
       6  {
       7    int i;
       8    #pragma omp distribute
       9    for (i = 0; i < 64; i++)
      10      ;
      11    #pragma omp distribute private (i)
      12    for (i = 0; i < 64; i++)
      13      ;
      14    #pragma omp distribute
      15    for (int j = 0; j < 64; j++)
      16      ;
      17    #pragma omp distribute lastprivate (s1)
      18    for (s1 = 0; s1 < 64; s1 += 2)
      19      ;
      20    #pragma omp distribute lastprivate (s2)
      21    for (i = 0; i < 64; i++)
      22      s2 = 2 * i;
      23    #pragma omp distribute simd
      24    for (i = 0; i < 64; i++)
      25      ;
      26    #pragma omp distribute simd lastprivate (s3, s4) collapse(2)
      27    for (s3 = 0; s3 < 64; s3++)
      28      for (s4 = 0; s4 < 3; s4++)
      29        ;
      30    #pragma omp distribute parallel for
      31    for (i = 0; i < 64; i++)
      32      ;
      33    #pragma omp distribute parallel for private (i)
      34    for (i = 0; i < 64; i++)
      35      ;
      36    #pragma omp distribute parallel for lastprivate (s5)
      37    for (s5 = 0; s5 < 64; s5++)
      38      ;
      39    #pragma omp distribute firstprivate (s7) private (s8)
      40    for (i = 0; i < 64; i++)
      41      s8 = s7++;
      42  }
      43  
      44  void
      45  f2 (void)
      46  {
      47    int i;
      48    #pragma omp distribute lastprivate (i)	/* { dg-error "lastprivate variable .i. is private in outer context" } */
      49    for (i = 0; i < 64; i++)
      50      ;
      51    #pragma omp distribute firstprivate (s6) lastprivate (s6) /* { dg-error "same variable used in .firstprivate. and .lastprivate. clauses on .distribute. construct" } */
      52    for (i = 0; i < 64; i++)
      53      s6 += i;
      54  }
      55  
      56  #pragma omp declare target to(f1, f2)