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;
}

Reply via email to