[Bug tree-optimization/88427] [9 Regression] ICE: tree check: expected integer_cst, have plus_expr in get_len, at tree.h:5617

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 10 07:55:00 GMT 2018


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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
We have:
(gdb) p debug (lhs_vr)
int [s4_11(D), s4_11(D) + 2]$3 = void
(gdb) p debug (vr_result)
int [s4_11(D), s4_11(D) + 32767]$4 = void
(gdb) p cmp_min
$5 = 0
(gdb) p cmp_max
$6 = -1
and the
      /* If the new minimum is larger than the previous one
         retain the old value.  If the new minimum value is smaller
         than the previous one and not -INF go all the way to -INF + 1.
         In the first case, to avoid infinite bouncing between different
         minimums, and in the other case to avoid iterating millions of
         times to reach -INF.  Going to -INF + 1 also lets the following
         iteration compute whether there will be any overflow, at the
         expense of one additional iteration.  */
code isn't prepared for cmp_min > 0 or cmp_max < 0 to have vr_result->min () or
vr_result->max () of the form [-]sym + cst.


More information about the Gcc-bugs mailing list