diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/calls.c | 4 |
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 |