summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-06 11:37:14 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-06 11:37:14 +0000
commit686d491a041f813b4fa6691008f11062bd6fc091 (patch)
treef4ceb627969e672a3c9d424e73c294fcb25e8885 /gcc
parentcfc5707a46815e6416f7622ba0f82b94ce50e77d (diff)
downloadgcc-686d491a041f813b4fa6691008f11062bd6fc091.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189325 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/alias.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 871e023603f..f7a65b96bc0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/alias.c b/gcc/alias.c
index b6aca343f06..de9f32c46d6 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -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);
}