[Bug middle-end/85563] [8/9 regression] -Wmaybe-uninitialized false alarm regression with __builtin_unreachable and GCC 8

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 12 13:10:00 GMT 2019


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

--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #12)
> > Canonical example would be if (int_arg + 32U <= 64U) __builtin_unreachable
> > (),
> 
> We don't quite seem to put a range on int_arg with this. We have one
> temporarily, and deduce ranges for things computed based on int_arg, but I
> don't see one on int_arg itself after the pass.

I certainly do see that.
Try -O2 -fdump-tree-all-alias:
int
foo (int int_arg)
{
  if (int_arg + 32U <= 64U) __builtin_unreachable ();
  return int_arg;
}
Already in the evrp pass there is:
  # RANGE ~[-32, 32]
  int int_arg_3(D) = int_arg;


More information about the Gcc-bugs mailing list