omp-nested-1.c 349 B

12345678910111213141516171819202122232425262728
  1. // { dg-do run }
  2. extern void abort(void);
  3. #define N 1000
  4. int foo()
  5. {
  6. int i = 0, j;
  7. #pragma omp parallel for num_threads(2) shared (i)
  8. for (j = 0; j < N; ++j)
  9. {
  10. #pragma omp parallel num_threads(1) shared (i)
  11. {
  12. #pragma omp atomic
  13. i++;
  14. }
  15. }
  16. return i;
  17. }
  18. int main()
  19. {
  20. if (foo() != N)
  21. abort ();
  22. return 0;
  23. }