]> gcc.gnu.org Git - gcc.git/commitdiff
re PR java/4489 (bytecode generation endless loop with certain switch() exprs)
authorTom Tromey <tromey@redhat.com>
Mon, 8 Oct 2001 20:35:03 +0000 (20:35 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Mon, 8 Oct 2001 20:35:03 +0000 (20:35 +0000)
Fix for PR java/4489:
* jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
force a new label when computing `body_block'.

From-SVN: r46092

gcc/java/ChangeLog
gcc/java/jcf-write.c

index 5fbc60eda549ce4fcc0e9297d090c9860dd18a66..52ccdabebe3958e0239194a463e3dab83051ac2b 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-08  Tom Tromey  <tromey@redhat.com>
+
+       Fix for PR java/4489:
+       * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
+       force a new label when computing `body_block'.
+
 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * jcf-io.c (format_uint): Const-ify.
index 3256625442aa12524dc3f65bc3581704c68b0625..63ee86d3bbc7bbf995e70e30b0f16ae1e8813875 100644 (file)
@@ -1483,7 +1483,7 @@ generate_bytecode_insns (exp, target, state)
            }
        }
       break;
-      case COMPOUND_EXPR:      
+    case COMPOUND_EXPR:        
       generate_bytecode_insns (TREE_OPERAND (exp, 0), IGNORE_TARGET, state);
       generate_bytecode_insns (TREE_OPERAND (exp, 1), target, state);
       break;
@@ -1701,7 +1701,9 @@ generate_bytecode_insns (exp, target, state)
        sw_state.default_label = NULL;
        generate_bytecode_insns (TREE_OPERAND (exp, 0), STACK_TARGET, state);
        expression_last = state->last_block;
-       body_block = get_jcf_label_here (state);  /* Force a new block here. */
+       /* Force a new block here.  */
+       body_block = gen_jcf_label (state);
+       define_jcf_label (body_block, state);
        generate_bytecode_insns (TREE_OPERAND (exp, 1), IGNORE_TARGET, state);
        body_last = state->last_block;
 
This page took 0.0921419999999999 seconds and 5 git commands to generate.