From c4a6c0f353b4e56359f0bfc8733ab390efa2416f Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 22 Aug 2000 06:24:13 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/stmt.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e25d72f3b5c..f78083dbcbb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Aug 22 02:31:26 2000 Richard Kenner + + * stmt.c (expand_goto_internal, fixup_gotos): Only check + TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. + 2000-08-21 Richard Henderson * flow.c (calculate_global_regs_live): Mark frame pointer live diff --git a/gcc/stmt.c b/gcc/stmt.c index 6ecfcd2263b..7ea077dd9ec 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -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 is to return with a depressed stack pointer. */ if (label == return_label - && (TYPE_RETURNS_STACK_DEPRESSED - (TREE_TYPE (current_function_decl)))) + && (((TREE_CODE (TREE_TYPE (current_function_decl)) + == FUNCTION_TYPE) + && (TYPE_RETURNS_STACK_DEPRESSED + (TREE_TYPE (current_function_decl)))))) ; else 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) jump jumps out of. */ if (f->stack_level && ! (f->target_rtl == return_label - && (TYPE_RETURNS_STACK_DEPRESSED - (TREE_TYPE (current_function_decl))))) + && ((TREE_CODE (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); /* Finish up the sequence containing the insns which implement the -- 2.30.2