aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-08-22 06:24:13 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-08-22 02:24:13 -0400
commitc4a6c0f353b4e56359f0bfc8733ab390efa2416f (patch)
treeb198fa1a4b2bc8518ff978411e8d111d61f87cf5
parent5b0e9d296c0096d7d3f72deacea9ea828335b9ae (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/stmt.c12
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
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 6ecfcd2..7ea077d 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