summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-18 22:25:50 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-18 22:25:50 +0000
commit10ab549e3844d5f2a9322a45d9c8a86a31ff9fdb (patch)
treea61150ba3082d4f91fd8fd52b640fe7ad9a9343a /gcc/calls.c
parenta6d713d5af7ccd092c825fcc485af74cd00e2beb (diff)
downloadgcc-10ab549e3844d5f2a9322a45d9c8a86a31ff9fdb.tar.gz
* calls.c (precompute_arguments): Do not assume that temporaries
can be destroyed after expanding the argument. (expand_call): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51011 138bc75d-0d04-0410-961f-82ee72b054a4
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 bbcc108332b..67715229b8d 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)