summaryrefslogtreecommitdiff
path: root/gcc/gimple-low.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-06 09:34:02 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-06 09:34:02 +0000
commit28f9c1a13b11cb8413d40d149da6e5b220360bf9 (patch)
tree341783051f439a033175280d7b0b6c24f7713040 /gcc/gimple-low.c
parent96df1423020a301c34bc62a1f52bcebfbd889dc4 (diff)
downloadgcc-28f9c1a13b11cb8413d40d149da6e5b220360bf9.tar.gz
* gimple-low.c (lower_gimple_return): When not optimizing, force labels
associated with user returns to be preserved. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimple-low.c')
-rw-r--r--gcc/gimple-low.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 67087a0aadc..9d774429bab 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -758,6 +758,9 @@ lower_gimple_return (gimple_stmt_iterator *gsi, struct lower_data *data)
/* Generate a goto statement and remove the return statement. */
found:
+ /* When not optimizing, make sure user returns are preserved. */
+ if (!optimize && gimple_has_location (stmt))
+ DECL_ARTIFICIAL (tmp_rs.label) = 0;
t = gimple_build_goto (tmp_rs.label);
gimple_set_location (t, gimple_location (stmt));
gimple_set_block (t, gimple_block (stmt));