diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 20:35:03 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 20:35:03 +0000 |
commit | 133b67177808af03ca9a72061ed7c97e1f0fd56a (patch) | |
tree | e43a454cb994c104c772c00af25950ad4d66c4ac | |
parent | e902cfce7230c8341c122605b7bde15f1c4f0900 (diff) | |
download | gcc-133b67177808af03ca9a72061ed7c97e1f0fd56a.tar.gz |
Fix for PR java/4489:
* jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
force a new label when computing `body_block'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46092 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/java/jcf-write.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 5fbc60eda54..52ccdabebe3 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -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. diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 3256625442a..63ee86d3bbc 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -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; |