pr35196.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* PR middle-end/35196 */
  2. /* { dg-do run } */
  3. extern void abort (void);
  4. extern void omp_set_dynamic (int);
  5. int
  6. main (void)
  7. {
  8. int i, j;
  9. omp_set_dynamic (0);
  10. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static)
  11. for (i = 0; i < 5; i++)
  12. j = i;
  13. if (i != 5 || j != 4)
  14. abort ();
  15. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static, 2)
  16. for (i = 0; i < 5; i++)
  17. j = i;
  18. if (i != 5 || j != 4)
  19. abort ();
  20. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (dynamic)
  21. for (i = 0; i < 5; i++)
  22. j = i;
  23. if (i != 5 || j != 4)
  24. abort ();
  25. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static)
  26. for (i = -12; i < 21; i += 3)
  27. j = i;
  28. if (i != 21 || j != 18)
  29. abort ();
  30. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static, 2)
  31. for (i = -12; i < 21; i += 3)
  32. j = i;
  33. if (i != 21 || j != 18)
  34. abort ();
  35. #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (dynamic, 3)
  36. for (i = -12; i < 21; i += 3)
  37. j = i;
  38. if (i != 21 || j != 18)
  39. abort ();
  40. return 0;
  41. }