aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1997-09-26 15:42:46 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-09-26 11:42:46 -0400
commit1052cd6573a2b1c5dc981d2b61f2dd61c080d869 (patch)
treec866550aed01c76d3e706e7bd88c0902d399af64 /gcc
parentc2b9a5c49da4e6adc0e6a862bb4c74d4502657e3 (diff)
downloadgcc-1052cd6573a2b1c5dc981d2b61f2dd61c080d869.zip
gcc-1052cd6573a2b1c5dc981d2b61f2dd61c080d869.tar.gz
gcc-1052cd6573a2b1c5dc981d2b61f2dd61c080d869.tar.bz2
search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant returns.
* search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant returns. From-SVN: r15732
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/search.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e83908a..b4e0fc9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index c8e0806..6da3f81 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -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))