aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-09 19:53:43 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-09 19:53:43 -0700
commit840e7b5148eb5894ee29e8d6267b56903412eeac (patch)
tree602d20853be1672bef4dc7382191c3fdfa73cbc0 /gcc/calls.c
parent9e9ada4541daa5b83467f9eaedf04dffbf12e1ce (diff)
downloadgcc-840e7b5148eb5894ee29e8d6267b56903412eeac.zip
gcc-840e7b5148eb5894ee29e8d6267b56903412eeac.tar.gz
gcc-840e7b5148eb5894ee29e8d6267b56903412eeac.tar.bz2
calls.c (expand_call): Increment currently_expanding_call before calling optimize_tail_recursion.
* calls.c (expand_call): Increment currently_expanding_call before calling optimize_tail_recursion. From-SVN: r33813
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 3dd688f..0c1693a 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2305,9 +2305,9 @@ expand_call (exp, target, ignore)
This is most often true of sjlj-exceptions, which we couldn't
tail-call to anyway. */
- if (!flag_optimize_sibling_calls
+ if (currently_expanding_call++ != 0
+ || !flag_optimize_sibling_calls
|| !rtx_equal_function_value_matters
- || currently_expanding_call
|| !stmt_loop_nest_empty ()
|| any_pending_cleanups (1)
|| args_size.var)
@@ -2448,8 +2448,6 @@ expand_call (exp, target, ignore)
stack_pointer_delta = save_stack_pointer_delta;
}
- currently_expanding_call++;
-
if (profile_arc_flag && (flags & ECF_FORK_OR_EXEC))
{
/* A fork duplicates the profile information, and an exec discards