diff options
author | Richard Henderson <rth@cygnus.com> | 2000-10-07 13:53:21 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-10-07 13:53:21 -0700 |
commit | 9a1ba437e83c401c742656a9b3dc6debf816409f (patch) | |
tree | e6c9280ad9279c2c012c17a733ade27da717cd96 /gcc/calls.c | |
parent | 9ab916b8ed43541ad87ded43671f473671370b0b (diff) | |
download | gcc-9a1ba437e83c401c742656a9b3dc6debf816409f.zip gcc-9a1ba437e83c401c742656a9b3dc6debf816409f.tar.gz gcc-9a1ba437e83c401c742656a9b3dc6debf816409f.tar.bz2 |
calls.c (expand_call): Disallow sibcalls to noreturn functions.
* calls.c (expand_call): Disallow sibcalls to noreturn functions.
* flow.c (make_edges): Revert last change.
* config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
TREE_THIS_VOLATILE.
* config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
From-SVN: r36781
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 2163e51..775d03d 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2463,6 +2463,7 @@ expand_call (exp, target, ignore) before the sibcall_epilogue. */ || fndecl == NULL_TREE || (flags & (ECF_RETURNS_TWICE | ECF_LONGJMP)) + || TREE_THIS_VOLATILE (fndecl) || !FUNCTION_OK_FOR_SIBCALL (fndecl) /* If this function requires more stack slots than the current function, we cannot change it into a sibling call. */ |