diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d82386ac82a45baff6a2c907dfd5c7d3450b9689..a3951907e63086f48f06fee677899aad9615a197 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* flow.c (init_propagate_block_info): Don't mark frame dead at end
+	of function if returns wiht stack pointer depressed.
+
 2000-09-01  Andrew Haley  <aph@redhat.com>
 
         * dwarf2out.c (stack_adjust_offset): New function.
diff --git a/gcc/flow.c b/gcc/flow.c
index 0afdc77eb020bce03df1430602b2d680328294e8..6f1ba7cf004bdd38e2578c9fce28149638ef62ef 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3780,6 +3780,9 @@ init_propagate_block_info (bb, live, local_set, flags)
      recording any such that are made and show them dead at the end.  We do
      a very conservative and simple job here.  */
   if (optimize
+      && ! (TREE_CODE (TREE_TYPE (current_function_decl)) == FUNCTION_TYPE
+	    && (TYPE_RETURNS_STACK_DEPRESSED
+		(TREE_TYPE (current_function_decl))))
       && (flags & PROP_SCAN_DEAD_CODE)
       && (bb->succ == NULL
 	  || (bb->succ->succ_next == NULL