#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");
}
FriendDecl *FD = FriendDecl::Create(Context, CurContext, Loc, FU,
DS.getFriendSpecLoc());
+ FD->setAccess(AS_public);
CurContext->addDecl(FD);
return DeclPtrTy::make(FD);
FriendDecl *FrD = FriendDecl::Create(Context, CurContext,
D.getIdentifierLoc(), FD,
DS.getFriendSpecLoc());
+ FrD->setAccess(AS_public);
CurContext->addDecl(FrD);
return DeclPtrTy::make(FD);
FriendDecl *FD =
FriendDecl::Create(SemaRef.Context, Owner, D->getLocation(), FU,
D->getFriendLoc());
+ FD->setAccess(AS_public);
Owner->addDecl(FD);
return FD;
}