pr39591-1.c 510 B

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