]> granicus.if.org Git - clang/commitdiff
For consistency, just make friend declarations AS_public.
authorJohn McCall <rjmccall@apple.com>
Sat, 29 Aug 2009 03:50:18 +0000 (03:50 +0000)
committerJohn McCall <rjmccall@apple.com>
Sat, 29 Aug 2009 03:50:18 +0000 (03:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80420 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/DeclBase.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp

index 5d30795abd710c3e52d197fab73ff25980f3066d..3ced0eff4c52c8c5626518a6018112d443b344cb 100644 (file)
@@ -379,16 +379,8 @@ SourceLocation Decl::getBodyRBrace() const {
 
 #ifndef NDEBUG
 void Decl::CheckAccessDeclContext() const {
-  if (isa<TranslationUnitDecl>(this) ||
-      !isa<CXXRecordDecl>(getDeclContext()))
-    return;
-  
-  // FIXME: Should friend declarations have access specifiers?
-  if (isa<FriendDecl>(this) ||
-      getFriendObjectKind() != FOK_None)
-    return;
-  
-  assert(Access != AS_none &&
+  assert((Access != AS_none || isa<TranslationUnitDecl>(this) ||
+          !isa<CXXRecordDecl>(getDeclContext())) &&
          "Access specifier is AS_none inside a record decl");
 }
 
index 89ea7cce27b3d7e1481e4a1ec18189abd9ec1944..4c4dd410179a7a97ead1f129be6f16e56e4e1986 100644 (file)
@@ -3661,6 +3661,7 @@ Sema::DeclPtrTy Sema::ActOnFriendTypeDecl(Scope *S,
 
   FriendDecl *FD = FriendDecl::Create(Context, CurContext, Loc, FU,
                                       DS.getFriendSpecLoc());
+  FD->setAccess(AS_public);
   CurContext->addDecl(FD);
 
   return DeclPtrTy::make(FD);
@@ -3829,6 +3830,7 @@ Sema::DeclPtrTy Sema::ActOnFriendFunctionDecl(Scope *S,
   FriendDecl *FrD = FriendDecl::Create(Context, CurContext,
                                        D.getIdentifierLoc(), FD,
                                        DS.getFriendSpecLoc());
+  FrD->setAccess(AS_public);
   CurContext->addDecl(FrD);
 
   return DeclPtrTy::make(FD);
index df4ebfaa93352a73564b738b42964d8e81ca8c9a..e2ebd09954156da45918af4b3845ac413eab6401 100644 (file)
@@ -278,6 +278,7 @@ Decl *TemplateDeclInstantiator::VisitFriendDecl(FriendDecl *D) {
   FriendDecl *FD =
     FriendDecl::Create(SemaRef.Context, Owner, D->getLocation(), FU,
                        D->getFriendLoc());
+  FD->setAccess(AS_public);
   Owner->addDecl(FD);
   return FD;
 }