summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-forwprop.c
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2007-05-26 03:29:58 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-05-25 20:29:58 -0700
commit150594ba69066ade4b78e51d0a20ef9a16029bc2 (patch)
tree701640b5f9e9f9335a876008b9da83e849d8609b /gcc/tree-ssa-forwprop.c
parentcd3a59b38ed5414f55606720817999b869e02762 (diff)
downloadgcc-150594ba69066ade4b78e51d0a20ef9a16029bc2.tar.gz
re PR tree-optimization/32090 (ICE in forwprop with zero sized array)
2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/32090 * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_array_index): Remove the lhs argument. Use the type of def_rhs instead of lhs. (forward_propagate_addr_expr_1): Update use of forward_propagate_addr_into_variable_array_index. 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/32090 * g++.dg/opt/array2.C: New testcase. From-SVN: r125087
Diffstat (limited to 'gcc/tree-ssa-forwprop.c')
-rw-r--r--gcc/tree-ssa-forwprop.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 143268e3b9f..e42406c3ed6 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -478,8 +478,8 @@ tidy_after_forward_propagate_addr (tree stmt)
mark_symbols_for_renaming (stmt);
}
-/* DEF_RHS defines LHS which is contains the address of the 0th element
- in an array. USE_STMT uses LHS to compute the address of an
+/* DEF_RHS contains the address of the 0th element in an array.
+ USE_STMT uses type of DEF_RHS to compute the address of an
arbitrary element within the array. The (variable) byte offset
of the element is contained in OFFSET.
@@ -494,7 +494,7 @@ tidy_after_forward_propagate_addr (tree stmt)
with the new address computation. */
static bool
-forward_propagate_addr_into_variable_array_index (tree offset, tree lhs,
+forward_propagate_addr_into_variable_array_index (tree offset,
tree def_rhs, tree use_stmt)
{
tree index;
@@ -516,7 +516,7 @@ forward_propagate_addr_into_variable_array_index (tree offset, tree lhs,
/* Try to find an expression for a proper index. This is either
a multiplication expression by the element size or just the
ssa name we came along in case the element size is one. */
- if (integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (lhs)))))
+ if (integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (def_rhs)))))
index = offset;
else
{
@@ -531,7 +531,7 @@ forward_propagate_addr_into_variable_array_index (tree offset, tree lhs,
if (TREE_CODE (offset) != MULT_EXPR
|| TREE_CODE (TREE_OPERAND (offset, 1)) != INTEGER_CST
|| !simple_cst_equal (TREE_OPERAND (offset, 1),
- TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (lhs)))))
+ TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (def_rhs)))))
return false;
/* The first operand to the MULT_EXPR is the desired index. */
@@ -679,7 +679,7 @@ forward_propagate_addr_expr_1 (tree name, tree def_rhs, tree use_stmt,
bool res;
tree offset_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (rhs, 1));
- res = forward_propagate_addr_into_variable_array_index (offset_stmt, lhs,
+ res = forward_propagate_addr_into_variable_array_index (offset_stmt,
def_rhs, use_stmt);
return res;
}
@@ -694,7 +694,7 @@ forward_propagate_addr_expr_1 (tree name, tree def_rhs, tree use_stmt,
{
bool res;
tree offset_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (rhs, 0));
- res = forward_propagate_addr_into_variable_array_index (offset_stmt, lhs,
+ res = forward_propagate_addr_into_variable_array_index (offset_stmt,
def_rhs, use_stmt);
return res;
}