authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 May 1999 21:09:08 +0000 (21:09 +0000)
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 May 1999 21:09:08 +0000 (21:09 +0000)
* verify.c (verify_jvm_instructions):  Better error messages.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26788 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/verify.c

index 4b34c47..8779bd0 100644 (file)
@@ -750,8 +750,12 @@ verify_jvm_instructions (jcf, byte_ops, length)
              pop_type (field_type);
            if (! is_static)
              {
+               int clindex = COMPONENT_REF_CLASS_INDEX (&current_jcf->cpool,
+                                                       index);
+               tree self_type = get_class_constant (current_jcf, clindex);
                /* Defer actual checking until next pass. */
-               pop_type (ptr_type_node);
+               if (pop_type_0 (self_type) == NULL_TREE)
+                 VERIFICATION_ERROR ("incorrect type for field reference");
              }
            if (! is_putting)
              push_type (field_type);
@@ -1283,6 +1287,7 @@ verify_jvm_instructions (jcf, byte_ops, length)
   message = "program counter out of range";
   goto verify_error;
  verify_error:
-  error ("verification error at PC=%d: %s", oldpc, message);
+  error ("verification error at PC=%d: %s", oldpc);
+  error (message);
   return 0;
 }