summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-10 02:53:43 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-10 02:53:43 +0000
commit3b2168bc05d2f19ebfb48bf61c819fbbe41db188 (patch)
tree602d20853be1672bef4dc7382191c3fdfa73cbc0
parent7d6f4f46c06a03754ab51001c07ec18f63d29678 (diff)
downloadppe42-gcc-3b2168bc05d2f19ebfb48bf61c819fbbe41db188.tar.gz
ppe42-gcc-3b2168bc05d2f19ebfb48bf61c819fbbe41db188.zip
* calls.c (expand_call): Increment currently_expanding_call
before calling optimize_tail_recursion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33813 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/calls.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ff9a729579..e91f0b2ed7e 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 3dd688f9ae0..0c1693afa62 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
OpenPOWER on IntegriCloud