diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-31 16:37:34 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-31 16:37:34 +0000 |
| commit | 04a46d402cbb31e18892981b5ef809341df10de8 (patch) | |
| tree | 93e35327a795bf39efb9f8ab2042a974b57d7941 /gcc | |
| parent | d3ef58ecfde2fa6bea9d9e559a030b7da00fc513 (diff) | |
| download | ppe42-gcc-04a46d402cbb31e18892981b5ef809341df10de8.tar.gz ppe42-gcc-04a46d402cbb31e18892981b5ef809341df10de8.zip | |
* builtins.c (expand_builtin_apply): Don't defer pop during
argument setup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35382 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/builtins.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 42ea12c88f8..7c84c60c43a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-07-31 Jason McMullan <jmcmullan@linuxcare.com> + + * builtins.c (expand_builtin_apply): Don't defer pop during + argument setup. + 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> * calls.c (combine_pending_stack_adjustment_and_call): Only use diff --git a/gcc/builtins.c b/gcc/builtins.c index 56e6c265caf..d7ce1e74236 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -885,8 +885,11 @@ expand_builtin_apply (function, arguments, argsize) /* Perform postincrements before actually calling the function. */ emit_queue (); - /* Push a new argument block and copy the arguments. */ + /* Push a new argument block and copy the arguments. Do not allow + the (potential) memcpy call below to interfere with our stack + manipulations. */ do_pending_stack_adjust (); + NO_DEFER_POP; /* Save the stack with nonlocal if available */ #ifdef HAVE_save_stack_nonlocal @@ -1026,6 +1029,8 @@ expand_builtin_apply (function, arguments, argsize) #endif emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX); + OK_DEFER_POP; + /* Return the address of the result block. */ return copy_addr_to_reg (XEXP (result, 0)); } |

