OSDN Git Service

2010-07-08 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2010 14:58:20 +0000 (14:58 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2010 14:58:20 +0000 (14:58 +0000)
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161959 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-sccvn.c

index e2339f6..98077e1 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
+       stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
+
 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
 
        * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
index e0ba030..9959803 100644 (file)
@@ -986,7 +986,7 @@ vn_reference_maybe_forwprop_address (VEC (vn_reference_op_s, heap) **ops,
   double_int off;
 
   def_stmt = SSA_NAME_DEF_STMT (op->op0);
-  if (!gimple_assign_single_p (def_stmt))
+  if (!is_gimple_assign (def_stmt))
     return;
 
   code = gimple_assign_rhs_code (def_stmt);
@@ -1026,7 +1026,7 @@ vn_reference_maybe_forwprop_address (VEC (vn_reference_op_s, heap) **ops,
        return;
 
       off = double_int_add (off, tree_to_double_int (ptroff));
-      op->op0 = TREE_OPERAND (ptr, 0);
+      op->op0 = ptr;
     }
 
   mem_op->op0 = double_int_to_tree (TREE_TYPE (mem_op->op0), off);