OSDN Git Service

* calls.c (expand_call): Increment currently_expanding_call
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 May 2000 02:53:43 +0000 (02:53 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 May 2000 02:53:43 +0000 (02:53 +0000)
        before calling optimize_tail_recursion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33813 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/calls.c

index 4ff9a72..e91f0b2 100644 (file)
@@ -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.
index 3dd688f..0c1693a 100644 (file)
@@ -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