/* PR tree-optimization/98727 */ __attribute__((noipa)) long int foo (long int x, long int y) { long int z = (unsigned long) x * y; if (x != z / y) return -1; return z; } int main () { if (foo (4, 24) != 96 || foo (124, 126) != 124L * 126 || foo (__LONG_MAX__ / 16, 17) != -1) __builtin_abort (); return 0; }