+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.
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. */
--- /dev/null
+// 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;
+}