summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-28 15:32:38 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-28 15:32:38 +0000
commit4a268c25f73e1ccfc8e3e86507f62149e882994b (patch)
tree1fca790a59ac55c84f2791b592dd172e3f0ece9f /gcc
parentfdd6a2057eb2b807860ec3829520858d32d0ee19 (diff)
downloadgcc-4a268c25f73e1ccfc8e3e86507f62149e882994b.tar.gz
* search.c (lookup_base_r): Don't clear is_non_public just because
we found a friendly scope. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50140 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/search.c3
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 <jason@redhat.com>
+ * 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 <kenner@vlsi1.ultra.nyu.edu>
* 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))