diff options
author | Richard Stallman <rms@gnu.org> | 1992-03-14 21:30:38 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-03-14 21:30:38 +0000 |
commit | 9e0a5ab09b93d4513fce799088d321f43278e37f (patch) | |
tree | e943d3ccdb69d9efeaf2fb367a6978a3ba315d2b /gcc | |
parent | c831afd5af83c3d70579ba89f521da8621eaff0c (diff) | |
download | gcc-9e0a5ab09b93d4513fce799088d321f43278e37f.zip gcc-9e0a5ab09b93d4513fce799088d321f43278e37f.tar.gz gcc-9e0a5ab09b93d4513fce799088d321f43278e37f.tar.bz2 |
*** empty log message ***
From-SVN: r489
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 03cbaf4..d326ac1 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -260,11 +260,18 @@ initialize_for_inline (fndecl, min_labelno, max_labelno, max_reg, copy) rtx p = DECL_RTL (parms); if (GET_CODE (p) == MEM && copy) - /* Copy the rtl so that modifications of the address - later in compilation won't affect this arg_vector. - Virtual register instantiation can screw the address - of the rtl. */ - DECL_RTL (parms) = copy_rtx (p); + { + /* Copy the rtl so that modifications of the addresses + later in compilation won't affect this arg_vector. + Virtual register instantiation can screw the address + of the rtl. */ + rtx new = copy_rtx (p); + + /* Don't leave the old copy anywhere in this decl. */ + if (DECL_RTL (parms) == DECL_INCOMING_RTL (parms)) + DECL_INCOMING_RTL (parms) = new; + DECL_RTL (parms) = new; + } RTVEC_ELT (arg_vector, i) = p; |