* stmt.c (expand_end_bindings): Allow jump into block with cleanups.
From-SVN: r16654
This commit is contained in:
parent
6c20b7e97e
commit
72eb10386d
2 changed files with 8 additions and 4 deletions
|
@ -1,3 +1,7 @@
|
|||
Fri Nov 21 12:49:56 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
|
||||
|
||||
* stmt.c (expand_end_bindings): Allow jump into block with cleanups.
|
||||
|
||||
Fri Nov 21 12:18:51 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* except.h: Add outer_context_label_stack.
|
||||
|
|
|
@ -3411,10 +3411,10 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
|
|||
emit_label (afterward);
|
||||
}
|
||||
|
||||
/* Don't allow jumping into a block that has cleanups or a stack level. */
|
||||
/* Don't allow jumping into a block that has a stack level.
|
||||
Cleanups are allowed, though. */
|
||||
if (dont_jump_in
|
||||
|| thisblock->data.block.stack_level != 0
|
||||
|| thisblock->data.block.cleanups != 0)
|
||||
|| thisblock->data.block.stack_level != 0)
|
||||
{
|
||||
struct label_chain *chain;
|
||||
|
||||
|
@ -3425,7 +3425,7 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
|
|||
DECL_TOO_LATE (chain->label) = 1;
|
||||
/* If any goto without a fixup came to this label,
|
||||
that must be an error, because gotos without fixups
|
||||
come from outside all saved stack-levels and all cleanups. */
|
||||
come from outside all saved stack-levels. */
|
||||
if (TREE_ADDRESSABLE (chain->label))
|
||||
error_with_decl (chain->label,
|
||||
"label `%s' used before containing binding contour");
|
||||
|
|
Loading…
Add table
Reference in a new issue