pr49897-1.c 515 B

1234567891011121314151617181920212223242526272829303132
  1. /* PR middle-end/49897 */
  2. /* { dg-do run } */
  3. extern void abort (void);
  4. int
  5. main ()
  6. {
  7. int i, j, x = 0, y, sum = 0;
  8. #pragma omp parallel reduction(+:sum)
  9. {
  10. #pragma omp for firstprivate(x) lastprivate(x, y)
  11. for (i = 0; i < 10; i++)
  12. {
  13. x = i;
  14. y = 0;
  15. #pragma omp parallel reduction(+:sum)
  16. {
  17. #pragma omp for firstprivate(y) lastprivate(y)
  18. for (j = 0; j < 10; j++)
  19. {
  20. y = j;
  21. sum += y;
  22. }
  23. }
  24. }
  25. }
  26. if (x != 9 || y != 9 || sum != 450)
  27. abort ();
  28. return 0;
  29. }