expr.c (clear_pending_stack_adjust): Handle case where a function calls alloca...

* expr.c (clear_pending_stack_adjust): Handle case where a function
        calls alloca, but the user has specified -fomit-fframe-pointer.

From-SVN: r17770
This commit is contained in:
Jeffrey A Law 1998-02-07 23:26:08 +00:00 committed by Jeff Law
parent b515ab3d51
commit 060fbabfb9
2 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,8 @@
Sun Feb 8 00:09:59 1998 Jeffrey A Law (law@cygnus.com)
* expr.c (clear_pending_stack_adjust): Handle case where a function
calls alloca, but the user has specified -fomit-fframe-pointer.
* function.c (assign_parms): Fix typo in last change.
Sat Feb 7 23:54:29 1998 Robert Lipe <robertl@dgii.com>

View File

@ -9576,14 +9576,18 @@ init_pending_stack_adjust ()
}
/* When exiting from function, if safe, clear out any pending stack adjust
so the adjustment won't get done. */
so the adjustment won't get done.
Note, if the current function calls alloca, then it must have a
frame pointer regardless of the value of flag_omit_frame_pointer. */
void
clear_pending_stack_adjust ()
{
#ifdef EXIT_IGNORE_STACK
if (optimize > 0
&& ! flag_omit_frame_pointer && EXIT_IGNORE_STACK
&& (! flag_omit_frame_pointer || current_function_calls_alloca)
&& EXIT_IGNORE_STACK
&& ! (DECL_INLINE (current_function_decl) && ! flag_no_inline)
&& ! flag_inline_functions)
pending_stack_adjust = 0;