[Bug tree-optimization/90753] missing -Warray-bounds with an extern index in out-of-bounds range

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jun 5 08:11:00 GMT 2019


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

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The reason is simple -- only PRE will rewrite i into SSA form, so this is
a pass ordering issue (VRP doesn't track ranges of "memory" - in theory
EVRP could, but of course aliasing makes derived ranges not useful for
optimization/possibly incorrect or the analysis way more costly).

  <bb 2> [local count: 1073741824]:
  i.1_1 = i;
  i.2_2 = (unsigned int) i.1_1;
  _3 = i.2_2 + 4294967287;
  if (_3 > 90)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  i = 9;

  <bb 4> [local count: 1073741824]:
  # prephitmp_12 = PHI <9(3), i.1_1(2)>
  _5 = a[prephitmp_12];
  _9 = (int) _5;


More information about the Gcc-bugs mailing list