summaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-07-11 17:30:35 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-07-11 17:30:35 +0000
commit81ef668702e8a839b3bc5301a7dea96ffc483fff (patch)
treee3f94e2d33c21955d8b3d43ffbb8f9642917fa21 /gcc/toplev.c
parentbeb41d7426011e0329660d913ef2595724e77c24 (diff)
downloadgcc-81ef668702e8a839b3bc5301a7dea96ffc483fff.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1557 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 9dd4403a2f0..6eef84905b2 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;