aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1997-12-12 16:06:57 +0000
committerJeff Law <law@gcc.gnu.org>1997-12-12 09:06:57 -0700
commit8a173c73b5c676543e3a751f8fd7979a388cb594 (patch)
treee6582ebaacea2958ae8268ac9eef592b925f240a /gcc
parent73cea257d4b8a55129906f429050b47da4d69624 (diff)
downloadgcc-8a173c73b5c676543e3a751f8fd7979a388cb594.zip
gcc-8a173c73b5c676543e3a751f8fd7979a388cb594.tar.gz
gcc-8a173c73b5c676543e3a751f8fd7979a388cb594.tar.bz2
integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, look inside a (mem (addressof (mem ...))).
* integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, look inside a (mem (addressof (mem ...))). From-SVN: r17075
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.115
-rw-r--r--gcc/integrate.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11
index 7ea0d5e..8620152 100644
--- a/gcc/ChangeLog.11
+++ b/gcc/ChangeLog.11
@@ -1,6 +1,7 @@
-Wed Dec 10 18:38:56 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+Fri Dec 12 08:01:44 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
- * Version 2.8.0 released.
+ * integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL,
+ look inside a (mem (addressof (mem ...))).
Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 6d27e49..70aaf16 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -276,6 +276,13 @@ initialize_for_inline (fndecl, min_labelno, max_labelno, max_reg, copy)
{
rtx p = DECL_RTL (parms);
+ /* If we have (mem (addressof (mem ...))), use the inner MEM since
+ otherwise the copy_rtx call below will not unshare the MEM since
+ it shares ADDRESSOF. */
+ if (GET_CODE (p) == MEM && GET_CODE (XEXP (p, 0)) == ADDRESSOF
+ && GET_CODE (XEXP (XEXP (p, 0), 0)) == MEM)
+ p = XEXP (XEXP (p, 0), 0);
+
if (GET_CODE (p) == MEM && copy)
{
/* Copy the rtl so that modifications of the addresses