diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-26 06:51:14 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-26 06:51:14 +0000 |
commit | 5d698b0def2de7648b47bcf86ec2ea3e7a237f09 (patch) | |
tree | 3523ae56e241e44fb26f03de32973be665940818 /libjava/verify.cc | |
parent | 49f8be83999c651efce5f0ffb6327130c26b46e7 (diff) | |
download | gcc-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.cc | 11 |
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. |