diff options
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 54ce017..d661866 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -1740,8 +1740,14 @@ register_edge_assert_for_2 (tree name, edge e, && ((TYPE_PRECISION (TREE_TYPE (name)) > TYPE_PRECISION (TREE_TYPE (rhs1))) || (get_range_info (rhs1, &rmin, &rmax) == VR_RANGE - && wi::fits_to_tree_p (rmin, TREE_TYPE (name)) - && wi::fits_to_tree_p (rmax, TREE_TYPE (name))))) + && wi::fits_to_tree_p + (widest_int::from (rmin, + TYPE_SIGN (TREE_TYPE (rhs1))), + TREE_TYPE (name)) + && wi::fits_to_tree_p + (widest_int::from (rmax, + TYPE_SIGN (TREE_TYPE (rhs1))), + TREE_TYPE (name))))) add_assert_info (asserts, rhs1, rhs1, comp_code, fold_convert (TREE_TYPE (rhs1), val)); } |