summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-01 14:48:11 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-01 14:48:11 +0000
commited7ebdfdb994648f22724c0d163432ce2bf0862e (patch)
tree356ba1db6c9026f84cf5fc8f001d2322168584b8 /gcc/flow.c
parent6ee89c5689d2bb13eba0526af7aee0ed6669da77 (diff)
downloadgcc-ed7ebdfdb994648f22724c0d163432ce2bf0862e.tar.gz
* flow.c (init_propagate_block_info): Don't mark frame dead at end
of function if returns wiht stack pointer depressed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36099 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 0afdc77eb02..6f1ba7cf004 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