verify.c (verify_jvm_instructions): Allow exception handler inside code that is being protected, but generate a warning.
2002-08-28 Andrew Haley <aph@redhat.com> * verify.c (verify_jvm_instructions): Allow exception handler inside code that is being protected, but generate a warning. * except.c (link_handler): Initialize `expanded' in new eh_range. (binding_depth, is_class_level, current_pc): Declare extern. From-SVN: r56842
This commit is contained in:
parent
f373d4c761
commit
b139fcfd92
|
@ -1,3 +1,10 @@
|
|||
2002-08-28 Andrew Haley <aph@redhat.com>
|
||||
|
||||
* verify.c (verify_jvm_instructions): Allow exception handler
|
||||
inside code that is being protected, but generate a warning.
|
||||
* except.c (link_handler): Initialize `expanded' in new eh_range.
|
||||
(binding_depth, is_class_level, current_pc): Declare extern.
|
||||
|
||||
2002-09-01 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* gcj.texi: Add chapter about system properties.
|
||||
|
|
|
@ -61,9 +61,9 @@ static struct eh_range *cache_next_child;
|
|||
struct eh_range whole_range;
|
||||
|
||||
#if defined(DEBUG_JAVA_BINDING_LEVELS)
|
||||
int binding_depth;
|
||||
int is_class_level;
|
||||
int current_pc;
|
||||
extern int binding_depth;
|
||||
extern int is_class_level;
|
||||
extern int current_pc;
|
||||
extern void indent ();
|
||||
|
||||
#endif
|
||||
|
@ -172,6 +172,7 @@ link_handler (range, outer)
|
|||
h->handlers = build_tree_list (TREE_PURPOSE (range->handlers),
|
||||
TREE_VALUE (range->handlers));
|
||||
h->next_sibling = NULL;
|
||||
h->expanded = 0;
|
||||
/* Restart both from the top to avoid having to make this
|
||||
function smart about reentrancy. */
|
||||
link_handler (h, &whole_range);
|
||||
|
|
|
@ -471,7 +471,6 @@ verify_jvm_instructions (jcf, byte_ops, length)
|
|||
if (start_pc < 0 || start_pc >= length
|
||||
|| end_pc < 0 || end_pc > length || start_pc >= end_pc
|
||||
|| handler_pc < 0 || handler_pc >= length
|
||||
|| (handler_pc >= start_pc && handler_pc < end_pc)
|
||||
|| ! (instruction_bits [start_pc] & BCODE_INSTRUCTION_START)
|
||||
|| (end_pc < length &&
|
||||
! (instruction_bits [end_pc] & BCODE_INSTRUCTION_START))
|
||||
|
@ -482,6 +481,9 @@ verify_jvm_instructions (jcf, byte_ops, length)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (handler_pc >= start_pc && handler_pc < end_pc)
|
||||
warning ("exception handler inside code that is being protected");
|
||||
|
||||
add_handler (start_pc, end_pc,
|
||||
lookup_label (handler_pc),
|
||||
catch_type == 0 ? NULL_TREE
|
||||
|
|
Loading…
Reference in New Issue