stmt.c (expand_end_bindings): Look through NOTEs to find a BARRIER.
* stmt.c (expand_end_bindings): Look through NOTEs to find a BARRIER. From-SVN: r34149
This commit is contained in:
parent
392b631661
commit
04da69d3a6
2 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2000-05-24 Jason Merrill <jason@casey.soma.redhat.com>
|
||||
|
||||
* stmt.c (expand_end_bindings): Look through NOTEs to find a
|
||||
BARRIER.
|
||||
|
||||
2000-05-24 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* calls.c (expand_call): Handle cleanups in tail-recursion
|
||||
|
|
10
gcc/stmt.c
10
gcc/stmt.c
|
@ -3675,8 +3675,8 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
|
|||
if (thisblock->data.block.stack_level != 0
|
||||
|| thisblock->data.block.cleanups != 0)
|
||||
{
|
||||
/* Only clean up here if this point can actually be reached. */
|
||||
int reachable = GET_CODE (get_last_insn ()) != BARRIER;
|
||||
int reachable;
|
||||
rtx insn;
|
||||
|
||||
/* Don't let cleanups affect ({...}) constructs. */
|
||||
int old_expr_stmts_for_value = expr_stmts_for_value;
|
||||
|
@ -3684,6 +3684,12 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
|
|||
tree old_last_expr_type = last_expr_type;
|
||||
expr_stmts_for_value = 0;
|
||||
|
||||
/* Only clean up here if this point can actually be reached. */
|
||||
insn = get_last_insn ();
|
||||
if (GET_CODE (insn) == NOTE)
|
||||
insn = prev_nonnote_insn (insn);
|
||||
reachable = GET_CODE (insn) != BARRIER;
|
||||
|
||||
/* Do the cleanups. */
|
||||
expand_cleanups (thisblock->data.block.cleanups, NULL_TREE, 0, reachable);
|
||||
if (reachable)
|
||||
|
|
Loading…
Add table
Reference in a new issue