aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2000-11-28 16:27:54 -0800
committerRichard Henderson <rth@gcc.gnu.org>2000-11-28 16:27:54 -0800
commit54fef245c04e79351cf5aad5608a4bc2a5d5bf25 (patch)
tree6df51adb0c924d773dcd2be93d9b25211ea55d8c /gcc/calls.c
parentf423a6a7dd5bf70b31f5618c08205975cb36a0f1 (diff)
downloadgcc-54fef245c04e79351cf5aad5608a4bc2a5d5bf25.zip
gcc-54fef245c04e79351cf5aad5608a4bc2a5d5bf25.tar.gz
gcc-54fef245c04e79351cf5aad5608a4bc2a5d5bf25.tar.bz2
calls.c (expand_call): Defer const/pure NO_DEFER_POP until after sibcall do_pending_stack_adjust.
* calls.c (expand_call): Defer const/pure NO_DEFER_POP until after sibcall do_pending_stack_adjust. From-SVN: r37836
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index ad79078..45210c2 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2657,11 +2657,6 @@ expand_call (exp, target, ignore)
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))
- NO_DEFER_POP;
-
/* Don't let pending stack adjusts add up to too much.
Also, do all pending adjustments now if there is any chance
this might be a call to alloca or if we are expanding a sibling
@@ -2671,6 +2666,11 @@ expand_call (exp, target, ignore)
|| pass == 0)
do_pending_stack_adjust ();
+ /* 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))
+ NO_DEFER_POP;
+
/* Push the temporary stack slot level so that we can free any
temporaries we make. */
push_temp_slots ();