search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant...
authorJason Merrill <jason@yorick.cygnus.com>
Fri, 26 Sep 1997 15:42:46 +0000 (15:42 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 26 Sep 1997 15:42:46 +0000 (11:42 -0400)
* search.c (get_matching_virtual): Notice virtual bases when sorrying
about covariant returns.

From-SVN: r15732

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

index e83908a..b4e0fc9 100644 (file)
@@ -1,5 +1,8 @@
 Fri Sep 26 00:22:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * search.c (get_matching_virtual): Notice virtual bases when sorrying
+       about covariant returns.
+
        * parse.y (member_init): Also imply typename here.  Remove ancient
        extension for initializing base members.
 
index c8e0806..6da3f81 100644 (file)
@@ -2197,7 +2197,8 @@ get_matching_virtual (binfo, fndecl, dtorp)
                        {
                          tree binfo = get_binfo (b, d, 1);
                          if (binfo != error_mark_node
-                             && ! BINFO_OFFSET_ZEROP (binfo))
+                             && (! BINFO_OFFSET_ZEROP (binfo)
+                                 || TREE_VIA_VIRTUAL (binfo)))
                            sorry ("adjusting pointers for covariant returns");
                        }
                      if (TYPE_READONLY (d) > TYPE_READONLY (b))