diff options
author | Martin Sebor <msebor@redhat.com> | 2019-01-02 21:38:56 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2019-01-02 14:38:56 -0700 |
commit | d4bf69750d31d08068f8242225b8fa06cdf11411 (patch) | |
tree | bd9ca177fac5106370caa472164a9245fffa7ab5 /gcc/gimple-fold.c | |
parent | ec1faddf89cb8219c426418d7af772655d5ad40e (diff) |
gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range rather than set_range_info.
* gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
rather than set_range_info.
* tree-ssa-strlen.c (set_strlen_range): Extracted from
maybe_set_strlen_range. Handle potentially boundary crossing
cases more conservatively.
(maybe_set_strlen_range): Parts refactored into set_strlen_range.
Call set_strlen_range.
* tree-ssa-strlen.h (set_strlen_range): Add prototype.
* gcc.dg/strlenopt-36.c: Update.
* gcc.dg/strlenopt-45.c: Update.
* gcc.c-torture/execute/strlen-5.c: New test.
* gcc.c-torture/execute/strlen-6.c: New test.
* gcc.c-torture/execute/strlen-7.c: New test.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r267531
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r-- | gcc/gimple-fold.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index 688daf92154..0bb4db5e160 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -3739,10 +3739,9 @@ gimple_fold_builtin_strlen (gimple_stmt_iterator *gsi) return true; } + /* Set the strlen() range to [0, MAXLEN]. */ if (tree lhs = gimple_call_lhs (stmt)) - if (TREE_CODE (lhs) == SSA_NAME - && INTEGRAL_TYPE_P (TREE_TYPE (lhs))) - set_range_info (lhs, VR_RANGE, minlen, maxlen); + set_strlen_range (lhs, maxlen); return false; } |