loop-10.c 585 B

123456789101112131415161718192021222324252627282930
  1. extern void abort (void);
  2. int i = 8;
  3. int main (void)
  4. {
  5. int j = 7, k = 0;
  6. #pragma omp for
  7. for (i = 0; i < 10; i++)
  8. ;
  9. #pragma omp for
  10. for (j = 0; j < 10; j++)
  11. ;
  12. /* OpenMP 3.0 newly guarantees that the original list items can't
  13. be shared with the privatized omp for iterators, even when
  14. the original list items are already private. */
  15. if (i != 8 || j != 7)
  16. abort ();
  17. #pragma omp parallel private (i) reduction (+:k)
  18. {
  19. i = 6;
  20. #pragma omp for
  21. for (i = 0; i < 10; i++)
  22. ;
  23. k = (i != 6);
  24. }
  25. if (k)
  26. abort ();
  27. return 0;
  28. }