Commit c4a6c0f3 by Richard Kenner Committed by Richard Kenner

stmt.c (expand_goto_internal, [...]): Only check TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.

	* stmt.c (expand_goto_internal, fixup_gotos): Only check
	TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.

From-SVN: r35865
parent 5b0e9d29
Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* stmt.c (expand_goto_internal, fixup_gotos): Only check
TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
2000-08-21 Richard Henderson <rth@cygnus.com> 2000-08-21 Richard Henderson <rth@cygnus.com>
* flow.c (calculate_global_regs_live): Mark frame pointer live * flow.c (calculate_global_regs_live): Mark frame pointer live
......
...@@ -907,8 +907,10 @@ expand_goto_internal (body, label, last_insn) ...@@ -907,8 +907,10 @@ expand_goto_internal (body, label, last_insn)
/* Don't do this adjust if it's to the end label and this function /* Don't do this adjust if it's to the end label and this function
is to return with a depressed stack pointer. */ is to return with a depressed stack pointer. */
if (label == return_label if (label == return_label
&& (TYPE_RETURNS_STACK_DEPRESSED && (((TREE_CODE (TREE_TYPE (current_function_decl))
(TREE_TYPE (current_function_decl)))) == FUNCTION_TYPE)
&& (TYPE_RETURNS_STACK_DEPRESSED
(TREE_TYPE (current_function_decl))))))
; ;
else else
emit_stack_restore (SAVE_BLOCK, stack_level, NULL_RTX); emit_stack_restore (SAVE_BLOCK, stack_level, NULL_RTX);
...@@ -1192,8 +1194,10 @@ fixup_gotos (thisblock, stack_level, cleanup_list, first_insn, dont_jump_in) ...@@ -1192,8 +1194,10 @@ fixup_gotos (thisblock, stack_level, cleanup_list, first_insn, dont_jump_in)
jump jumps out of. */ jump jumps out of. */
if (f->stack_level if (f->stack_level
&& ! (f->target_rtl == return_label && ! (f->target_rtl == return_label
&& (TYPE_RETURNS_STACK_DEPRESSED && ((TREE_CODE (TREE_TYPE (current_function_decl))
(TREE_TYPE (current_function_decl))))) == FUNCTION_TYPE)
&& (TYPE_RETURNS_STACK_DEPRESSED
(TREE_TYPE (current_function_decl))))))
emit_stack_restore (SAVE_BLOCK, f->stack_level, f->before_jump); emit_stack_restore (SAVE_BLOCK, f->stack_level, f->before_jump);
/* Finish up the sequence containing the insns which implement the /* Finish up the sequence containing the insns which implement the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment