diff options
author | Richard Henderson <rth@redhat.com> | 2005-08-03 20:57:41 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-08-03 20:57:41 -0700 |
commit | b755446cef42521b9cbfbf4a3fe334db4d9054f2 (patch) | |
tree | 389fa11256e277631e1679c27218e3f2f99cb718 /gcc/calls.c | |
parent | a4f5cd4441e5e5a140ad6495eef56b88462ca807 (diff) | |
download | gcc-b755446cef42521b9cbfbf4a3fe334db4d9054f2.zip gcc-b755446cef42521b9cbfbf4a3fe334db4d9054f2.tar.gz gcc-b755446cef42521b9cbfbf4a3fe334db4d9054f2.tar.bz2 |
re PR middle-end/23221 (-fstack-protector does not protect tail call functions)
PR 23221
* function.c (stack_protect_epilogue): Export.
* tree.h (stack_protect_epilogue): Declare.
* calls.c (expand_call): Call it.
From-SVN: r102731
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index d51fbf6..84e0db7 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -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, |