From: ebotcazou Date: Wed, 6 Apr 2011 09:34:02 +0000 (+0000) Subject: * gimple-low.c (lower_gimple_return): When not optimizing, force labels X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28f9c1a13b11cb8413d40d149da6e5b220360bf9;p=thirdparty%2Fgcc.git * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ea011856a36..a8f86616a65a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-04-06 Eric Botcazou + + * gimple-low.c (lower_gimple_return): When not optimizing, force labels + associated with user returns to be preserved. + 2011-04-06 Tristan Gingold * dbxout.c: (debug_nesting, symbol_queue, symbol_queue_index) diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 67087a0aadc1..9d774429bab9 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 c7e70b25205c..cb11813f2914 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ +2011-04-06 Eric Botcazou + + * gnat.dg/return3.adb: New test. + 2011-04-06 Richard Guenther - + 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 000000000000..7ebe7499005f --- /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" } }