pr66133.c 434 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* PR middle-end/66133 */
  2. /* { dg-do run } */
  3. /* { dg-options "-O2 -fopenmp" } */
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6. volatile int x;
  7. __attribute__((noinline)) void
  8. foo (void)
  9. {
  10. if (x == 0)
  11. {
  12. #pragma omp task
  13. {
  14. usleep (2000);
  15. exit (0);
  16. }
  17. }
  18. else
  19. abort ();
  20. }
  21. int
  22. main ()
  23. {
  24. #pragma omp parallel num_threads (2)
  25. {
  26. #pragma omp barrier
  27. #pragma omp single
  28. foo ();
  29. }
  30. exit (0);
  31. }