diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-07-11 17:30:35 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-07-11 17:30:35 +0000 |
commit | 81ef668702e8a839b3bc5301a7dea96ffc483fff (patch) | |
tree | e3f94e2d33c21955d8b3d43ffbb8f9642917fa21 /gcc/toplev.c | |
parent | beb41d7426011e0329660d913ef2595724e77c24 (diff) | |
download | gcc-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.c | 10 |
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; |