------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-18 22:02 ------- Index: tree-ssa-forwprop.c =============================================================== ==== RCS file: /cvs/gcc/gcc/gcc/tree-ssa-forwprop.c,v retrieving revision 2.17 diff -u -p -r2.17 tree-ssa-forwprop.c --- tree-ssa-forwprop.c 18 May 2005 16:49:49 -0000 2.17 +++ tree-ssa-forwprop.c 18 May 2005 22:02:21 -0000 @@ -495,6 +495,7 @@ forward_propagate_addr_into_variable_arr /* Replace the pointer addition with array indexing. */ TREE_OPERAND (use_stmt, 1) = unshare_expr (TREE_OPERAND (stmt, 1)); TREE_OPERAND (TREE_OPERAND (TREE_OPERAND (use_stmt, 1), 0), 1) = index; + recompute_tree_invarant_for_addr_expr (TREE_OPERAND (use_stmt, 1)); /* That should have created gimple, so there is no need to record information to undo the propagation. */ @@ -623,6 +624,8 @@ forward_propagate_addr_expr (tree stmt) { mark_new_vars_to_rename (use_stmt); update_stmt (use_stmt); + if (TREE_CODE (rhs) == ADDR_EXPR) + recompute_tree_invarant_for_addr_expr (rhs); return true; } else
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21638