summaryrefslogtreecommitdiff
path: root/gcc/java/verify.c
diff options
context:
space:
mode:
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>1999-05-05 21:09:08 +0000
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>1999-05-05 21:09:08 +0000
commit917c6dea95fc53a78af22916994953fa595ca17c (patch)
tree431f472f687caa87b0bc72d713289ca1b7f49e83 /gcc/java/verify.c
parentdbdbdae9a653a235249ac69dac7703606f0b546a (diff)
downloadgcc-917c6dea95fc53a78af22916994953fa595ca17c.tar.gz
* 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
Diffstat (limited to 'gcc/java/verify.c')
-rw-r--r--gcc/java/verify.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/java/verify.c b/gcc/java/verify.c
index 4b34c4717d3..8779bd02674 100644
--- a/gcc/java/verify.c
+++ b/gcc/java/verify.c
@@ -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;
}