(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
doacross-6.c
       1  void
       2  foo (int n)
       3  {
       4    int i;
       5    #pragma omp for ordered
       6    for (i = 0; i < 8; i += n)
       7      {
       8        #pragma omp ordered doacross(source)		/* { dg-error "expected ':' before '\\\)' token" } */
       9      }
      10    #pragma omp for ordered
      11    for (i = 0; i < 8; i += n)
      12      {
      13        #pragma omp ordered doacross(source:omp_current_iteration)	/* { dg-error "expected '\\\)' before 'omp_current_iteration'" } */
      14      }
      15    #pragma omp for ordered
      16    for (i = 0; i < 8; i += n)
      17      {
      18        #pragma omp ordered doacross(source:i - 2)	/* { dg-error "expected '\\\)' before 'i'" } */
      19      }
      20    #pragma omp for ordered
      21    for (i = 0; i < 8; i += n)
      22      {
      23        #pragma omp ordered doacross(sink)		/* { dg-error "expected ':' before '\\\)' token" } */
      24      }
      25    #pragma omp for ordered
      26    for (i = 0; i < 8; i += n)
      27      {
      28        #pragma omp ordered doacross(source)		/* { dg-error "expected ':' before '\\\)' token" } */
      29        #pragma omp ordered doacross(sink:i-1)
      30      }
      31    #pragma omp for ordered
      32    for (i = 0; i < 8; i += n)
      33      {
      34        #pragma omp ordered doacross(source:)
      35        #pragma omp ordered doacross(sink)		/* { dg-error "expected ':' before '\\\)' token" } */
      36      }
      37  }
      38  
      39  void
      40  bar (int n)
      41  {
      42    int i;
      43    #pragma omp for ordered
      44    for (i = 0; i < 8; i += n)
      45      {
      46        #pragma omp ordered doacross(sink:omp_current_iteration - 1)	/* { dg-error "'omp_current_iteration' undeclared \\\(first use in this function\\\)" "" { target c } } */
      47      }									/* { dg-error "'omp_current_iteration' has not been declared" "" { target c++ } .-1 } */
      48    #pragma omp for ordered
      49    for (i = 0; i < 8; i += n)
      50      {
      51        #pragma omp ordered doacross(sink:omp_cur_iteration)	/* { dg-error "'omp_cur_iteration' undeclared \\\(first use in this function\\\)" "" { target c } } */
      52      }								/* { dg-error "'omp_cur_iteration' has not been declared" "" { target c++ } .-1 } */
      53  }
      54  
      55  void
      56  baz (int n)
      57  {
      58    int i;
      59    #pragma omp for ordered
      60    for (i = 0; i < 8; i += n)
      61      {
      62        #pragma omp ordered doacross(sink:omp_cur_iteration + 1)	/* { dg-error "'omp_cur_iteration' undeclared \\\(first use in this function\\\)" "" { target c } } */
      63      }								/* { dg-error "'omp_cur_iteration' has not been declared" "" { target c++ } .-1 } */
      64  }
      65  
      66  void
      67  qux (int n)
      68  {
      69    int i;
      70    #pragma omp for ordered
      71    for (i = 0; i < 8; i += n)
      72      {
      73        #pragma omp ordered doacross(sink:omp_cur_iteration - (2 - 1))	/* { dg-error "'omp_cur_iteration' undeclared \\\(first use in this function\\\)" "" { target c } } */
      74      }								/* { dg-error "expected integer before '\\\(' token" "" { target *-*-* } .-1 } */
      75  }								/* { dg-error "'omp_cur_iteration' has not been declared" "" { target c++ } .-2 } */
      76  								/* { dg-error "expected '\\\)' before '\\\(' token" "" { target c++ } .-3 } */
      77  void
      78  corge (int n)
      79  {
      80    int i;
      81    #pragma omp for ordered
      82    for (i = 0; i < 8; i += n)
      83      {
      84        #pragma omp ordered doacross(sink:omp_cur_iteration - 1)
      85      }
      86    #pragma omp for ordered
      87    for (i = 0; i < 8; i += n)
      88      {
      89        #pragma omp ordered doacross(sink:omp_cur_iteration - 1LL)
      90      }
      91    #pragma omp for ordered
      92    for (i = 0; i < 8; i += n)
      93      {
      94        #pragma omp ordered doacross(sink:omp_cur_iteration - 0x00001)
      95      }
      96    #pragma omp for ordered
      97    for (i = 0; i < 8; i += n)
      98      {
      99        #pragma omp ordered doacross(sink:omp_cur_iteration - 001)
     100      }
     101    #pragma omp for ordered
     102    for (i = 0; i < 8; i += n)
     103      {
     104        #pragma omp ordered doacross(sink:omp_cur_iteration - 1ULL)
     105      }
     106  }