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 9int 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 53int 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