aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/calls.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e00700b..f6f8722 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2000-04-07 Jason Merrill <jason@casey.cygnus.com>
+
+ * calls.c (expand_call): emit_queue if we're trying a sibcall.
+
2000-04-07 Jakub Jelinek <jakub@redhat.com>
* config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
diff --git a/gcc/calls.c b/gcc/calls.c
index eb3d794..90afe1e 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2264,6 +2264,10 @@ expand_call (exp, target, ignore)
|| ! FUNCTION_OK_FOR_SIBCALL (fndecl))
continue;
+ /* Emit any queued insns now; otherwise they would end up in
+ 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