diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-18 22:25:50 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-18 22:25:50 +0000 |
commit | 10ab549e3844d5f2a9322a45d9c8a86a31ff9fdb (patch) | |
tree | a61150ba3082d4f91fd8fd52b640fe7ad9a9343a /gcc/calls.c | |
parent | a6d713d5af7ccd092c825fcc485af74cd00e2beb (diff) | |
download | gcc-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.c | 11 |
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) |