aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-04-06 09:34:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-04-06 09:34:02 +0000
commit516426da9f3147a1eda0740ec4b5d1fd8b3070cb (patch)
tree341783051f439a033175280d7b0b6c24f7713040
parent96621ebf37743e4882759f50f0f0b84a04fc1606 (diff)
downloadgcc-516426da9f3147a1eda0740ec4b5d1fd8b3070cb.zip
gcc-516426da9f3147a1eda0740ec4b5d1fd8b3070cb.tar.gz
gcc-516426da9f3147a1eda0740ec4b5d1fd8b3070cb.tar.bz2
gimple-low.c (lower_gimple_return): When not optimizing, force labels associated with user returns to be preserved.
* gimple-low.c (lower_gimple_return): When not optimizing, force labels associated with user returns to be preserved. From-SVN: r172030
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gimple-low.c3
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gnat.dg/return3.adb9
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ea0118..a8f8661 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple-low.c (lower_gimple_return): When not optimizing, force labels
+ associated with user returns to be preserved.
+
2011-04-06 Tristan Gingold <gingold@adacore.com>
* dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index)
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 67087a0..9d77442 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));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c7e70b2..cb11813 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
+2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/return3.adb: New test.
+
2011-04-06 Richard Guenther <rguenther@suse.de>
-
+
PR tree-optimization/47663
* gcc.dg/tree-ssa/inline-8.c: New testcase.
diff --git a/gcc/testsuite/gnat.dg/return3.adb b/gcc/testsuite/gnat.dg/return3.adb
new file mode 100644
index 0000000..7ebe749
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/return3.adb
@@ -0,0 +1,9 @@
+-- { dg-do compile { target *-*-linux* } }
+-- { dg-options "-gdwarf-2 -dA" }
+
+procedure Return3 is
+begin
+ return;
+end;
+
+-- { dg-final { scan-assembler "loc 1 6" } }