stmt.c (expand_goto_internal, [...]): Only check TYPE_RETURNS_STACK_DEPRESSED for...
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 22 Aug 2000 06:24:13 +0000 (06:24 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 22 Aug 2000 06:24:13 +0000 (02:24 -0400)
* stmt.c (expand_goto_internal, fixup_gotos): Only check
TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.

From-SVN: r35865

gcc/ChangeLog
gcc/stmt.c

index e25d72f3b5c1082a6b6e97b900409dc742a5d5ff..f78083dbcbb6ef315c8b0083bb2525fb30b31d1f 100644 (file)
@@ -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
index 6ecfcd2263ba7559b2d16ba9774cd416793eee9a..7ea077dd9ecf085e73842297ffd80e6cdadf935b 100644 (file)
@@ -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