From d4bf69750d31d08068f8242225b8fa06cdf11411 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Wed, 2 Jan 2019 21:38:56 +0000 Subject: 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 From-SVN: r267531 --- gcc/gimple-fold.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gcc/gimple-fold.c') 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; } -- cgit v1.2.3