https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71031
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Status|UNCONFIRMED |NEW Last reconfirmed| |2016-05-10 Known to work| |5.3.0 Target Milestone|--- |6.2 Summary|[7 Regression] ICE in |[6/7 Regression] ICE in |extract_range_from_binary_e |extract_range_from_binary_e |xpr_1, at tree-vrp.c:2535 |xpr_1, at tree-vrp.c:2535 |w/ -Os |w/ -Os Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. #1 0x00000000011690fc in extract_range_from_binary_expr_1 (vr=0x7fffffffd8b0, code=PLUS_EXPR, expr_type=<integer_type 0x7ffff688b888 unsigned int>, vr0_=0x7fffffffd790, vr1_=0x7fffffffd7b0) at /space/rguenther/src/svn/trunk3/gcc/tree-vrp.c:2534 2534 gcc_assert ((min_ovf == -1 && max_ovf == 0) (gdb) l 2529 { 2530 /* Min underflow or max overflow. The range kind 2531 changes to VR_ANTI_RANGE. */ 2532 bool covers = false; 2533 wide_int tem = tmin; 2534 gcc_assert ((min_ovf == -1 && max_ovf == 0) 2535 || (max_ovf == 1 && min_ovf == 0)); 2536 type = VR_ANTI_RANGE; 2537 tmin = tmax + 1; 2538 if (wi::cmp (tmin, tmax, sgn) < 0) (gdb) p min_ovf $1 = 1 (gdb) p max_ovf $2 = 0 also ICEs on the GCC 6 branch.