aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1999-01-16 02:00:27 -0800
committerPer Bothner <bothner@gcc.gnu.org>1999-01-16 02:00:27 -0800
commit2dc219a11db3efc10d1564bf31db97aa7918e61b (patch)
tree83d5b7af98e262473cc722a306e667332f773629 /gcc
parent3217b0f3caee12632765d415b37649929281891a (diff)
downloadgcc-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')
-rw-r--r--gcc/java/verify.c8
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: