expr.c (process_jvm_instruction): Coerce to correct Throwable sub-type the result...
authorPer Bothner <bothner@gcc.gnu.org>
Sat, 16 Jan 1999 10:00:27 +0000 (02:00 -0800)
committerPer Bothner <bothner@gcc.gnu.org>
Sat, 16 Jan 1999 10:00:27 +0000 (02:00 -0800)

* 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

gcc/java/verify.c

index 4e89f45..7f07319 100644 (file)
@@ -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: