Commit 86eab6f6 by Mark Mitchell Committed by Mark Mitchell

search.c (is_subobject_of_p): Make sure we're looking at the right baseclasses.

	* search.c (is_subobject_of_p): Make sure we're looking at the
	right baseclasses.

From-SVN: r26669
parent 93dfdf16
1999-04-26 Mark Mitchell <mark@codesourcery.com>
* search.c (is_subobject_of_p): Make sure we're looking at the
right baseclasses.
1999-04-26 Marc Espie <espie@cvs.openbsd.org>
* Make-lang.in (cplib2.ready): Don't depend on phony targets.
......
......@@ -1065,13 +1065,17 @@ is_subobject_of_p (parent, binfo)
tree binfos;
int i, n_baselinks;
/* We want to canonicalize for comparison purposes. But, when we
iterate through basetypes later, we want the binfos from the
original hierarchy. That's why we have to calculate BINFOS
first, and then canonicalize. */
binfos = BINFO_BASETYPES (binfo);
parent = canonical_binfo (parent);
binfo = canonical_binfo (binfo);
if (parent == binfo)
return 1;
binfos = BINFO_BASETYPES (binfo);
n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
/* Process and/or queue base types. */
......
// Build don't link:
// Origin: Benjamin Kosnik <bkoz@cygnus.com>
class b
{
int j;
public:
b(int a = 6): j(a) {}
void imbue(int a) {++j;}
};
class d: public b
{
int k;
public:
d(int a = 7): b(a), k(a) {}
void imbue(int a) {++k;}
};
//virtual public kills, public ok
class mostd: virtual public d
{
int l;
public:
mostd(int a = 9): d(a), l(a) {}
};
int main() {
d dobj;
dobj.imbue(5);
mostd mobj;
mobj.imbue(5);
return 0;
}
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