Commit 1eca751e by Todd Stock Committed by Tom Tromey

re PR libgcj/5671 (verify.cc problem merging local variables)

2002-02-13  Todd Stock  <toddastock@yahoo.com>

	Fix for PR libgcj/5671:
	* verify.cc (state::merge): Handle case where we're merging
	against an interface.

From-SVN: r49735
parent 2dbe67bb
2002-02-13 Todd Stock <toddastock@yahoo.com>
Fix for PR libgcj/5671:
* verify.cc (state::merge): Handle case where we're merging
against an interface.
2002-02-12 Tom Tromey <tromey@redhat.com> 2002-02-12 Tom Tromey <tromey@redhat.com>
* exception.cc (std::abort): Mark as noreturn. * exception.cc (std::abort): Mark as noreturn.
......
...@@ -675,14 +675,19 @@ private: ...@@ -675,14 +675,19 @@ private:
oldk = oldk->getComponentType (); oldk = oldk->getComponentType ();
} }
// This loop will end when we hit Object. // Ordinarily this terminates when we hit Object...
while (true) while (k != NULL)
{ {
if (is_assignable_from_slow (k, oldk)) if (is_assignable_from_slow (k, oldk))
break; break;
k = k->getSuperclass (); k = k->getSuperclass ();
changed = true; 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) if (changed)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment