18 using namespace clang;
20 void FriendDecl::anchor() { }
22 FriendDecl *FriendDecl::getNextFriendSlowCase() {
23 return cast_or_null<FriendDecl>(
35 assert(isa<FunctionDecl>(D) ||
36 isa<CXXRecordDecl>(D) ||
37 isa<FunctionTemplateDecl>(D) ||
38 isa<ClassTemplateDecl>(D));
45 assert(FriendTypeTPLists.size() == 0);
52 cast<CXXRecordDecl>(DC)->pushFriendDecl(FD);
57 unsigned FriendTypeNumTPLists) {
62 FriendDecl *CXXRecordDecl::getFirstFriend()
const {
64 Decl *
First = data().FirstFriend.get(Source);
65 return First ? cast<FriendDecl>(
First) :
nullptr;
Defines the clang::ASTContext interface.
static TemplateSpecializationKind getTemplateSpecializationKind(Decl *D)
Determine what kind of template specialization the given declaration is.
Defines the C++ template declaration subclasses.
static FriendDecl * CreateDeserialized(ASTContext &C, unsigned ID, unsigned FriendTypeNumTPLists)
static FriendDecl * Create(ASTContext &C, DeclContext *DC, SourceLocation L, FriendUnion Friend_, SourceLocation FriendL, ArrayRef< TemplateParameterList * > FriendTypeTPLists=None)
Stores a list of template parameters for a TemplateDecl and its derived classes.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
llvm::PointerUnion< NamedDecl *, TypeSourceInfo * > FriendUnion
A placeholder type used to construct an empty shell of a decl-derived type that will be filled in lat...
ID
Defines the set of possible language-specific address spaces.
ASTContext & getParentASTContext() const
Abstract interface for external sources of AST nodes.
Encodes a location in the source. The SourceManager can decode this to get at the full include stack...
ExternalASTSource * getExternalSource() const
Retrieve a pointer to the external AST source associated with this AST context, if any...
ASTContext & getASTContext() const LLVM_READONLY
T * get(ExternalASTSource *Source) const
Retrieve the pointer to the AST node that this lazy pointer.
FriendObjectKind getFriendObjectKind() const
Determines whether this declaration is the object of a friend declaration and, if so...