From 598fc2ad32b88d280beff659ded19eb41b145f0c Mon Sep 17 00:00:00 2001 From: tromey Date: Wed, 13 Feb 2002 17:12:27 +0000 Subject: 2002-02-13 Todd Stock Fix for PR libgcj/5671: * verify.cc (state::merge): Handle case where we're merging against an interface. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49735 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/verify.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libjava/verify.cc') diff --git a/libjava/verify.cc b/libjava/verify.cc index 562cfaf5bc3..38421f46ad6 100644 --- a/libjava/verify.cc +++ b/libjava/verify.cc @@ -675,14 +675,19 @@ private: oldk = oldk->getComponentType (); } - // This loop will end when we hit Object. - while (true) + // Ordinarily this terminates when we hit Object... + while (k != NULL) { if (is_assignable_from_slow (k, oldk)) break; k = k->getSuperclass (); changed = true; } + // ... but K could have been an interface, in which + // case we'll end up here. We just convert this + // into Object. + if (k == NULL) + k = &java::lang::Object::class$; if (changed) { -- cgit v1.2.3