diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1999-01-16 02:00:27 -0800 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1999-01-16 02:00:27 -0800 |
commit | 2dc219a11db3efc10d1564bf31db97aa7918e61b (patch) | |
tree | 83d5b7af98e262473cc722a306e667332f773629 /gcc/java/verify.c | |
parent | 3217b0f3caee12632765d415b37649929281891a (diff) | |
download | gcc-2dc219a11db3efc10d1564bf31db97aa7918e61b.zip gcc-2dc219a11db3efc10d1564bf31db97aa7918e61b.tar.gz gcc-2dc219a11db3efc10d1564bf31db97aa7918e61b.tar.bz2 |
expr.c (process_jvm_instruction): Coerce to correct Throwable sub-type the result of the call that gets the...
�
* expr.c (process_jvm_instruction): Coerce to correct Throwable
sub-type the result of the call that gets the exception value.
* parse.y (java_complete_expand_methods): If flags_syntax_only,
don't call finish_class.
* parse.y (java_check_regular_methods): If METHOD_PRIVATE,
clear found before continuing.
* verify.c (verify_jvm_instructions): On an array load, allow
and handle top of stack to be TYPE_NULL.
From-SVN: r24696
Diffstat (limited to 'gcc/java/verify.c')
-rw-r--r-- | gcc/java/verify.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/java/verify.c b/gcc/java/verify.c index 4e89f45..7f07319 100644 --- a/gcc/java/verify.c +++ b/gcc/java/verify.c @@ -882,10 +882,12 @@ verify_jvm_instructions (jcf, byte_ops, length) case OPCODE_saload: type = promote_type (short_type_node); goto aload; aload: pop_type (int_type_node); - type = pop_type (ptr_type_node); - if (! is_array_type_p (type)) + tmp = pop_type (ptr_type_node); + if (is_array_type_p (tmp)) + type = TYPE_ARRAY_ELEMENT (TREE_TYPE (tmp)); + else if (tmp != TYPE_NULL) VERIFICATION_ERROR ("array load from non-array type"); - push_type (TYPE_ARRAY_ELEMENT (TREE_TYPE (type))); + push_type (type); break; case OPCODE_anewarray: |