From 917c6dea95fc53a78af22916994953fa595ca17c Mon Sep 17 00:00:00 2001 From: bothner Date: Wed, 5 May 1999 21:09:08 +0000 Subject: [PATCH] =?utf8?q?=EF=BF=BD=20=09*=20verify.c=20(verify=5Fjvm=5Fin?= =?utf8?q?structions):=20=20Better=20error=20messages.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26788 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/verify.c | 9 +++++++-- 1 file 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; } -- 2.7.4