diff options
Diffstat (limited to 'gcc')
| -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;  | 

