(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c/
pr70680-2.c
       1  /* PR middle-end/70680 */
       2  
       3  int v;
       4  
       5  void
       6  f1 (void)
       7  {
       8    int i = 0, j = 0;
       9  #pragma omp task default(shared) if(0)
      10    {
      11  #pragma omp simd collapse(2)
      12      for (i = 0; i < 10; i++)
      13        for (j = 0; j < 10; j++)
      14  	;
      15      v = i + j;
      16    }
      17    if (i != 10 || j != 10)
      18      __builtin_abort ();
      19  }
      20  
      21  void
      22  f2 (void)
      23  {
      24    int i = 0, j = 0;
      25  #pragma omp task default(shared) if(0)
      26    {
      27  #pragma omp simd collapse(2)
      28      for (i = 0; i < 10; i++)
      29        for (j = 0; j < 10; j++)
      30  	;
      31    }
      32    if (i != 10 || j != 10)
      33      __builtin_abort ();
      34  }
      35  
      36  void
      37  f3 (void)
      38  {
      39    int i = 0, j = 0;
      40  #pragma omp task default(shared) if(0)
      41    {
      42  #pragma omp simd collapse(2) lastprivate (i, j)
      43      for (i = 0; i < 10; i++)
      44        for (j = 0; j < 10; j++)
      45  	;
      46      v = i + j;
      47    }
      48    if (i != 10 || j != 10)
      49      __builtin_abort ();
      50  }
      51  
      52  void
      53  f4 (void)
      54  {
      55    int i = 0, j = 0;
      56  #pragma omp task default(shared) if(0)
      57    {
      58  #pragma omp simd collapse(2) lastprivate (i, j)
      59      for (i = 0; i < 10; i++)
      60        for (j = 0; j < 10; j++)
      61  	;
      62    }
      63    if (i != 10 || j != 10)
      64      __builtin_abort ();
      65  }
      66  
      67  int
      68  main ()
      69  {
      70    f1 ();
      71    if (v++ != 20)
      72      __builtin_abort ();
      73    f2 ();
      74    f3 ();
      75    if (v++ != 20)
      76      __builtin_abort ();
      77    f4 ();
      78    return 0;
      79  }