* search.c (lookup_base_r): Don't clear is_non_public just because
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Feb 2002 15:32:38 +0000 (15:32 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 Feb 2002 15:32:38 +0000 (15:32 +0000)
        we found a friendly scope.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50140 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 3ca4e5b..85f2547 100644 (file)
@@ -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.
index 10ebc73..018dfaa 100644 (file)
@@ -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))