+2003-12-08 Richard Sandiford <rsandifo@redhat.com>
+
+ * calls.c (expand_call): Don't try using tail or recursive calls
+ after the function body has been expanded.
+
2003-12-08 Jan Hubicka <jh@suse.cz>
* i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS
finished with regular parsing. Which means that some of the
machinery we use to generate tail-calls is no longer in place.
This is most often true of sjlj-exceptions, which we couldn't
- tail-call to anyway. */
+ tail-call to anyway.
+ If current_nesting_level () == 0, we're being called after
+ the function body has been expanded. This can happen when
+ setting up trampolines in expand_function_end. */
if (currently_expanding_call++ != 0
|| !flag_optimize_sibling_calls
|| !rtx_equal_function_value_matters
+ || current_nesting_level () == 0
|| any_pending_cleanups ()
|| args_size.var)
try_tail_call = try_tail_recursion = 0;