------- Comment #7 from rguenth at gcc dot gnu dot org  2006-07-05 16:09 -------
VRP relies on pointer equivalence in update_value_range, but we get

(gdb) call debug_generic_expr (var)
windowD.1282_5
(gdb) print *old_vr
$11 = {type = VR_RANGE, min = 0xb7ce93c0, max = 0xb7cf0678, equiv = 0x88c69a0}
(gdb) print *new_vr
$12 = {type = VR_RANGE, min = 0xb7ce93c0, max = 0xb7cf072c, equiv = 0x88c6cec}
(gdb) call debug_generic_expr (old_vr->max)
lastD.1278_7 + -1
(gdb) call debug_generic_expr (new_vr->max)
lastD.1278_7 + -1

so, the fix is to use operand_equal_p here.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2006-07-05 15:06:20         |2006-07-05 16:09:34
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28187

Reply via email to