calls.c (expand_call): Move expand_start_target_temps call after start_sequence().
authorJakub Jelinek <jakub@redhat.com>
Mon, 15 May 2000 16:58:37 +0000 (18:58 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 15 May 2000 16:58:37 +0000 (18:58 +0200)
* calls.c (expand_call): Move expand_start_target_temps call after
start_sequence().

From-SVN: r33911

gcc/ChangeLog
gcc/calls.c

index e0aa443cd4ce44768fa78a7a54888869496fae32..ae88e9ca12c4e7e6fbe3bb5cef07007630594b66 100644 (file)
@@ -1,3 +1,8 @@
+2000-05-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * calls.c (expand_call): Move expand_start_target_temps call after
+       start_sequence().
+
 2000-05-15  Neil Booth  <NeilB@earthling.net>
 
        * cpphash.c (trad_stringify, warn_trad_stringify,
index 5c12ccfb8a433a759c6589bd91c57e67acc042ee..ee4b6786f6872a081d82736e242a19cbdfbbd711 100644 (file)
@@ -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))