diff options
author | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-05-05 21:09:08 +0000 |
---|---|---|
committer | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-05-05 21:09:08 +0000 |
commit | 917c6dea95fc53a78af22916994953fa595ca17c (patch) | |
tree | 431f472f687caa87b0bc72d713289ca1b7f49e83 /gcc/java/verify.c | |
parent | dbdbdae9a653a235249ac69dac7703606f0b546a (diff) | |
download | gcc-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.c | 9 |
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 (¤t_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; } |