------- Comment #5 from pinskia at gcc dot gnu dot org 2005-11-29 00:38 ------- Note this was the simple fix which exposes those latent bugs as far as I can see that should work, we get the correct range but the rest of VRP goes bonkers: Index: tree-vrp.c =================================================================== --- tree-vrp.c (revision 107604) +++ tree-vrp.c (working copy) @@ -1226,7 +1226,14 @@ extract_range_from_binary_expr (value_ra || symbolic_range_p (&vr0) || symbolic_range_p (&vr1)) { - set_value_range_to_varying (vr); + if ((code != PLUS_EXPR + && code != MINUS_EXPR) + || !is_gimple_min_invariant (op1)) + set_value_range_to_varying (vr); + else + { + set_value_range (vr, VR_RANGE, expr, expr, NULL); + } return; }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25145