aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2005-03-11 03:14:44 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2005-03-11 03:14:44 +0000
commit550b7784c6e4fdf832cca6619f61f0c0f5935d07 (patch)
tree73a230b38110e6e47a013ef31f7fc55964ad7266 /gcc
parent8bad007cf733b9c5fbe6afd8b9b2fe57b55a14fb (diff)
downloadgcc-550b7784c6e4fdf832cca6619f61f0c0f5935d07.zip
gcc-550b7784c6e4fdf832cca6619f61f0c0f5935d07.tar.gz
gcc-550b7784c6e4fdf832cca6619f61f0c0f5935d07.tar.bz2
re PR rtl-optimization/20331 (Wrong code generation for the argument of the pure function in PIC)
PR rtl-optimization/20331 * rtlanal.c (modified_between_p): Check its address first for MEM. (modified_in_p): Likewise. From-SVN: r96282
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/rtlanal.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d64c028..a25ac12 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/20331
+ * rtlanal.c (modified_between_p): Check its address first for MEM.
+ (modified_in_p): Likewise.
+
2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
* config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 94e8d4c..79121d4 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -817,10 +817,10 @@ modified_between_p (rtx x, rtx start, rtx end)
return 1;
case MEM:
- if (MEM_READONLY_P (x))
- return 0;
if (modified_between_p (XEXP (x, 0), start, end))
return 1;
+ if (MEM_READONLY_P (x))
+ return 0;
for (insn = NEXT_INSN (start); insn != end; insn = NEXT_INSN (insn))
if (memory_modified_in_insn_p (x, insn))
return 1;
@@ -875,10 +875,10 @@ modified_in_p (rtx x, rtx insn)
return 1;
case MEM:
- if (MEM_READONLY_P (x))
- return 0;
if (modified_in_p (XEXP (x, 0), insn))
return 1;
+ if (MEM_READONLY_P (x))
+ return 0;
if (memory_modified_in_insn_p (x, insn))
return 1;
return 0;