Commit 72eb1038 by Bruno Haible Committed by Jason Merrill

* stmt.c (expand_end_bindings): Allow jump into block with cleanups.

From-SVN: r16654
parent 6c20b7e9
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> Fri Nov 21 12:18:51 1997 Jason Merrill <jason@yorick.cygnus.com>
* except.h: Add outer_context_label_stack. * except.h: Add outer_context_label_stack.
......
...@@ -3411,10 +3411,10 @@ expand_end_bindings (vars, mark_ends, dont_jump_in) ...@@ -3411,10 +3411,10 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
emit_label (afterward); 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 if (dont_jump_in
|| thisblock->data.block.stack_level != 0 || thisblock->data.block.stack_level != 0)
|| thisblock->data.block.cleanups != 0)
{ {
struct label_chain *chain; struct label_chain *chain;
...@@ -3425,7 +3425,7 @@ expand_end_bindings (vars, mark_ends, dont_jump_in) ...@@ -3425,7 +3425,7 @@ expand_end_bindings (vars, mark_ends, dont_jump_in)
DECL_TOO_LATE (chain->label) = 1; DECL_TOO_LATE (chain->label) = 1;
/* If any goto without a fixup came to this label, /* If any goto without a fixup came to this label,
that must be an error, because gotos without fixups 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)) if (TREE_ADDRESSABLE (chain->label))
error_with_decl (chain->label, error_with_decl (chain->label,
"label `%s' used before containing binding contour"); "label `%s' used before containing binding contour");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment