aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2000-05-15 18:58:37 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2000-05-15 18:58:37 +0200
commitb8d254e64d0d10553df34b4d9bf67fd003730111 (patch)
tree5f8eafb46d0b460b44944ede2b21bb3af43b2b72 /gcc/calls.c
parent3cfea7796dc2ee6d33e937d3aac069704b159265 (diff)
downloadgcc-b8d254e64d0d10553df34b4d9bf67fd003730111.zip
gcc-b8d254e64d0d10553df34b4d9bf67fd003730111.tar.gz
gcc-b8d254e64d0d10553df34b4d9bf67fd003730111.tar.bz2
calls.c (expand_call): Move expand_start_target_temps call after start_sequence().
* calls.c (expand_call): Move expand_start_target_temps call after start_sequence(). From-SVN: r33911
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 5c12ccf..ee4b678 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2341,12 +2341,6 @@ expand_call (exp, target, ignore)
only one of the alternates. */
emit_queue ();
- /* We know at this point that there are not currently any
- pending cleanups. If, however, in the process of evaluating
- the arguments we were to create some, we'll need to be
- able to get rid of them. */
- expand_start_target_temps ();
-
/* State variables we need to save and restore between
iterations. */
save_pending_stack_adjust = pending_stack_adjust;
@@ -2368,6 +2362,15 @@ expand_call (exp, target, ignore)
sibcall_failure instead of continuing the loop. */
start_sequence ();
+ if (pass == 0)
+ {
+ /* We know at this point that there are not currently any
+ pending cleanups. If, however, in the process of evaluating
+ the arguments we were to create some, we'll need to be
+ able to get rid of them. */
+ expand_start_target_temps ();
+ }
+
/* When calling a const function, we must pop the stack args right away,
so that the pop is deleted or moved with the call. */
if (flags & (ECF_CONST | ECF_PURE))