diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-04-06 09:34:02 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-04-06 09:34:02 +0000 |
commit | 516426da9f3147a1eda0740ec4b5d1fd8b3070cb (patch) | |
tree | 341783051f439a033175280d7b0b6c24f7713040 | |
parent | 96621ebf37743e4882759f50f0f0b84a04fc1606 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimple-low.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/return3.adb | 9 |
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" } } |