PR rtl-optimization/53827
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2012 11:37:14 +0000 (11:37 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2012 11:37:14 +0000 (11:37 +0000)
PR debug/53671
PR debug/49888
* alias.c (memrefs_conflict_p): Adjust offset and size by the
same amount for alignment ANDs.

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

gcc/ChangeLog
gcc/alias.c

index 871e023..f7a65b9 100644 (file)
@@ -1,3 +1,11 @@
+2012-07-06  Alexandre Oilva  <aoliva@redhat.com>
+
+       PR rtl-optimization/53827
+       PR debug/53671
+       PR debug/49888
+       * alias.c (memrefs_conflict_p): Adjust offset and size by the
+       same amount for alignment ANDs.
+
 2012-07-06  Tom de Vries  <tom@codesourcery.com>
 
        PR tree-optimization/51879
index b6aca34..de9f32c 100644 (file)
@@ -2107,7 +2107,7 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
       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, int ysize, rtx y, HOST_WIDE_INT c)
       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);
        }