/* PR tree-optimization/101254 */ /* { dg-do run } */ /* { dg-options "-O2 -fwrapv" } */ int foo (long long imin, long long imax) { if (imin > imax) return 0; else if (imax - imin < 0 || (imax - imin) + 1 < 0) return 0; return 1; } int main () { long long imax = __LONG_LONG_MAX__; long long imin = -imax - 1; if (!foo (-10, 10)) __builtin_abort (); if (foo (-10, imax)) __builtin_abort (); if (foo (imin, imax)) __builtin_abort (); return 0; }