summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-forwprop.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-02 16:58:40 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-02 16:58:40 +0000
commit890e48958aa768dd04be12967598e99fefbe6519 (patch)
tree9ed5db3925f00418a13c0fde2957e6db30f7f132 /gcc/tree-ssa-forwprop.c
parent399f3ef6bedbd0fd924986da99f63e812113dcc8 (diff)
downloadgcc-890e48958aa768dd04be12967598e99fefbe6519.tar.gz
2010-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46216 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): Check if we can propagate from a POINTER_PLUS_EXPR before doing so. * gcc.dg/torture/pr46216.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166203 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-forwprop.c')
-rw-r--r--gcc/tree-ssa-forwprop.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index f4808e78fff..a8284083067 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -1983,7 +1983,8 @@ tree_ssa_forward_propagate_single_use_vars (void)
else
gsi_next (&gsi);
}
- else if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
+ else if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR
+ && can_propagate_from (stmt))
{
if (TREE_CODE (gimple_assign_rhs2 (stmt)) == INTEGER_CST
/* ??? Better adjust the interface to that function