diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2005-03-11 03:14:44 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2005-03-11 03:14:44 +0000 |
commit | 550b7784c6e4fdf832cca6619f61f0c0f5935d07 (patch) | |
tree | 73a230b38110e6e47a013ef31f7fc55964ad7266 /gcc/rtlanal.c | |
parent | 8bad007cf733b9c5fbe6afd8b9b2fe57b55a14fb (diff) | |
download | gcc-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.c | 8 |
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; |