aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-03-14 08:12:41 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-03-14 08:12:41 -0500
commit8e2b13c322771648d25066146072cdb94c02e017 (patch)
tree8587039651e3b9a34c658e460b0bd7fcbece70cf /gcc
parent542ed971f499051d370b796579891608d8001098 (diff)
downloadgcc-8e2b13c322771648d25066146072cdb94c02e017.zip
gcc-8e2b13c322771648d25066146072cdb94c02e017.tar.gz
gcc-8e2b13c322771648d25066146072cdb94c02e017.tar.bz2
(bc_expand_start_cond): Set exit_label if not EXITFLAG.
(bc_expand_end_bindings): Only define exit_label if set. Don't pop nesting_stack. From-SVN: r6783
Diffstat (limited to 'gcc')
-rw-r--r--gcc/stmt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 1b1ac32..a8c369e 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2256,6 +2256,8 @@ bc_expand_start_cond (cond, exitflag)
struct nesting *thiscond = cond_stack;
thiscond->data.case_stmt.nominal_type = cond;
+ if (! exitflag)
+ thiscond->exit_label = gen_label_rtx ();
bc_expand_expr (cond);
bc_emit_bytecode (xjumpifnot);
bc_emit_bytecode_labelref (BYTECODE_BC_LABEL (thiscond->exit_label));
@@ -3327,10 +3329,10 @@ bc_expand_end_bindings (vars, mark_ends, dont_jump_in)
if (! TREE_USED (TREE_VALUE (decl)) && TREE_CODE (TREE_VALUE (decl)) == VAR_DECL)
warning_with_decl (decl, "unused variable `%s'");
- bc_emit_bytecode_labeldef (BYTECODE_BC_LABEL (thisbind->exit_label));
+ if (thisbind->exit_label)
+ bc_emit_bytecode_labeldef (BYTECODE_BC_LABEL (thisbind->exit_label));
/* Pop block/bindings off stack */
- POPSTACK (nesting_stack);
POPSTACK (block_stack);
}