diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-08-22 06:24:13 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-08-22 02:24:13 -0400 |
commit | c4a6c0f353b4e56359f0bfc8733ab390efa2416f (patch) | |
tree | b198fa1a4b2bc8518ff978411e8d111d61f87cf5 | |
parent | 5b0e9d296c0096d7d3f72deacea9ea828335b9ae (diff) | |
download | gcc-c4a6c0f353b4e56359f0bfc8733ab390efa2416f.zip gcc-c4a6c0f353b4e56359f0bfc8733ab390efa2416f.tar.gz gcc-c4a6c0f353b4e56359f0bfc8733ab390efa2416f.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/stmt.c | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e25d72f..f78083d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +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> * flow.c (calculate_global_regs_live): Mark frame pointer live @@ -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 |