From: Richard Kenner Date: Fri, 12 Dec 1997 16:06:57 +0000 (+0000) Subject: integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, look inside a (mem... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8a173c73b5c676543e3a751f8fd7979a388cb594;p=gcc.git 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 --- diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11 index 7ea0d5e7e8d..8620152be4d 100644 --- a/gcc/ChangeLog.11 +++ b/gcc/ChangeLog.11 @@ -1,6 +1,7 @@ -Wed Dec 10 18:38:56 1997 Richard Kenner +Fri Dec 12 08:01:44 1997 Richard Kenner - * 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 diff --git a/gcc/integrate.c b/gcc/integrate.c index 6d27e495765..70aaf16f2e6 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