summaryrefslogtreecommitdiff
path: root/libjava/verify.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-26 06:51:14 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-26 06:51:14 +0000
commit5d698b0def2de7648b47bcf86ec2ea3e7a237f09 (patch)
tree3523ae56e241e44fb26f03de32973be665940818 /libjava/verify.cc
parent49f8be83999c651efce5f0ffb6327130c26b46e7 (diff)
downloadgcc-5d698b0def2de7648b47bcf86ec2ea3e7a237f09.tar.gz
* verify.cc (type::compatible): Check initialization status
first. * interpret.cc (run) [insn_invokespecial, invokespecial_resolved]: Don't use NULLCHECK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59494 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/verify.cc')
-rw-r--r--libjava/verify.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/libjava/verify.cc b/libjava/verify.cc
index 29f0f321a7f..5917ce09c77 100644
--- a/libjava/verify.cc
+++ b/libjava/verify.cc
@@ -458,8 +458,12 @@ private:
if (key < reference_type || k.key < reference_type)
return key == k.key;
+ // An initialized type and an uninitialized type are not
+ // compatible.
+ if (isinitialized () != k.isinitialized ())
+ return false;
+
// The `null' type is convertible to any reference type.
- // FIXME: is this correct for THIS?
if (key == null_type || k.key == null_type)
return true;
@@ -469,11 +473,6 @@ private:
&& data.klass == &java::lang::Object::class$)
return true;
- // An initialized type and an uninitialized type are not
- // compatible.
- if (isinitialized () != k.isinitialized ())
- return false;
-
// Two uninitialized objects are compatible if either:
// * The PCs are identical, or
// * One PC is UNINIT.