https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83219

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
pass_sanopt it seems.  Quite late.  So how is this supposed to work?

The testcase is

int e;

int
main (void)
{
  return e ? 0 : (__builtin_unreachable (), 1);
}

and I bet that if we do

int e;

int
main (void)
{
  if (e)
   return e;
  __builtin_unreachable ();
}

we'd optimize it before with regular VRP.

Yes, we do.

So - why are __builtin_unreachable ()s not instrumented early?  They are,
after all, no longer "unreachable".

Reply via email to