diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-ssa-warn-restrict.c | 8 |
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); |