For consistency, just make friend declarations AS_public.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80420 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index 5d30795..3ced0ef 100644
--- a/lib/AST/DeclBase.cpp
+++ b/lib/AST/DeclBase.cpp
@@ -379,16 +379,8 @@
 
 #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");
 }
 
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 89ea7cc..4c4dd41 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -3661,6 +3661,7 @@
 
   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 @@
   FriendDecl *FrD = FriendDecl::Create(Context, CurContext,
                                        D.getIdentifierLoc(), FD,
                                        DS.getFriendSpecLoc());
+  FrD->setAccess(AS_public);
   CurContext->addDecl(FrD);
 
   return DeclPtrTy::make(FD);
diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp
index df4ebfa..e2ebd09 100644
--- a/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -278,6 +278,7 @@
   FriendDecl *FD =
     FriendDecl::Create(SemaRef.Context, Owner, D->getLocation(), FU,
                        D->getFriendLoc());
+  FD->setAccess(AS_public);
   Owner->addDecl(FD);
   return FD;
 }