(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c/
pr39591-1.c
       1  /* PR other/39591 */
       2  /* { dg-do run } */
       3  
       4  extern void abort (void);
       5  
       6  int e;
       7  
       8  int
       9  main (void)
      10  {
      11  #pragma omp parallel
      12    {
      13      int array[40];
      14      int i;
      15      for (i = 0; i < sizeof array / sizeof array[0]; i++)
      16        array[i] = 0x55555555;
      17  
      18  #pragma omp for schedule(dynamic)
      19      for (i = 0; i < 50; i++)
      20  #pragma omp task shared(array)
      21        {
      22  	int j;
      23  	for (j = 0; j < sizeof array / sizeof array[0]; j++)
      24  	  if (array[j] != 0x55555555)
      25  #pragma omp atomic
      26  	    e++;
      27        }
      28    }
      29    if (e)
      30      abort ();
      31    return 0;
      32  }