https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115138
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yes! Testing a fix for
int foo (int) {}
int bar (int) {}
typedef int (*pred)(int);
int x, y;
pred A () { if (x) return foo; else return bar; }
pred B () { if (y) return foo; else return bar; }
int __attribute__((noipa)) baz()
{
pred a = A();
pred b = B();
if (a != b)
return 42;
return 0;
}
int main()
{
if (baz () != 0)
__builtin_abort ();
y = 1;
if (baz () != 42)
__builtin_abort ();
return 0;
}