Pointed out by people working on targets with ptr-size != sizetype size.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2012-05-31  Richard Guenther  <rguent...@suse.de>

        * tree-data-ref.c (dr_analyze_innermost): Properly convert
        the MEM_REF offset to sizetype.

Index: gcc/tree-data-ref.c
===================================================================
--- gcc/tree-data-ref.c (revision 188055)
+++ gcc/tree-data-ref.c (working copy)
@@ -755,13 +755,12 @@ dr_analyze_innermost (struct data_refere
     {
       if (!integer_zerop (TREE_OPERAND (base, 1)))
        {
+         double_int moff = mem_ref_offset (base);
+         tree mofft = double_int_to_tree (sizetype, moff);
          if (!poffset)
-           {
-             double_int moff = mem_ref_offset (base);
-             poffset = double_int_to_tree (sizetype, moff);
-           }
+           poffset = mofft;
          else
-           poffset = size_binop (PLUS_EXPR, poffset, TREE_OPERAND (base, 1));
+           poffset = size_binop (PLUS_EXPR, poffset, mofft);
        }
       base = TREE_OPERAND (base, 0);
     }

Reply via email to