https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114074
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Adjusted testcase, -O0 works, -O1/-O2 aborts.
int a, b, d;
__attribute__((noipa)) void
foo (void)
{
++d;
}
int
main ()
{
for (a = 0; a > -3; a -= 2)
{
int c = a;
b = __INT_MAX__ - 3000;
a = ~c * b;
foo ();
if (!a)
break;
a = c;
}
if (d != 2)
__builtin_abort ();
}
