(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
gomp/
scan-1.c
       1  int baz (void);
       2  void qux (int);
       3  int r;
       4  
       5  int
       6  foo (void)
       7  {
       8    int r = 0, i;
       9    void bar (void) { r++; }
      10    #pragma omp parallel for reduction(inscan, +:r)
      11    for (i = 0; i < 64; i++)
      12      {
      13        r += baz ();
      14        #pragma omp scan inclusive(r)
      15        qux (r);
      16      }
      17    #pragma omp parallel for reduction(inscan, +:r)
      18    for (i = 0; i < 64; i++)
      19      {
      20        qux (r);
      21        #pragma omp scan exclusive(r)
      22        r += baz ();
      23      }
      24    bar ();
      25    return r;
      26  }
      27  
      28  int
      29  corge (void)
      30  {
      31    int r = 0, i;
      32    void bar (void)
      33    {
      34      #pragma omp parallel for reduction(inscan, +:r)
      35      for (i = 0; i < 64; i++)
      36        {
      37  	r += baz ();
      38  	#pragma omp scan inclusive(r)
      39  	qux (r);
      40        }
      41      #pragma omp parallel for reduction(inscan, +:r)
      42      for (i = 0; i < 64; i++)
      43        {
      44  	qux (r);
      45  	#pragma omp scan exclusive(r)
      46  	r += baz ();
      47        }
      48    }
      49    bar ();
      50    return r;
      51  }