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

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |aoliva at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #2 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-07-02 
12:07:09 UTC ---
My thinko.  This patchlet ought to fix it.  Testing now...

Index: gcc/alias.c
===================================================================
--- gcc/alias.c.orig    2012-07-02 09:04:06.193137799 -0300
+++ gcc/alias.c    2012-07-02 09:04:08.000000000 -0300
@@ -2107,7 +2107,7 @@ memrefs_conflict_p (int xsize, rtx x, in
       if (xsize > 0 && sc < 0 && -uc == (uc & -uc))
     {
       xsize -= sc + 1;
-      c -= sc;
+      c -= sc + 1;
       return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
                      ysize, y, c);
     }
@@ -2119,7 +2119,7 @@ memrefs_conflict_p (int xsize, rtx x, in
       if (ysize > 0 && sc < 0 && -uc == (uc & -uc))
     {
       ysize -= sc + 1;
-      c += sc;
+      c += sc + 1;
       return memrefs_conflict_p (xsize, x,
                      ysize, canon_rtx (XEXP (y, 0)), c);
     }

Reply via email to