]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
search.c (is_subobject_of_p_1): Fix thinko.
authorMark Mitchell <mark@codesourcery.com>
Mon, 25 Nov 2002 09:25:31 +0000 (09:25 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 25 Nov 2002 09:25:31 +0000 (09:25 +0000)
* search.c (is_subobject_of_p_1): Fix thinko.
(lookup_field_queue_p): Likewise.

From-SVN: r59455

gcc/cp/ChangeLog
gcc/cp/search.c

index a2feb543b984df680f2b30a1500c5aa5b6bb5e68..bdda5b04c7ab18ee3687d2093dcb9793eb53ea54 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-25  Mark Mitchell  <mark@codesourcery.com>
+
+       * search.c (is_subobject_of_p_1): Fix thinko.
+       (lookup_field_queue_p): Likewise.
+
 2002-11-24  Mark Mitchell  <mark@codesourcery.com>
 
        * class.c (layout_class_type): Reuse tail padding when laying out
index 4170c161ca77dbf00f6e55a2eca1a225a9ea0228..fefd11b8b1686410073dc2244d6627d0e0740855 100644 (file)
@@ -1116,7 +1116,7 @@ is_subobject_of_p_1 (parent, binfo, most_derived)
   binfos = BINFO_BASETYPES (binfo);
   n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
 
-  /* Iterate the base types.  */
+  /* Iterate through the base types.  */
   for (i = 0; i < n_baselinks; i++)
     {
       tree base_binfo = TREE_VEC_ELT (binfos, i);
@@ -1132,7 +1132,7 @@ is_subobject_of_p_1 (parent, binfo, most_derived)
       if (TREE_VIA_VIRTUAL (base_binfo))
        {
          if (CLASSTYPE_MARKED4 (base_type))
-           return 0;
+           continue;
          SET_CLASSTYPE_MARKED4 (base_type);
          base_binfo = binfo_for_vbase (base_type, most_derived);
        }
@@ -1202,11 +1202,12 @@ lookup_field_queue_p (binfo, data)
 
   /* If this base class is hidden by the best-known value so far, we
      don't need to look.  */
+  binfo = CANONICAL_BINFO (binfo, lfi->type);
   if (!lfi->from_dep_base_p && lfi->rval_binfo
       && is_subobject_of_p (binfo, lfi->rval_binfo, lfi->type))
     return NULL_TREE;
 
-  return CANONICAL_BINFO (binfo, lfi->type);
+  return binfo;
 }
 
 /* Within the scope of a template class, you can refer to the to the