pr43893.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* PR c/43893 */
  2. /* { dg-do run } */
  3. extern void abort (void);
  4. int
  5. main ()
  6. {
  7. int c;
  8. unsigned int i;
  9. int j;
  10. c = 0;
  11. #pragma omp parallel for reduction(+:c)
  12. for (i = 0; i < 1; i++)
  13. c++;
  14. if (c != 1)
  15. abort ();
  16. c = 0;
  17. #pragma omp parallel for reduction(+:c)
  18. for (i = 0; i <= 0; i++)
  19. c++;
  20. if (c != 1)
  21. abort ();
  22. c = 0;
  23. #pragma omp parallel for reduction(+:c)
  24. for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
  25. c++;
  26. if (c != 1)
  27. abort ();
  28. c = 0;
  29. #pragma omp parallel for reduction(+:c)
  30. for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
  31. c++;
  32. if (c != 1)
  33. abort ();
  34. c = 0;
  35. #pragma omp parallel for reduction(+:c)
  36. for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
  37. c++;
  38. if (c != 1)
  39. abort ();
  40. c = 0;
  41. #pragma omp parallel for reduction(+:c)
  42. for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
  43. c++;
  44. if (c != 1)
  45. abort ();
  46. c = 0;
  47. #pragma omp parallel for reduction(+:c)
  48. for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
  49. c++;
  50. if (c != 1)
  51. abort ();
  52. c = 0;
  53. #pragma omp parallel for reduction(+:c)
  54. for (j = __INT_MAX__; j >= __INT_MAX__; j--)
  55. c++;
  56. if (c != 1)
  57. abort ();
  58. return 0;
  59. }