diff options
author | Mark Mitchell <mark@codesourcery.com> | 2002-03-18 22:25:50 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2002-03-18 22:25:50 +0000 |
commit | 1929c971b93d72d109d796c9977f3943a64e1d7a (patch) | |
tree | a61150ba3082d4f91fd8fd52b640fe7ad9a9343a /gcc/calls.c | |
parent | 9d5e46be343e18f9798d68c52884a02c19cbc8e0 (diff) | |
download | gcc-1929c971b93d72d109d796c9977f3943a64e1d7a.zip gcc-1929c971b93d72d109d796c9977f3943a64e1d7a.tar.gz gcc-1929c971b93d72d109d796c9977f3943a64e1d7a.tar.bz2 |
calls.c (precompute_arguments): Do not assume that temporaries can be destroyed after expanding the argument.
* calls.c (precompute_arguments): Do not assume that temporaries
can be destroyed after expanding the argument.
(expand_call): Likewise.
From-SVN: r51011
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index bbcc108..6771522 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1511,14 +1511,9 @@ precompute_arguments (flags, num_actuals, args) if (TREE_ADDRESSABLE (TREE_TYPE (args[i].tree_value))) abort (); - push_temp_slots (); - args[i].value = expand_expr (args[i].tree_value, NULL_RTX, VOIDmode, 0); - preserve_temp_slots (args[i].value); - pop_temp_slots (); - /* ANSI doesn't require a sequence point here, but PCC has one, so this will avoid some problems. */ emit_queue (); @@ -2681,10 +2676,6 @@ expand_call (exp, target, ignore) if (pass && (flags & ECF_LIBCALL_BLOCK)) NO_DEFER_POP; - /* Push the temporary stack slot level so that we can free any - temporaries we make. */ - push_temp_slots (); - #ifdef FINAL_REG_PARM_STACK_SPACE reg_parm_stack_space = FINAL_REG_PARM_STACK_SPACE (args_size.constant, args_size.var); @@ -3334,8 +3325,6 @@ expand_call (exp, target, ignore) if ((flags & ECF_MAY_BE_ALLOCA) && nonlocal_goto_handler_slots != 0) emit_stack_save (SAVE_NONLOCAL, &nonlocal_goto_stack_level, NULL_RTX); - pop_temp_slots (); - /* Free up storage we no longer need. */ for (i = 0; i < num_actuals; ++i) if (args[i].aligned_regs) |