aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-07-12 17:36:45 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-07-12 11:36:45 -0600
commit5dd47cb75dac4583dc38e9c1df2fde89fd459a08 (patch)
tree0d8febea6e49248e6ea92f630e251dcc93b88c9a /gcc/tree-vrp.c
parentd132c59b10ac8ee35d2e48c0b598160d5bdabf46 (diff)
downloadgcc-5dd47cb75dac4583dc38e9c1df2fde89fd459a08.zip
gcc-5dd47cb75dac4583dc38e9c1df2fde89fd459a08.tar.gz
gcc-5dd47cb75dac4583dc38e9c1df2fde89fd459a08.tar.bz2
invoke.texi (ssa-name-def-chain-limit): Document new --param.
gcc/ChangeLog: * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param. * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param. * tree-vrp.c (vrp_prop::check_mem_ref): Use PARAM_SSA_NAME_DEF_CHAIN_LIMIT. gcc/testsuite/ChangeLog: * gcc.dg/Warray-bounds-43.c: New test. From-SVN: r273454
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 594ee9a..b79dfb2 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4492,7 +4492,8 @@ vrp_prop::check_mem_ref (location_t location, tree ref,
The loop computes the range of the final offset for expressions such
as (A + i0 + ... + iN)[CSTOFF] where i0 through iN are SSA_NAMEs in
some range. */
- while (TREE_CODE (arg) == SSA_NAME)
+ const unsigned limit = PARAM_VALUE (PARAM_SSA_NAME_DEF_CHAIN_LIMIT);
+ for (unsigned n = 0; TREE_CODE (arg) == SSA_NAME && n < limit; ++n)
{
gimple *def = SSA_NAME_DEF_STMT (arg);
if (!is_gimple_assign (def))