#include "clang/AST/DeclBase.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/Attr.h"
#include "clang/AST/AttrIterator.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclContextInternals.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DependentDiagnostic.h"
#include "clang/AST/ExternalASTSource.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/Type.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/TargetInfo.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <string>
#include <tuple>
#include <utility>
usingnamespaceclang;
#define DECL …
#define ABSTRACT_DECL …
#include "clang/AST/DeclNodes.inc"
void Decl::updateOutOfDate(IdentifierInfo &II) const { … }
#define DECL …
#define ABSTRACT_DECL …
#include "clang/AST/DeclNodes.inc"
void *Decl::operator new(std::size_t Size, const ASTContext &Context,
GlobalDeclID ID, std::size_t Extra) { … }
void *Decl::operator new(std::size_t Size, const ASTContext &Ctx,
DeclContext *Parent, std::size_t Extra) { … }
GlobalDeclID Decl::getGlobalID() const { … }
unsigned Decl::getOwningModuleID() const { … }
void Decl::setOwningModuleID(unsigned ID) { … }
Module *Decl::getOwningModuleSlow() const { … }
bool Decl::hasLocalOwningModuleStorage() const { … }
const char *Decl::getDeclKindName() const { … }
void Decl::setInvalidDecl(bool Invalid) { … }
bool DeclContext::hasValidDeclKind() const { … }
const char *DeclContext::getDeclKindName() const { … }
bool Decl::StatisticsEnabled = …;
void Decl::EnableStatistics() { … }
void Decl::PrintStats() { … }
void Decl::add(Kind k) { … }
bool Decl::isTemplateParameterPack() const { … }
bool Decl::isParameterPack() const { … }
FunctionDecl *Decl::getAsFunction() { … }
bool Decl::isTemplateDecl() const { … }
TemplateDecl *Decl::getDescribedTemplate() const { … }
const TemplateParameterList *Decl::getDescribedTemplateParams() const { … }
bool Decl::isTemplated() const { … }
unsigned Decl::getTemplateDepth() const { … }
const DeclContext *Decl::getParentFunctionOrMethod(bool LexicalParent) const { … }
void PrettyStackTraceDecl::print(raw_ostream &OS) const { … }
Decl::~Decl() = default;
void Decl::setDeclContext(DeclContext *DC) { … }
void Decl::setLexicalDeclContext(DeclContext *DC) { … }
void Decl::setDeclContextsImpl(DeclContext *SemaDC, DeclContext *LexicalDC,
ASTContext &Ctx) { … }
bool Decl::isInLocalScopeForInstantiation() const { … }
bool Decl::isInAnonymousNamespace() const { … }
bool Decl::isInStdNamespace() const { … }
bool Decl::isFileContextDecl() const { … }
bool Decl::isFlexibleArrayMemberLike(
ASTContext &Ctx, const Decl *D, QualType Ty,
LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel,
bool IgnoreTemplateOrMacroSubstitution) { … }
TranslationUnitDecl *Decl::getTranslationUnitDecl() { … }
ASTContext &Decl::getASTContext() const { … }
const LangOptions &Decl::getLangOpts() const { … }
ASTMutationListener *Decl::getASTMutationListener() const { … }
unsigned Decl::getMaxAlignment() const { … }
bool Decl::isUsed(bool CheckUsedAttr) const { … }
void Decl::markUsed(ASTContext &C) { … }
bool Decl::isReferenced() const { … }
ExternalSourceSymbolAttr *Decl::getExternalSourceSymbolAttr() const { … }
bool Decl::hasDefiningAttr() const { … }
const Attr *Decl::getDefiningAttr() const { … }
static StringRef getRealizedPlatform(const AvailabilityAttr *A,
const ASTContext &Context) { … }
static AvailabilityResult CheckAvailability(ASTContext &Context,
const AvailabilityAttr *A,
std::string *Message,
VersionTuple EnclosingVersion) { … }
AvailabilityResult Decl::getAvailability(std::string *Message,
VersionTuple EnclosingVersion,
StringRef *RealizedPlatform) const { … }
VersionTuple Decl::getVersionIntroduced() const { … }
bool Decl::canBeWeakImported(bool &IsDefinition) const { … }
bool Decl::isWeakImported() const { … }
unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) { … }
void Decl::setAttrsImpl(const AttrVec &attrs, ASTContext &Ctx) { … }
void Decl::dropAttrs() { … }
void Decl::addAttr(Attr *A) { … }
const AttrVec &Decl::getAttrs() const { … }
Decl *Decl::castFromDeclContext (const DeclContext *D) { … }
DeclContext *Decl::castToDeclContext(const Decl *D) { … }
SourceLocation Decl::getBodyRBrace() const { … }
bool Decl::AccessDeclContextCheck() const { … }
bool Decl::isInExportDeclContext() const { … }
bool Decl::isInAnotherModuleUnit() const { … }
bool Decl::isInCurrentModuleUnit() const { … }
bool Decl::shouldEmitInExternalSource() const { … }
bool Decl::isFromExplicitGlobalModule() const { … }
bool Decl::isFromGlobalModule() const { … }
bool Decl::isInNamedModule() const { … }
bool Decl::isFromHeaderUnit() const { … }
static Decl::Kind getKind(const Decl *D) { … }
static Decl::Kind getKind(const DeclContext *DC) { … }
int64_t Decl::getID() const { … }
const FunctionType *Decl::getFunctionType(bool BlocksToo) const { … }
bool Decl::isFunctionPointerType() const { … }
DeclContext *Decl::getNonTransparentDeclContext() { … }
template <class T> static Decl *getNonClosureContext(T *D) { … }
Decl *Decl::getNonClosureContext() { … }
Decl *DeclContext::getNonClosureAncestor() { … }
DeclContext::DeclContext(Decl::Kind K) { … }
bool DeclContext::classof(const Decl *D) { … }
DeclContext::~DeclContext() = default;
DeclContext *DeclContext::getLookupParent() { … }
const BlockDecl *DeclContext::getInnermostBlockDecl() const { … }
bool DeclContext::isInlineNamespace() const { … }
bool DeclContext::isStdNamespace() const { … }
bool DeclContext::isDependentContext() const { … }
bool DeclContext::isTransparentContext() const { … }
static bool isLinkageSpecContext(const DeclContext *DC,
LinkageSpecLanguageIDs ID) { … }
bool DeclContext::isExternCContext() const { … }
const LinkageSpecDecl *DeclContext::getExternCContext() const { … }
bool DeclContext::isExternCXXContext() const { … }
bool DeclContext::Encloses(const DeclContext *DC) const { … }
DeclContext *DeclContext::getNonTransparentContext() { … }
DeclContext *DeclContext::getPrimaryContext() { … }
template <typename T>
void collectAllContextsImpl(T *Self, SmallVectorImpl<DeclContext *> &Contexts) { … }
void DeclContext::collectAllContexts(SmallVectorImpl<DeclContext *> &Contexts) { … }
std::pair<Decl *, Decl *>
DeclContext::BuildDeclChain(ArrayRef<Decl *> Decls,
bool FieldsAlreadyLoaded) { … }
void DeclContext::reconcileExternalVisibleStorage() const { … }
bool
DeclContext::LoadLexicalDeclsFromExternalStorage() const { … }
DeclContext::lookup_result
ExternalASTSource::SetNoExternalVisibleDeclsForName(const DeclContext *DC,
DeclarationName Name) { … }
DeclContext::lookup_result
ExternalASTSource::SetExternalVisibleDeclsForName(const DeclContext *DC,
DeclarationName Name,
ArrayRef<NamedDecl*> Decls) { … }
DeclContext::decl_iterator DeclContext::decls_begin() const { … }
bool DeclContext::decls_empty() const { … }
bool DeclContext::containsDecl(Decl *D) const { … }
bool DeclContext::containsDeclAndLoad(Decl *D) const { … }
static bool shouldBeHidden(NamedDecl *D) { … }
void DeclContext::removeDecl(Decl *D) { … }
void DeclContext::addHiddenDecl(Decl *D) { … }
void DeclContext::addDecl(Decl *D) { … }
void DeclContext::addDeclInternal(Decl *D) { … }
StoredDeclsMap *DeclContext::buildLookup() { … }
void DeclContext::buildLookupImpl(DeclContext *DCtx, bool Internal) { … }
DeclContext::lookup_result
DeclContext::lookup(DeclarationName Name) const { … }
DeclContext::lookup_result
DeclContext::noload_lookup(DeclarationName Name) { … }
void DeclContext::loadLazyLocalLexicalLookups() { … }
void DeclContext::localUncachedLookup(DeclarationName Name,
SmallVectorImpl<NamedDecl *> &Results) { … }
DeclContext *DeclContext::getRedeclContext() { … }
DeclContext *DeclContext::getEnclosingNamespaceContext() { … }
RecordDecl *DeclContext::getOuterLexicalRecordContext() { … }
bool DeclContext::InEnclosingNamespaceSetOf(const DeclContext *O) const { … }
void DeclContext::makeDeclVisibleInContext(NamedDecl *D) { … }
void DeclContext::makeDeclVisibleInContextWithFlags(NamedDecl *D, bool Internal,
bool Recoverable) { … }
void DeclContext::makeDeclVisibleInContextImpl(NamedDecl *D, bool Internal) { … }
UsingDirectiveDecl *DeclContext::udir_iterator::operator*() const { … }
DeclContext::udir_range DeclContext::using_directives() const { … }
StoredDeclsMap *DeclContext::CreateStoredDeclsMap(ASTContext &C) const { … }
void ASTContext::ReleaseDeclContextMaps() { … }
void StoredDeclsMap::DestroyAll(StoredDeclsMap *Map, bool Dependent) { … }
DependentDiagnostic *DependentDiagnostic::Create(ASTContext &C,
DeclContext *Parent,
const PartialDiagnostic &PDiag) { … }
unsigned DeclIDBase::getLocalDeclIndex() const { … }