diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2023-01-17 19:56:36 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2023-04-26 11:46:06 +0200 |
commit | 637037f4e637563c4f50ed04adfa2baf90671491 (patch) | |
tree | 5e86d7b77243da68fd97d2c6cbd071b77ba597af /gcc/tree-ssa-strlen.cc | |
parent | 1a8087c7d1cb3ca1daa87a61766923bad0143700 (diff) | |
download | gcc-637037f4e637563c4f50ed04adfa2baf90671491.zip gcc-637037f4e637563c4f50ed04adfa2baf90671491.tar.gz gcc-637037f4e637563c4f50ed04adfa2baf90671491.tar.bz2 |
Remove some uses of deprecated irange API.
gcc/ChangeLog:
* builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
API uses to new API.
* gimple-predicate-analysis.cc (find_var_cmp_const): Same.
* internal-fn.cc (get_min_precision): Same.
* match.pd: Same.
* tree-affine.cc (expr_to_aff_combination): Same.
* tree-data-ref.cc (dr_step_indicator): Same.
* tree-dfa.cc (get_ref_base_and_extent): Same.
* tree-scalar-evolution.cc (iv_can_overflow_p): Same.
* tree-ssa-phiopt.cc (two_value_replacement): Same.
* tree-ssa-pre.cc (insert_into_preds_of_block): Same.
* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
* tree-ssa-strlen.cc (compare_nonzero_chars): Same.
* tree-switch-conversion.cc (bit_test_cluster::emit): Same.
* tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
* tree.cc (get_range_pos_neg): Same.
Diffstat (limited to 'gcc/tree-ssa-strlen.cc')
-rw-r--r-- | gcc/tree-ssa-strlen.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/tree-ssa-strlen.cc b/gcc/tree-ssa-strlen.cc index dcc9e9e..0bbcb04 100644 --- a/gcc/tree-ssa-strlen.cc +++ b/gcc/tree-ssa-strlen.cc @@ -350,18 +350,19 @@ compare_nonzero_chars (strinfo *si, gimple *stmt, return -1; value_range vr; - if (!rvals->range_of_expr (vr, si->nonzero_chars, stmt)) - return -1; - value_range_kind rng = vr.kind (); - if (rng != VR_RANGE) + if (!rvals->range_of_expr (vr, si->nonzero_chars, stmt) + || vr.varying_p () + || vr.undefined_p ()) return -1; /* If the offset is less than the minimum length or if the bounds of the length range are equal return the result of the comparison same as in the constant case. Otherwise return a conservative result. */ - int cmpmin = compare_tree_int (vr.min (), off); - if (cmpmin > 0 || tree_int_cst_equal (vr.min (), vr.max ())) + tree lower = wide_int_to_tree (vr.type (), vr.lower_bound ()); + tree upper = wide_int_to_tree (vr.type (), vr.upper_bound ()); + int cmpmin = compare_tree_int (lower, off); + if (cmpmin > 0 || tree_int_cst_equal (lower, upper)) return cmpmin; return -1; |