diff options
author | Richard Henderson <rth@cygnus.com> | 2000-05-09 19:53:43 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-05-09 19:53:43 -0700 |
commit | 840e7b5148eb5894ee29e8d6267b56903412eeac (patch) | |
tree | 602d20853be1672bef4dc7382191c3fdfa73cbc0 /gcc | |
parent | 9e9ada4541daa5b83467f9eaedf04dffbf12e1ce (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/calls.c | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ff9a72..e91f0b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-05-09 Richard Henderson <rth@cygnus.com> + + * calls.c (expand_call): Increment currently_expanding_call + before calling optimize_tail_recursion. + Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * reload1.c (reload_combine): Fix errors in last change. 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 |