aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2002-03-18 22:25:50 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2002-03-18 22:25:50 +0000
commit1929c971b93d72d109d796c9977f3943a64e1d7a (patch)
treea61150ba3082d4f91fd8fd52b640fe7ad9a9343a /gcc/calls.c
parent9d5e46be343e18f9798d68c52884a02c19cbc8e0 (diff)
downloadgcc-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.c11
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)