/* PR rtl-optimization/104839 */ __attribute__((noipa)) short foo (void) { return -1; } __attribute__((noipa)) int bar (void) { short i = foo (); if (i == -2) return 2; long k = i; int j = -1; volatile long s = 300; if (k < 0) { k += s; if (k < 0) j = 0; } else if (k >= s) j = 0; if (j != -1) return 1; return 0; } int main () { if (bar () != 0) __builtin_abort (); return 0; }