pr34513.c 410 B

123456789101112131415161718192021222324252627282930313233
  1. /* PR c++/34513 */
  2. /* { dg-do run } */
  3. #include <omp.h>
  4. extern void abort ();
  5. static int errors = 0;
  6. static int thrs = 4;
  7. int
  8. main ()
  9. {
  10. omp_set_dynamic (0);
  11. #pragma omp parallel num_threads (thrs)
  12. {
  13. static int shrd = 0;
  14. #pragma omp atomic
  15. shrd += 1;
  16. #pragma omp barrier
  17. if (shrd != thrs)
  18. #pragma omp atomic
  19. errors += 1;
  20. }
  21. if (errors)
  22. abort ();
  23. return 0;
  24. }