http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51990

--- Comment #1 from vries at gcc dot gnu.org 2012-01-25 08:39:23 UTC ---
tentative fix:

Index: gcc/tree-ssa-sccvn.c
===================================================================
--- gcc/tree-ssa-sccvn.c (revision 183325)
+++ gcc/tree-ssa-sccvn.c (working copy)
@@ -624,6 +624,10 @@ copy_reference_ops_from_ref (tree ref, V

       switch (temp.opcode)
     {
+    case WITH_SIZE_EXPR:
+      temp.op0 = TREE_OPERAND (ref, 1);
+      temp.off = 0;
+      break;
     case MEM_REF:
       /* The base address gets its own vn_reference_op_s structure.  */
       temp.op0 = TREE_OPERAND (ref, 1);
@@ -740,6 +744,7 @@ copy_reference_ops_from_ref (tree ref, V
       VEC_safe_push (vn_reference_op_s, heap, *result, &temp);

       if (REFERENCE_CLASS_P (ref)
+      || TREE_CODE (ref) == WITH_SIZE_EXPR
       || (TREE_CODE (ref) == ADDR_EXPR
           && !is_gimple_min_invariant (ref)))
     ref = TREE_OPERAND (ref, 0);

Reply via email to