(bc_expand_start_cond): Set exit_label if not EXITFLAG.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 14 Mar 1994 13:12:41 +0000 (08:12 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 14 Mar 1994 13:12:41 +0000 (08:12 -0500)
(bc_expand_end_bindings): Only define exit_label if set.
Don't pop nesting_stack.

From-SVN: r6783

gcc/stmt.c

index 1b1ac32cd59d46f63f1a76486152583a2e1aeb2b..a8c369e6c17e73c5485fbb0d1fc8f340492161b6 100644 (file)
@@ -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);
 }
 \f