(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
allocate-4.c
       1  void
       2  foo (void)
       3  {
       4    int s[4] = { 0, 0, 0, 0 };
       5    int *p = s;
       6  #pragma omp parallel reduction (+: s) allocate(s)
       7    s[0]++;
       8  #pragma omp parallel reduction (+: s[0:3]) allocate(s)
       9    s[0]++;
      10  #pragma omp parallel reduction (+: s[2:2]) allocate(s)
      11    s[2]++;
      12  #pragma omp parallel reduction (+: p[:2]) allocate(p)
      13    p[0]++;
      14  #pragma omp parallel reduction (+: p[2:2]) allocate(p)
      15    p[2]++;
      16  }
      17  
      18  void
      19  bar (void)
      20  {
      21    int s[4] = { 0, 0, 0, 0 };
      22    int *p = s;
      23    int i;
      24  #pragma omp teams distribute parallel for reduction (+: s) allocate(s)
      25    for (i = 0; i < 64; i++)
      26      s[0]++;
      27  #pragma omp teams distribute parallel for reduction (+: s[0:3]) allocate(s)
      28    for (i = 0; i < 64; i++)
      29      s[0]++;
      30  #pragma omp teams distribute parallel for reduction (+: s[2:2]) allocate(s)
      31    for (i = 0; i < 64; i++)
      32      s[2]++;
      33  #pragma omp teams distribute parallel for reduction (+: p[:2]) allocate(p)
      34    for (i = 0; i < 64; i++)
      35      p[0]++;
      36  #pragma omp teams distribute parallel for reduction (+: p[2:2]) allocate(p)
      37    for (i = 0; i < 64; i++)
      38      p[2]++;
      39  }