aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>1997-11-21 20:51:30 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-11-21 15:51:30 -0500
commit72eb10386ddf1c698a54b56efa3468a9e7a57639 (patch)
tree8c7af87a8c34fa5ccd349a47f8240ea2d2cc4952
parent6c20b7e97e520789f6fcd11f3b6326394fbc1697 (diff)
downloadgcc-72eb10386ddf1c698a54b56efa3468a9e7a57639.zip
gcc-72eb10386ddf1c698a54b56efa3468a9e7a57639.tar.gz
gcc-72eb10386ddf1c698a54b56efa3468a9e7a57639.tar.bz2
* stmt.c (expand_end_bindings): Allow jump into block with cleanups.
From-SVN: r16654
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/stmt.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a1369c8..06d0b70 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 97a8d48..a99da39 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -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");