aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index d51fbf6331b..4074dbd8bad 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1444,7 +1444,7 @@ rtx_for_function_call (tree fndecl, tree addr)
Mark all register-parms as living through the call, putting these USE
insns in the CALL_INSN_FUNCTION_USAGE field.
- When IS_SIBCALL, perform the check_sibcall_overlap_argument_overlap
+ When IS_SIBCALL, perform the check_sibcall_argument_overlap
checking, setting *SIBCALL_FAILURE if appropriate. */
static void
@@ -2247,6 +2247,9 @@ expand_call (tree exp, rtx target, int ignore)
if (pass && (flags & (ECF_LIBCALL_BLOCK | ECF_MALLOC)))
start_sequence ();
+ if (pass == 0 && cfun->stack_protect_guard)
+ stack_protect_epilogue ();
+
adjusted_args_size = args_size;
/* Compute the actual size of the argument block required. The variable
and constant sizes must be combined, the size may have to be rounded,