1 /* PR c/39495 */
2 /* { dg-do compile } */
3 /* { dg-options "-fopenmp" } */
4 
5 #define INT_MIN (-__INT_MAX__ - 1)
6 #define INT_MAX __INT_MAX__
7 #define UINT_MAX (2U * __INT_MAX__ + 1)
8 
9 int
foo(void)10 foo (void)
11 {
12   int i;
13   unsigned int u;
14 
15 #pragma omp for
16   for (i = INT_MIN + 6; i > INT_MIN + 1; i--)
17     ;
18 #pragma omp for
19   for (i = INT_MIN + 6; i >= INT_MIN + 1; i--)
20     ;
21 #pragma omp for
22   for (i = INT_MIN + 6; i > INT_MIN; i--)
23     ;
24 #pragma omp for
25   for (i = INT_MAX - 6; i < INT_MAX - 1; i++)
26     ;
27 #pragma omp for
28   for (i = INT_MAX - 6; i <= INT_MAX - 1; i++)
29     ;
30 #pragma omp for
31   for (i = INT_MAX - 6; i < INT_MAX; i++)
32     ;
33 #pragma omp for
34   for (u = 6; u > 1; u--)
35     ;
36 #pragma omp for
37   for (u = 6; u >= 1; u--)
38     ;
39 #pragma omp for
40   for (u = 6; u > 0; u--)
41     ;
42 #pragma omp for
43   for (u = UINT_MAX - 6; u < UINT_MAX - 1; u++)
44     ;
45 #pragma omp for
46   for (u = UINT_MAX - 6; u <= UINT_MAX - 1; u++)
47     ;
48 #pragma omp for
49   for (u = UINT_MAX - 6; u < UINT_MAX; u++)
50     ;
51 }
52 
53 int
bar(void)54 bar (void)
55 {
56   int i;
57   unsigned int u;
58 
59 #pragma omp for
60   for (i = INT_MIN + 6; i > INT_MIN + 1; i -= 2)
61     ;
62 #pragma omp for
63   for (i = INT_MIN + 6; i >= INT_MIN + 1; i -= 2)
64     ;
65 #pragma omp for
66   for (i = INT_MIN + 6; i > INT_MIN; i -= 2)
67     ;
68 #pragma omp for
69   for (i = INT_MAX - 6; i < INT_MAX - 1; i += 2)
70     ;
71 #pragma omp for
72   for (i = INT_MAX - 6; i <= INT_MAX - 1; i += 2)
73     ;
74 #pragma omp for
75   for (i = INT_MAX - 6; i < INT_MAX; i += 2)
76     ;
77 #pragma omp for
78   for (u = 6; u > 1; u -= 2)
79     ;
80 #pragma omp for
81   for (u = 6; u >= 1; u -= 2)
82     ;
83 #pragma omp for
84   for (u = 6; u > 0; u -= 2)
85     ;
86 #pragma omp for
87   for (u = UINT_MAX - 6; u < UINT_MAX - 1; u += 2)
88     ;
89 #pragma omp for
90   for (u = UINT_MAX - 6; u <= UINT_MAX - 1; u += 2)
91     ;
92 #pragma omp for
93   for (u = UINT_MAX - 6; u < UINT_MAX; u += 2)
94     ;
95 }
96