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)10foo (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)54bar (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