summaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-warn-restrict.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gimple-ssa-warn-restrict.c')
-rw-r--r--gcc/gimple-ssa-warn-restrict.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/gimple-ssa-warn-restrict.c b/gcc/gimple-ssa-warn-restrict.c
index 814797262d2..e6466f39786 100644
--- a/gcc/gimple-ssa-warn-restrict.c
+++ b/gcc/gimple-ssa-warn-restrict.c
@@ -308,11 +308,17 @@ builtin_memref::extend_offset_range (tree offset)
if (TREE_CODE (offset) == SSA_NAME)
{
wide_int min, max;
- if (get_range_info (offset, &min, &max))
+ value_range_type rng = get_range_info_as_value_range (offset, &min, &max);
+ if (rng == VR_RANGE)
{
offrange[0] += offset_int::from (min, SIGNED);
offrange[1] += offset_int::from (max, SIGNED);
}
+ else if (rng == VR_ANTI_RANGE)
+ {
+ offrange[0] += offset_int::from (max + 1, SIGNED);
+ offrange[1] += offset_int::from (min - 1, SIGNED);
+ }
else
{
gimple *stmt = SSA_NAME_DEF_STMT (offset);