diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-03-14 08:12:41 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-03-14 08:12:41 -0500 |
commit | 8e2b13c322771648d25066146072cdb94c02e017 (patch) | |
tree | 8587039651e3b9a34c658e460b0bd7fcbece70cf /gcc | |
parent | 542ed971f499051d370b796579891608d8001098 (diff) | |
download | gcc-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.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); } |