mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-26 22:34:27 +08:00
verify.cc (_Jv_BytecodeVerifier::branch_prepass): Uses two operand bytes, not one.
* verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]: Uses two operand bytes, not one. [op_arraylength]: Has no operands in bytecode. (_Jv_BytecodeVerifier::push_jump): Fixed call to check_no_uninitialized_objects. (_Jv_BytecodeVerifier::push_exception_jump): Likewise. (_Jv_BytecodeVerifier::handle_ret_insn): Likewise. (_Jv_BytecodeVerifier::handle_jsr_insn): Likewise. From-SVN: r47202
This commit is contained in:
parent
78a40378a9
commit
8051c3d633
@ -1,5 +1,14 @@
|
||||
2001-11-19 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]:
|
||||
Uses two operand bytes, not one.
|
||||
[op_arraylength]: Has no operands in bytecode.
|
||||
(_Jv_BytecodeVerifier::push_jump): Fixed call to
|
||||
check_no_uninitialized_objects.
|
||||
(_Jv_BytecodeVerifier::push_exception_jump): Likewise.
|
||||
(_Jv_BytecodeVerifier::handle_ret_insn): Likewise.
|
||||
(_Jv_BytecodeVerifier::handle_jsr_insn): Likewise.
|
||||
|
||||
* verify.cc (_Jv_BytecodeVerifier::require_array_type): Special
|
||||
case for boolean arrays.
|
||||
|
||||
|
@ -1037,13 +1037,13 @@ private:
|
||||
{
|
||||
int npc = compute_jump (offset);
|
||||
if (npc < PC)
|
||||
current_state->check_no_uninitialized_objects (current_method->max_stack);
|
||||
current_state->check_no_uninitialized_objects (current_method->max_locals);
|
||||
push_jump_merge (npc, current_state);
|
||||
}
|
||||
|
||||
void push_exception_jump (type t, int pc)
|
||||
{
|
||||
current_state->check_no_uninitialized_objects (current_method->max_stack,
|
||||
current_state->check_no_uninitialized_objects (current_method->max_locals,
|
||||
true);
|
||||
state s (current_state, current_method->max_stack,
|
||||
current_method->max_locals);
|
||||
@ -1114,7 +1114,7 @@ private:
|
||||
// in the enclosing context.
|
||||
current_state->subroutine = get_subroutine (subr->pc);
|
||||
if (subr->pc < PC)
|
||||
current_state->check_no_uninitialized_objects (current_method->max_stack);
|
||||
current_state->check_no_uninitialized_objects (current_method->max_locals);
|
||||
push_jump_merge (subr->pc, current_state, true);
|
||||
}
|
||||
|
||||
@ -1139,7 +1139,7 @@ private:
|
||||
int npc = compute_jump (offset);
|
||||
|
||||
if (npc < PC)
|
||||
current_state->check_no_uninitialized_objects (current_method->max_stack);
|
||||
current_state->check_no_uninitialized_objects (current_method->max_locals);
|
||||
check_nonrecursive_call (current_state->subroutine, npc);
|
||||
|
||||
// Temporarily modify the current state so that it looks like we are
|
||||
@ -1344,7 +1344,6 @@ private:
|
||||
case op_lneg:
|
||||
case op_fneg:
|
||||
case op_dneg:
|
||||
case op_iinc:
|
||||
case op_i2l:
|
||||
case op_i2f:
|
||||
case op_i2d:
|
||||
@ -1371,6 +1370,7 @@ private:
|
||||
case op_areturn:
|
||||
case op_return:
|
||||
case op_athrow:
|
||||
case op_arraylength:
|
||||
break;
|
||||
|
||||
case op_bipush:
|
||||
@ -1385,12 +1385,12 @@ private:
|
||||
case op_fstore:
|
||||
case op_dstore:
|
||||
case op_astore:
|
||||
case op_arraylength:
|
||||
case op_ret:
|
||||
case op_newarray:
|
||||
get_byte ();
|
||||
break;
|
||||
|
||||
case op_iinc:
|
||||
case op_sipush:
|
||||
case op_ldc_w:
|
||||
case op_ldc2_w:
|
||||
|
Loading…
Reference in New Issue
Block a user