aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1999-05-05 14:09:08 -0700
committerPer Bothner <bothner@gcc.gnu.org>1999-05-05 14:09:08 -0700
commit10b905f1eab24dd18a023aaa3681a3673866de10 (patch)
tree431f472f687caa87b0bc72d713289ca1b7f49e83 /gcc
parent0d9d12fc95c381963e61aa7be3041aeabb29a3ac (diff)
downloadgcc-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')
-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 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 (&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;
}