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
This commit is contained in:
Eric Botcazou 2011-04-06 09:34:02 +00:00 committed by Eric Botcazou
parent 96621ebf37
commit 516426da9f
4 changed files with 22 additions and 1 deletions

View File

@ -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)

View File

@ -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));

View File

@ -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.

View File

@ -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" } }