aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-11 17:30:35 +0000
committerRichard Stallman <rms@gnu.org>1992-07-11 17:30:35 +0000
commit8a958768c8edeebd8aea3e8a76aa145da01b2c87 (patch)
treee3f94e2d33c21955d8b3d43ffbb8f9642917fa21 /gcc
parentff2da9fc8fba78f752ed45e8fc4b478e3ff5989e (diff)
downloadgcc-8a958768c8edeebd8aea3e8a76aa145da01b2c87.zip
gcc-8a958768c8edeebd8aea3e8a76aa145da01b2c87.tar.gz
gcc-8a958768c8edeebd8aea3e8a76aa145da01b2c87.tar.bz2
*** empty log message ***
From-SVN: r1557
Diffstat (limited to 'gcc')
-rw-r--r--gcc/toplev.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 9dd4403..6eef849 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1987,6 +1987,8 @@ rest_of_compilation (decl)
to be restored after we finish compiling the function
(for use when compiling inline calls to this function). */
tree saved_block_tree = 0;
+ /* Likewise, for DECL_ARGUMENTS. */
+ tree saved_arguments = 0;
int failure = 0;
/* If we are reconsidering an inline function
@@ -2041,11 +2043,12 @@ rest_of_compilation (decl)
goto exit_rest_of_compilation;
}
- /* If we have to compile the function now, save its rtl
+ /* If we have to compile the function now, save its rtl and subdecls
so that its compilation will not affect what others get. */
if (TREE_INLINE (decl))
{
saved_block_tree = DECL_INITIAL (decl);
+ saved_arguments = DECL_ARGUMENTS (decl);
TIMEVAR (integration_time, save_for_inline_copying (decl));
}
}
@@ -2523,12 +2526,15 @@ rest_of_compilation (decl)
sdbout_types (NULL_TREE);
#endif
- /* Put back the tree of subblocks from before we copied it.
+ /* Put back the tree of subblocks and list of arguments
+ from before we copied them.
Code generation and the output of debugging info may have modified
the copy, but the original is unchanged. */
if (saved_block_tree != 0)
DECL_INITIAL (decl) = saved_block_tree;
+ if (saved_arguments != 0)
+ DECL_ARGUMENTS (decl) = saved_arguments;
reload_completed = 0;