From 07f521fc064351fb67625b483461db5b0a452e25 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 28 Feb 2002 10:32:38 -0500 Subject: [PATCH] search.c (lookup_base_r): Don't clear is_non_public just because we found a friendly scope. * search.c (lookup_base_r): Don't clear is_non_public just because we found a friendly scope. From-SVN: r50140 --- gcc/cp/ChangeLog | 5 ++++- gcc/cp/search.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3ca4e5b3c0a..85f254704ec 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2002-02-28 Jason Merrill + * search.c (lookup_base_r): Don't clear is_non_public just because + we found a friendly scope. + * decl.c (finish_function): Only warn about missing return statement with -Wreturn-type. @@ -1182,7 +1185,7 @@ Tue Nov 27 09:03:47 2001 Richard Kenner * search.c (get_vbase_1): Remove. (get_vbase): Remove. (convert_pointer_to_vbase): Remove. - (lookup_base_recursive): New function. + (lookup_base_r): New function. (lookup_base): New function. * typeck.c (require_complete_type): Use lookup_base & build_base_path instead of convert_pointer_to. diff --git a/gcc/cp/search.c b/gcc/cp/search.c index 10ebc739f07..018dfaaec57 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -201,8 +201,9 @@ lookup_base_r (binfo, base, access, within_current_scope, && !within_current_scope && is_friend (BINFO_TYPE (binfo), current_scope ())) { + /* Do not clear is_non_public here. If A is a private base of B, A + is not allowed to convert a B* to an A*. */ within_current_scope = 1; - is_non_public = 0; } if (same_type_p (BINFO_TYPE (binfo), base)) -- 2.30.2