aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
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/rtlanal.c
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/rtlanal.c')
-rw-r--r--gcc/rtlanal.c8
1 files changed, 4 insertions, 4 deletions
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;