diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1999-05-05 14:09:08 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1999-05-05 14:09:08 -0700 |
commit | 10b905f1eab24dd18a023aaa3681a3673866de10 (patch) | |
tree | 431f472f687caa87b0bc72d713289ca1b7f49e83 /gcc/java | |
parent | 0d9d12fc95c381963e61aa7be3041aeabb29a3ac (diff) | |
download | gcc-10b905f1eab24dd18a023aaa3681a3673866de10.zip gcc-10b905f1eab24dd18a023aaa3681a3673866de10.tar.gz gcc-10b905f1eab24dd18a023aaa3681a3673866de10.tar.bz2 |
verify.c (verify_jvm_instructions): Better error messages.
�
* verify.c (verify_jvm_instructions): Better error messages.
From-SVN: r26788
Diffstat (limited to 'gcc/java')
-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 4b34c47..8779bd0 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; } |