#include "clang/AST/ASTContext.h"
#include "ByteCode/Context.h"
#include "CXXABI.h"
#include "clang/AST/APValue.h"
#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/ASTTypeTraits.h"
#include "clang/AST/Attr.h"
#include "clang/AST/AttrIterator.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Comment.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclContextInternals.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprConcepts.h"
#include "clang/AST/ExternalASTSource.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/MangleNumberingContext.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/ParentMapContext.h"
#include "clang/AST/RawCommentList.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtOpenACC.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/UnresolvedSet.h"
#include "clang/AST/VTableBuilder.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/CommentOptions.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/NoSanitizeList.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/ProfileList.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetCXXABI.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/XRayLists.h"
#include "llvm/ADT/APFixedPoint.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SipHash.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "llvm/TargetParser/Triple.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <utility>
usingnamespaceclang;
enum FloatingRank { … };
static SmallVector<SourceLocation, 2>
getDeclLocsForCommentSearch(const Decl *D, SourceManager &SourceMgr) { … }
RawComment *ASTContext::getRawCommentForDeclNoCacheImpl(
const Decl *D, const SourceLocation RepresentativeLocForDecl,
const std::map<unsigned, RawComment *> &CommentsInTheFile) const { … }
RawComment *ASTContext::getRawCommentForDeclNoCache(const Decl *D) const { … }
void ASTContext::addComment(const RawComment &RC) { … }
static const Decl &adjustDeclToTemplate(const Decl &D) { … }
const RawComment *ASTContext::getRawCommentForAnyRedecl(
const Decl *D,
const Decl **OriginalDecl) const { … }
void ASTContext::cacheRawCommentForDecl(const Decl &OriginalD,
const RawComment &Comment) const { … }
static void addRedeclaredMethods(const ObjCMethodDecl *ObjCMethod,
SmallVectorImpl<const NamedDecl *> &Redeclared) { … }
void ASTContext::attachCommentsToJustParsedDecls(ArrayRef<Decl *> Decls,
const Preprocessor *PP) { … }
comments::FullComment *ASTContext::cloneFullComment(comments::FullComment *FC,
const Decl *D) const { … }
comments::FullComment *ASTContext::getLocalCommentForDeclUncached(const Decl *D) const { … }
comments::FullComment *ASTContext::getCommentForDecl(
const Decl *D,
const Preprocessor *PP) const { … }
void
ASTContext::CanonicalTemplateTemplateParm::Profile(llvm::FoldingSetNodeID &ID,
const ASTContext &C,
TemplateTemplateParmDecl *Parm) { … }
TemplateTemplateParmDecl *
ASTContext::getCanonicalTemplateTemplateParmDecl(
TemplateTemplateParmDecl *TTP) const { … }
TargetCXXABI::Kind ASTContext::getCXXABIKind() const { … }
CXXABI *ASTContext::createCXXABI(const TargetInfo &T) { … }
interp::Context &ASTContext::getInterpContext() { … }
ParentMapContext &ASTContext::getParentMapContext() { … }
static bool isAddrSpaceMapManglingEnabled(const TargetInfo &TI,
const LangOptions &LangOpts) { … }
ASTContext::ASTContext(LangOptions &LOpts, SourceManager &SM,
IdentifierTable &idents, SelectorTable &sels,
Builtin::Context &builtins, TranslationUnitKind TUKind)
: … { … }
void ASTContext::cleanup() { … }
ASTContext::~ASTContext() { … }
void ASTContext::setTraversalScope(const std::vector<Decl *> &TopLevelDecls) { … }
void ASTContext::AddDeallocation(void (*Callback)(void *), void *Data) const { … }
void
ASTContext::setExternalSource(IntrusiveRefCntPtr<ExternalASTSource> Source) { … }
void ASTContext::PrintStats() const { … }
void ASTContext::mergeDefinitionIntoModule(NamedDecl *ND, Module *M,
bool NotifyListeners) { … }
void ASTContext::deduplicateMergedDefinitonsFor(NamedDecl *ND) { … }
ArrayRef<Module *>
ASTContext::getModulesWithMergedDefinition(const NamedDecl *Def) { … }
void ASTContext::PerModuleInitializers::resolve(ASTContext &Ctx) { … }
void ASTContext::addModuleInitializer(Module *M, Decl *D) { … }
void ASTContext::addLazyModuleInitializers(Module *M,
ArrayRef<GlobalDeclID> IDs) { … }
ArrayRef<Decl *> ASTContext::getModuleInitializers(Module *M) { … }
void ASTContext::setCurrentNamedModule(Module *M) { … }
bool ASTContext::isInSameModule(const Module *M1, const Module *M2) { … }
ExternCContextDecl *ASTContext::getExternCContextDecl() const { … }
BuiltinTemplateDecl *
ASTContext::buildBuiltinTemplateDecl(BuiltinTemplateKind BTK,
const IdentifierInfo *II) const { … }
BuiltinTemplateDecl *
ASTContext::getMakeIntegerSeqDecl() const { … }
BuiltinTemplateDecl *
ASTContext::getTypePackElementDecl() const { … }
BuiltinTemplateDecl *ASTContext::getBuiltinCommonTypeDecl() const { … }
RecordDecl *ASTContext::buildImplicitRecord(StringRef Name,
RecordDecl::TagKind TK) const { … }
TypedefDecl *ASTContext::buildImplicitTypedef(QualType T,
StringRef Name) const { … }
TypedefDecl *ASTContext::getInt128Decl() const { … }
TypedefDecl *ASTContext::getUInt128Decl() const { … }
void ASTContext::InitBuiltinType(CanQualType &R, BuiltinType::Kind K) { … }
void ASTContext::InitBuiltinTypes(const TargetInfo &Target,
const TargetInfo *AuxTarget) { … }
DiagnosticsEngine &ASTContext::getDiagnostics() const { … }
AttrVec& ASTContext::getDeclAttrs(const Decl *D) { … }
void ASTContext::eraseDeclAttrs(const Decl *D) { … }
MemberSpecializationInfo *
ASTContext::getInstantiatedFromStaticDataMember(const VarDecl *Var) { … }
ASTContext::TemplateOrSpecializationInfo
ASTContext::getTemplateOrSpecializationInfo(const VarDecl *Var) { … }
void
ASTContext::setInstantiatedFromStaticDataMember(VarDecl *Inst, VarDecl *Tmpl,
TemplateSpecializationKind TSK,
SourceLocation PointOfInstantiation) { … }
void
ASTContext::setTemplateOrSpecializationInfo(VarDecl *Inst,
TemplateOrSpecializationInfo TSI) { … }
NamedDecl *
ASTContext::getInstantiatedFromUsingDecl(NamedDecl *UUD) { … }
void
ASTContext::setInstantiatedFromUsingDecl(NamedDecl *Inst, NamedDecl *Pattern) { … }
UsingEnumDecl *
ASTContext::getInstantiatedFromUsingEnumDecl(UsingEnumDecl *UUD) { … }
void ASTContext::setInstantiatedFromUsingEnumDecl(UsingEnumDecl *Inst,
UsingEnumDecl *Pattern) { … }
UsingShadowDecl *
ASTContext::getInstantiatedFromUsingShadowDecl(UsingShadowDecl *Inst) { … }
void
ASTContext::setInstantiatedFromUsingShadowDecl(UsingShadowDecl *Inst,
UsingShadowDecl *Pattern) { … }
FieldDecl *ASTContext::getInstantiatedFromUnnamedFieldDecl(FieldDecl *Field) { … }
void ASTContext::setInstantiatedFromUnnamedFieldDecl(FieldDecl *Inst,
FieldDecl *Tmpl) { … }
ASTContext::overridden_cxx_method_iterator
ASTContext::overridden_methods_begin(const CXXMethodDecl *Method) const { … }
ASTContext::overridden_cxx_method_iterator
ASTContext::overridden_methods_end(const CXXMethodDecl *Method) const { … }
unsigned
ASTContext::overridden_methods_size(const CXXMethodDecl *Method) const { … }
ASTContext::overridden_method_range
ASTContext::overridden_methods(const CXXMethodDecl *Method) const { … }
void ASTContext::addOverriddenMethod(const CXXMethodDecl *Method,
const CXXMethodDecl *Overridden) { … }
void ASTContext::getOverriddenMethods(
const NamedDecl *D,
SmallVectorImpl<const NamedDecl *> &Overridden) const { … }
void ASTContext::addedLocalImportDecl(ImportDecl *Import) { … }
const llvm::fltSemantics &ASTContext::getFloatTypeSemantics(QualType T) const { … }
CharUnits ASTContext::getDeclAlign(const Decl *D, bool ForAlignof) const { … }
CharUnits ASTContext::getExnObjectAlignment() const { … }
TypeInfoChars ASTContext::getTypeInfoDataSizeInChars(QualType T) const { … }
TypeInfoChars
static getConstantArrayInfoInChars(const ASTContext &Context,
const ConstantArrayType *CAT) { … }
TypeInfoChars ASTContext::getTypeInfoInChars(const Type *T) const { … }
TypeInfoChars ASTContext::getTypeInfoInChars(QualType T) const { … }
bool ASTContext::isPromotableIntegerType(QualType T) const { … }
bool ASTContext::isAlignmentRequired(const Type *T) const { … }
bool ASTContext::isAlignmentRequired(QualType T) const { … }
unsigned ASTContext::getTypeAlignIfKnown(QualType T,
bool NeedsPreferredAlignment) const { … }
TypeInfo ASTContext::getTypeInfo(const Type *T) const { … }
TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const { … }
unsigned ASTContext::getTypeUnadjustedAlign(const Type *T) const { … }
unsigned ASTContext::getOpenMPDefaultSimdAlign(QualType T) const { … }
CharUnits ASTContext::toCharUnitsFromBits(int64_t BitSize) const { … }
int64_t ASTContext::toBits(CharUnits CharSize) const { … }
CharUnits ASTContext::getTypeSizeInChars(QualType T) const { … }
CharUnits ASTContext::getTypeSizeInChars(const Type *T) const { … }
CharUnits ASTContext::getTypeAlignInChars(QualType T) const { … }
CharUnits ASTContext::getTypeAlignInChars(const Type *T) const { … }
CharUnits ASTContext::getTypeUnadjustedAlignInChars(QualType T) const { … }
CharUnits ASTContext::getTypeUnadjustedAlignInChars(const Type *T) const { … }
unsigned ASTContext::getPreferredTypeAlign(const Type *T) const { … }
unsigned ASTContext::getTargetDefaultAlignForAttributeAligned() const { … }
unsigned ASTContext::getAlignOfGlobalVar(QualType T, const VarDecl *VD) const { … }
CharUnits ASTContext::getAlignOfGlobalVarInChars(QualType T,
const VarDecl *VD) const { … }
unsigned ASTContext::getMinGlobalAlignOfVar(uint64_t Size,
const VarDecl *VD) const { … }
CharUnits ASTContext::getOffsetOfBaseWithVBPtr(const CXXRecordDecl *RD) const { … }
CharUnits ASTContext::getMemberPointerPathAdjustment(const APValue &MP) const { … }
void ASTContext::DeepCollectObjCIvars(const ObjCInterfaceDecl *OI,
bool leafClass,
SmallVectorImpl<const ObjCIvarDecl*> &Ivars) const { … }
void ASTContext::CollectInheritedProtocols(const Decl *CDecl,
llvm::SmallPtrSet<ObjCProtocolDecl*, 8> &Protocols) { … }
static bool unionHasUniqueObjectRepresentations(const ASTContext &Context,
const RecordDecl *RD,
bool CheckIfTriviallyCopyable) { … }
static int64_t getSubobjectOffset(const FieldDecl *Field,
const ASTContext &Context,
const clang::ASTRecordLayout & ) { … }
static int64_t getSubobjectOffset(const CXXRecordDecl *RD,
const ASTContext &Context,
const clang::ASTRecordLayout &Layout) { … }
static std::optional<int64_t>
structHasUniqueObjectRepresentations(const ASTContext &Context,
const RecordDecl *RD,
bool CheckIfTriviallyCopyable);
static std::optional<int64_t>
getSubobjectSizeInBits(const FieldDecl *Field, const ASTContext &Context,
bool CheckIfTriviallyCopyable) { … }
static std::optional<int64_t>
getSubobjectSizeInBits(const CXXRecordDecl *RD, const ASTContext &Context,
bool CheckIfTriviallyCopyable) { … }
template <typename RangeT>
static std::optional<int64_t> structSubobjectsHaveUniqueObjectRepresentations(
const RangeT &Subobjects, int64_t CurOffsetInBits,
const ASTContext &Context, const clang::ASTRecordLayout &Layout,
bool CheckIfTriviallyCopyable) { … }
static std::optional<int64_t>
structHasUniqueObjectRepresentations(const ASTContext &Context,
const RecordDecl *RD,
bool CheckIfTriviallyCopyable) { … }
bool ASTContext::hasUniqueObjectRepresentations(
QualType Ty, bool CheckIfTriviallyCopyable) const { … }
unsigned ASTContext::CountNonClassIvars(const ObjCInterfaceDecl *OI) const { … }
bool ASTContext::isSentinelNullExpr(const Expr *E) { … }
ObjCImplementationDecl *ASTContext::getObjCImplementation(ObjCInterfaceDecl *D) { … }
ObjCCategoryImplDecl *ASTContext::getObjCImplementation(ObjCCategoryDecl *D) { … }
void ASTContext::setObjCImplementation(ObjCInterfaceDecl *IFaceD,
ObjCImplementationDecl *ImplD) { … }
void ASTContext::setObjCImplementation(ObjCCategoryDecl *CatD,
ObjCCategoryImplDecl *ImplD) { … }
const ObjCMethodDecl *
ASTContext::getObjCMethodRedeclaration(const ObjCMethodDecl *MD) const { … }
void ASTContext::setObjCMethodRedeclaration(const ObjCMethodDecl *MD,
const ObjCMethodDecl *Redecl) { … }
const ObjCInterfaceDecl *ASTContext::getObjContainingInterface(
const NamedDecl *ND) const { … }
BlockVarCopyInit ASTContext::getBlockVarCopyInit(const VarDecl *VD) const { … }
void ASTContext::setBlockVarCopyInit(const VarDecl*VD, Expr *CopyExpr,
bool CanThrow) { … }
TypeSourceInfo *ASTContext::CreateTypeSourceInfo(QualType T,
unsigned DataSize) const { … }
TypeSourceInfo *ASTContext::getTrivialTypeSourceInfo(QualType T,
SourceLocation L) const { … }
const ASTRecordLayout &
ASTContext::getASTObjCInterfaceLayout(const ObjCInterfaceDecl *D) const { … }
const ASTRecordLayout &
ASTContext::getASTObjCImplementationLayout(
const ObjCImplementationDecl *D) const { … }
static auto getCanonicalTemplateArguments(const ASTContext &C,
ArrayRef<TemplateArgument> Args,
bool &AnyNonCanonArgs) { … }
QualType
ASTContext::getExtQualType(const Type *baseType, Qualifiers quals) const { … }
QualType ASTContext::getAddrSpaceQualType(QualType T,
LangAS AddressSpace) const { … }
QualType ASTContext::removeAddrSpaceQualType(QualType T) const { … }
uint16_t
ASTContext::getPointerAuthVTablePointerDiscriminator(const CXXRecordDecl *RD) { … }
static void encodeTypeForFunctionPointerAuth(const ASTContext &Ctx,
raw_ostream &OS, QualType QT) { … }
uint16_t ASTContext::getPointerAuthTypeDiscriminator(QualType T) { … }
QualType ASTContext::getObjCGCQualType(QualType T,
Qualifiers::GC GCAttr) const { … }
QualType ASTContext::removePtrSizeAddrSpace(QualType T) const { … }
QualType ASTContext::getCountAttributedType(
QualType WrappedTy, Expr *CountExpr, bool CountInBytes, bool OrNull,
ArrayRef<TypeCoupledDeclRefInfo> DependentDecls) const { … }
QualType
ASTContext::adjustType(QualType Orig,
llvm::function_ref<QualType(QualType)> Adjust) const { … }
const FunctionType *ASTContext::adjustFunctionType(const FunctionType *T,
FunctionType::ExtInfo Info) { … }
QualType ASTContext::adjustFunctionResultType(QualType FunctionType,
QualType ResultType) { … }
void ASTContext::adjustDeducedFunctionResultType(FunctionDecl *FD,
QualType ResultType) { … }
QualType ASTContext::getFunctionTypeWithExceptionSpec(
QualType Orig, const FunctionProtoType::ExceptionSpecInfo &ESI) const { … }
bool ASTContext::hasSameFunctionTypeIgnoringExceptionSpec(QualType T,
QualType U) const { … }
QualType ASTContext::getFunctionTypeWithoutPtrSizes(QualType T) { … }
bool ASTContext::hasSameFunctionTypeIgnoringPtrSizes(QualType T, QualType U) { … }
QualType ASTContext::getFunctionTypeWithoutParamABIs(QualType T) const { … }
bool ASTContext::hasSameFunctionTypeIgnoringParamABI(QualType T,
QualType U) const { … }
void ASTContext::adjustExceptionSpec(
FunctionDecl *FD, const FunctionProtoType::ExceptionSpecInfo &ESI,
bool AsWritten) { … }
QualType ASTContext::getComplexType(QualType T) const { … }
QualType ASTContext::getPointerType(QualType T) const { … }
QualType ASTContext::getAdjustedType(QualType Orig, QualType New) const { … }
QualType ASTContext::getDecayedType(QualType Orig, QualType Decayed) const { … }
QualType ASTContext::getDecayedType(QualType T) const { … }
QualType ASTContext::getArrayParameterType(QualType Ty) const { … }
QualType ASTContext::getBlockPointerType(QualType T) const { … }
QualType
ASTContext::getLValueReferenceType(QualType T, bool SpelledAsLValue) const { … }
QualType ASTContext::getRValueReferenceType(QualType T) const { … }
QualType ASTContext::getMemberPointerType(QualType T, const Type *Cls) const { … }
QualType ASTContext::getConstantArrayType(QualType EltTy,
const llvm::APInt &ArySizeIn,
const Expr *SizeExpr,
ArraySizeModifier ASM,
unsigned IndexTypeQuals) const { … }
QualType ASTContext::getVariableArrayDecayedType(QualType type) const { … }
QualType ASTContext::getVariableArrayType(QualType EltTy, Expr *NumElts,
ArraySizeModifier ASM,
unsigned IndexTypeQuals,
SourceRange Brackets) const { … }
QualType ASTContext::getDependentSizedArrayType(QualType elementType,
Expr *numElements,
ArraySizeModifier ASM,
unsigned elementTypeQuals,
SourceRange brackets) const { … }
QualType ASTContext::getIncompleteArrayType(QualType elementType,
ArraySizeModifier ASM,
unsigned elementTypeQuals) const { … }
ASTContext::BuiltinVectorTypeInfo
ASTContext::getBuiltinVectorTypeInfo(const BuiltinType *Ty) const { … }
QualType ASTContext::getWebAssemblyExternrefType() const { … }
QualType ASTContext::getScalableVectorType(QualType EltTy, unsigned NumElts,
unsigned NumFields) const { … }
QualType ASTContext::getVectorType(QualType vecType, unsigned NumElts,
VectorKind VecKind) const { … }
QualType ASTContext::getDependentVectorType(QualType VecType, Expr *SizeExpr,
SourceLocation AttrLoc,
VectorKind VecKind) const { … }
QualType ASTContext::getExtVectorType(QualType vecType,
unsigned NumElts) const { … }
QualType
ASTContext::getDependentSizedExtVectorType(QualType vecType,
Expr *SizeExpr,
SourceLocation AttrLoc) const { … }
QualType ASTContext::getConstantMatrixType(QualType ElementTy, unsigned NumRows,
unsigned NumColumns) const { … }
QualType ASTContext::getDependentSizedMatrixType(QualType ElementTy,
Expr *RowExpr,
Expr *ColumnExpr,
SourceLocation AttrLoc) const { … }
QualType ASTContext::getDependentAddressSpaceType(QualType PointeeType,
Expr *AddrSpaceExpr,
SourceLocation AttrLoc) const { … }
static bool isCanonicalResultType(QualType T) { … }
QualType
ASTContext::getFunctionNoProtoType(QualType ResultTy,
const FunctionType::ExtInfo &Info) const { … }
CanQualType
ASTContext::getCanonicalFunctionResultType(QualType ResultType) const { … }
static bool isCanonicalExceptionSpecification(
const FunctionProtoType::ExceptionSpecInfo &ESI, bool NoexceptInType) { … }
QualType ASTContext::getFunctionTypeInternal(
QualType ResultTy, ArrayRef<QualType> ArgArray,
const FunctionProtoType::ExtProtoInfo &EPI, bool OnlyWantCanonical) const { … }
QualType ASTContext::getPipeType(QualType T, bool ReadOnly) const { … }
QualType ASTContext::adjustStringLiteralBaseType(QualType Ty) const { … }
QualType ASTContext::getReadPipeType(QualType T) const { … }
QualType ASTContext::getWritePipeType(QualType T) const { … }
QualType ASTContext::getBitIntType(bool IsUnsigned, unsigned NumBits) const { … }
QualType ASTContext::getDependentBitIntType(bool IsUnsigned,
Expr *NumBitsExpr) const { … }
#ifndef NDEBUG
static bool NeedsInjectedClassNameType(const RecordDecl *D) {
if (!isa<CXXRecordDecl>(D)) return false;
const auto *RD = cast<CXXRecordDecl>(D);
if (isa<ClassTemplatePartialSpecializationDecl>(RD))
return true;
if (RD->getDescribedClassTemplate() &&
!isa<ClassTemplateSpecializationDecl>(RD))
return true;
return false;
}
#endif
QualType ASTContext::getInjectedClassNameType(CXXRecordDecl *Decl,
QualType TST) const { … }
QualType ASTContext::getTypeDeclTypeSlow(const TypeDecl *Decl) const { … }
QualType ASTContext::getTypedefType(const TypedefNameDecl *Decl,
QualType Underlying) const { … }
QualType ASTContext::getUsingType(const UsingShadowDecl *Found,
QualType Underlying) const { … }
QualType ASTContext::getRecordType(const RecordDecl *Decl) const { … }
QualType ASTContext::getEnumType(const EnumDecl *Decl) const { … }
QualType ASTContext::getUnresolvedUsingType(
const UnresolvedUsingTypenameDecl *Decl) const { … }
QualType ASTContext::getAttributedType(attr::Kind attrKind,
QualType modifiedType,
QualType equivalentType) const { … }
QualType ASTContext::getBTFTagAttributedType(const BTFTypeTagAttr *BTFAttr,
QualType Wrapped) const { … }
QualType ASTContext::getHLSLAttributedResourceType(
QualType Wrapped, QualType Contained,
const HLSLAttributedResourceType::Attributes &Attrs) { … }
QualType ASTContext::getSubstTemplateTypeParmType(
QualType Replacement, Decl *AssociatedDecl, unsigned Index,
std::optional<unsigned> PackIndex) const { … }
QualType
ASTContext::getSubstTemplateTypeParmPackType(Decl *AssociatedDecl,
unsigned Index, bool Final,
const TemplateArgument &ArgPack) { … }
QualType ASTContext::getTemplateTypeParmType(unsigned Depth, unsigned Index,
bool ParameterPack,
TemplateTypeParmDecl *TTPDecl) const { … }
TypeSourceInfo *
ASTContext::getTemplateSpecializationTypeInfo(TemplateName Name,
SourceLocation NameLoc,
const TemplateArgumentListInfo &Args,
QualType Underlying) const { … }
QualType
ASTContext::getTemplateSpecializationType(TemplateName Template,
ArrayRef<TemplateArgumentLoc> Args,
QualType Underlying) const { … }
#ifndef NDEBUG
static bool hasAnyPackExpansions(ArrayRef<TemplateArgument> Args) {
for (const TemplateArgument &Arg : Args)
if (Arg.isPackExpansion())
return true;
return true;
}
#endif
QualType
ASTContext::getTemplateSpecializationType(TemplateName Template,
ArrayRef<TemplateArgument> Args,
QualType Underlying) const { … }
QualType ASTContext::getCanonicalTemplateSpecializationType(
TemplateName Template, ArrayRef<TemplateArgument> Args) const { … }
QualType ASTContext::getElaboratedType(ElaboratedTypeKeyword Keyword,
NestedNameSpecifier *NNS,
QualType NamedType,
TagDecl *OwnedTagDecl) const { … }
QualType
ASTContext::getParenType(QualType InnerType) const { … }
QualType
ASTContext::getMacroQualifiedType(QualType UnderlyingTy,
const IdentifierInfo *MacroII) const { … }
QualType ASTContext::getDependentNameType(ElaboratedTypeKeyword Keyword,
NestedNameSpecifier *NNS,
const IdentifierInfo *Name,
QualType Canon) const { … }
QualType ASTContext::getDependentTemplateSpecializationType(
ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS,
const IdentifierInfo *Name, ArrayRef<TemplateArgumentLoc> Args) const { … }
QualType
ASTContext::getDependentTemplateSpecializationType(
ElaboratedTypeKeyword Keyword,
NestedNameSpecifier *NNS,
const IdentifierInfo *Name,
ArrayRef<TemplateArgument> Args) const { … }
TemplateArgument ASTContext::getInjectedTemplateArg(NamedDecl *Param) { … }
void
ASTContext::getInjectedTemplateArgs(const TemplateParameterList *Params,
SmallVectorImpl<TemplateArgument> &Args) { … }
QualType ASTContext::getPackExpansionType(QualType Pattern,
std::optional<unsigned> NumExpansions,
bool ExpectPackInType) { … }
static int CmpProtocolNames(ObjCProtocolDecl *const *LHS,
ObjCProtocolDecl *const *RHS) { … }
static bool areSortedAndUniqued(ArrayRef<ObjCProtocolDecl *> Protocols) { … }
static void
SortAndUniqueProtocols(SmallVectorImpl<ObjCProtocolDecl *> &Protocols) { … }
QualType ASTContext::getObjCObjectType(QualType BaseType,
ObjCProtocolDecl * const *Protocols,
unsigned NumProtocols) const { … }
QualType ASTContext::getObjCObjectType(
QualType baseType,
ArrayRef<QualType> typeArgs,
ArrayRef<ObjCProtocolDecl *> protocols,
bool isKindOf) const { … }
QualType
ASTContext::applyObjCProtocolQualifiers(QualType type,
ArrayRef<ObjCProtocolDecl *> protocols, bool &hasError,
bool allowOnPointerType) const { … }
QualType
ASTContext::getObjCTypeParamType(const ObjCTypeParamDecl *Decl,
ArrayRef<ObjCProtocolDecl *> protocols) const { … }
void ASTContext::adjustObjCTypeParamBoundType(const ObjCTypeParamDecl *Orig,
ObjCTypeParamDecl *New) const { … }
bool ASTContext::ObjCObjectAdoptsQTypeProtocols(QualType QT,
ObjCInterfaceDecl *IC) { … }
bool ASTContext::QIdProtocolsAdoptObjCObjectProtocols(QualType QT,
ObjCInterfaceDecl *IDecl) { … }
QualType ASTContext::getObjCObjectPointerType(QualType ObjectT) const { … }
QualType ASTContext::getObjCInterfaceType(const ObjCInterfaceDecl *Decl,
ObjCInterfaceDecl *PrevDecl) const { … }
QualType ASTContext::getTypeOfExprType(Expr *tofExpr, TypeOfKind Kind) const { … }
QualType ASTContext::getTypeOfType(QualType tofType, TypeOfKind Kind) const { … }
QualType ASTContext::getReferenceQualifiedType(const Expr *E) const { … }
QualType ASTContext::getDecltypeType(Expr *e, QualType UnderlyingType) const { … }
QualType ASTContext::getPackIndexingType(QualType Pattern, Expr *IndexExpr,
bool FullySubstituted,
ArrayRef<QualType> Expansions,
int Index) const { … }
QualType ASTContext::getUnaryTransformType(QualType BaseType,
QualType UnderlyingType,
UnaryTransformType::UTTKind Kind)
const { … }
QualType ASTContext::getAutoTypeInternal(
QualType DeducedType, AutoTypeKeyword Keyword, bool IsDependent,
bool IsPack, ConceptDecl *TypeConstraintConcept,
ArrayRef<TemplateArgument> TypeConstraintArgs, bool IsCanon) const { … }
QualType
ASTContext::getAutoType(QualType DeducedType, AutoTypeKeyword Keyword,
bool IsDependent, bool IsPack,
ConceptDecl *TypeConstraintConcept,
ArrayRef<TemplateArgument> TypeConstraintArgs) const { … }
QualType ASTContext::getUnconstrainedType(QualType T) const { … }
QualType ASTContext::getDeducedTemplateSpecializationTypeInternal(
TemplateName Template, QualType DeducedType, bool IsDependent,
QualType Canon) const { … }
QualType ASTContext::getDeducedTemplateSpecializationType(
TemplateName Template, QualType DeducedType, bool IsDependent) const { … }
QualType ASTContext::getAtomicType(QualType T) const { … }
QualType ASTContext::getAutoDeductType() const { … }
QualType ASTContext::getAutoRRefDeductType() const { … }
QualType ASTContext::getTagDeclType(const TagDecl *Decl) const { … }
CanQualType ASTContext::getSizeType() const { … }
CanQualType ASTContext::getSignedSizeType() const { … }
CanQualType ASTContext::getIntMaxType() const { … }
CanQualType ASTContext::getUIntMaxType() const { … }
QualType ASTContext::getSignedWCharType() const { … }
QualType ASTContext::getUnsignedWCharType() const { … }
QualType ASTContext::getIntPtrType() const { … }
QualType ASTContext::getUIntPtrType() const { … }
QualType ASTContext::getPointerDiffType() const { … }
QualType ASTContext::getUnsignedPointerDiffType() const { … }
QualType ASTContext::getProcessIDType() const { … }
CanQualType ASTContext::getCanonicalParamType(QualType T) const { … }
QualType ASTContext::getUnqualifiedArrayType(QualType type,
Qualifiers &quals) const { … }
void ASTContext::UnwrapSimilarArrayTypes(QualType &T1, QualType &T2,
bool AllowPiMismatch) const { … }
bool ASTContext::UnwrapSimilarTypes(QualType &T1, QualType &T2,
bool AllowPiMismatch) const { … }
bool ASTContext::hasSimilarType(QualType T1, QualType T2) const { … }
bool ASTContext::hasCvrSimilarType(QualType T1, QualType T2) { … }
DeclarationNameInfo
ASTContext::getNameForTemplate(TemplateName Name,
SourceLocation NameLoc) const { … }
static const TemplateArgument *
getDefaultTemplateArgumentOrNone(const NamedDecl *P) { … }
TemplateName ASTContext::getCanonicalTemplateName(TemplateName Name,
bool IgnoreDeduced) const { … }
bool ASTContext::hasSameTemplateName(const TemplateName &X,
const TemplateName &Y,
bool IgnoreDeduced) const { … }
bool ASTContext::isSameConstraintExpr(const Expr *XCE, const Expr *YCE) const { … }
bool ASTContext::isSameTypeConstraint(const TypeConstraint *XTC,
const TypeConstraint *YTC) const { … }
bool ASTContext::isSameTemplateParameter(const NamedDecl *X,
const NamedDecl *Y) const { … }
bool ASTContext::isSameTemplateParameterList(
const TemplateParameterList *X, const TemplateParameterList *Y) const { … }
bool ASTContext::isSameDefaultTemplateArgument(const NamedDecl *X,
const NamedDecl *Y) const { … }
static NamespaceDecl *getNamespace(const NestedNameSpecifier *X) { … }
static bool isSameQualifier(const NestedNameSpecifier *X,
const NestedNameSpecifier *Y) { … }
static bool hasSameOverloadableAttrs(const FunctionDecl *A,
const FunctionDecl *B) { … }
bool ASTContext::isSameEntity(const NamedDecl *X, const NamedDecl *Y) const { … }
TemplateArgument
ASTContext::getCanonicalTemplateArgument(const TemplateArgument &Arg) const { … }
NestedNameSpecifier *
ASTContext::getCanonicalNestedNameSpecifier(NestedNameSpecifier *NNS) const { … }
const ArrayType *ASTContext::getAsArrayType(QualType T) const { … }
QualType ASTContext::getAdjustedParameterType(QualType T) const { … }
QualType ASTContext::getSignatureParameterType(QualType T) const { … }
QualType ASTContext::getExceptionObjectType(QualType T) const { … }
QualType ASTContext::getArrayDecayedType(QualType Ty) const { … }
QualType ASTContext::getBaseElementType(const ArrayType *array) const { … }
QualType ASTContext::getBaseElementType(QualType type) const { … }
uint64_t
ASTContext::getConstantArrayElementCount(const ConstantArrayType *CA) const { … }
uint64_t ASTContext::getArrayInitLoopExprElementCount(
const ArrayInitLoopExpr *AILE) const { … }
static FloatingRank getFloatingRank(QualType T) { … }
int ASTContext::getFloatingTypeOrder(QualType LHS, QualType RHS) const { … }
int ASTContext::getFloatingTypeSemanticOrder(QualType LHS, QualType RHS) const { … }
unsigned ASTContext::getIntegerRank(const Type *T) const { … }
QualType ASTContext::isPromotableBitField(Expr *E) const { … }
QualType ASTContext::getPromotedIntegerType(QualType Promotable) const { … }
Qualifiers::ObjCLifetime ASTContext::getInnerObjCOwnership(QualType T) const { … }
static const Type *getIntegerTypeForEnum(const EnumType *ET) { … }
int ASTContext::getIntegerTypeOrder(QualType LHS, QualType RHS) const { … }
TypedefDecl *ASTContext::getCFConstantStringDecl() const { … }
RecordDecl *ASTContext::getCFConstantStringTagDecl() const { … }
QualType ASTContext::getCFConstantStringType() const { … }
QualType ASTContext::getObjCSuperType() const { … }
void ASTContext::setCFConstantStringType(QualType T) { … }
QualType ASTContext::getBlockDescriptorType() const { … }
QualType ASTContext::getBlockDescriptorExtendedType() const { … }
OpenCLTypeKind ASTContext::getOpenCLTypeKind(const Type *T) const { … }
LangAS ASTContext::getOpenCLTypeAddrSpace(const Type *T) const { … }
bool ASTContext::BlockRequiresCopying(QualType Ty,
const VarDecl *D) { … }
bool ASTContext::getByrefLifetime(QualType Ty,
Qualifiers::ObjCLifetime &LifeTime,
bool &HasByrefExtendedLayout) const { … }
CanQualType ASTContext::getNSUIntegerType() const { … }
CanQualType ASTContext::getNSIntegerType() const { … }
TypedefDecl *ASTContext::getObjCInstanceTypeDecl() { … }
static bool isTypeTypedefedAsBOOL(QualType T) { … }
CharUnits ASTContext::getObjCEncodingTypeSize(QualType type) const { … }
bool ASTContext::isMSStaticDataMemberInlineDefinition(const VarDecl *VD) const { … }
ASTContext::InlineVariableDefinitionKind
ASTContext::getInlineVariableDefinitionKind(const VarDecl *VD) const { … }
static std::string charUnitsToString(const CharUnits &CU) { … }
std::string ASTContext::getObjCEncodingForBlock(const BlockExpr *Expr) const { … }
std::string
ASTContext::getObjCEncodingForFunctionDecl(const FunctionDecl *Decl) const { … }
void ASTContext::getObjCEncodingForMethodParameter(Decl::ObjCDeclQualifier QT,
QualType T, std::string& S,
bool Extended) const { … }
std::string ASTContext::getObjCEncodingForMethodDecl(const ObjCMethodDecl *Decl,
bool Extended) const { … }
ObjCPropertyImplDecl *
ASTContext::getObjCPropertyImplDeclForPropertyDecl(
const ObjCPropertyDecl *PD,
const Decl *Container) const { … }
std::string
ASTContext::getObjCEncodingForPropertyDecl(const ObjCPropertyDecl *PD,
const Decl *Container) const { … }
void ASTContext::getLegacyIntegralTypeEncoding (QualType &PointeeTy) const { … }
void ASTContext::getObjCEncodingForType(QualType T, std::string& S,
const FieldDecl *Field,
QualType *NotEncodedT) const { … }
void ASTContext::getObjCEncodingForPropertyType(QualType T,
std::string& S) const { … }
static char getObjCEncodingForPrimitiveType(const ASTContext *C,
const BuiltinType *BT) { … }
static char ObjCEncodingForEnumType(const ASTContext *C, const EnumType *ET) { … }
static void EncodeBitField(const ASTContext *Ctx, std::string& S,
QualType T, const FieldDecl *FD) { … }
static bool hasTemplateSpecializationInEncodedString(const Type *T,
bool VisitBasesAndFields) { … }
void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string &S,
const ObjCEncOptions Options,
const FieldDecl *FD,
QualType *NotEncodedT) const { … }
void ASTContext::getObjCEncodingForStructureImpl(RecordDecl *RDecl,
std::string &S,
const FieldDecl *FD,
bool includeVBases,
QualType *NotEncodedT) const { … }
void ASTContext::getObjCEncodingForTypeQualifier(Decl::ObjCDeclQualifier QT,
std::string& S) const { … }
TypedefDecl *ASTContext::getObjCIdDecl() const { … }
TypedefDecl *ASTContext::getObjCSelDecl() const { … }
TypedefDecl *ASTContext::getObjCClassDecl() const { … }
ObjCInterfaceDecl *ASTContext::getObjCProtocolDecl() const { … }
static TypedefDecl *CreateCharPtrNamedVaListDecl(const ASTContext *Context,
StringRef Name) { … }
static TypedefDecl *CreateMSVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreateCharPtrBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreateVoidPtrBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *
CreateAArch64ABIBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreatePowerABIBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *
CreateX86_64ABIBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreatePNaClABIBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *
CreateAAPCSABIBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *
CreateSystemZBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreateHexagonBuiltinVaListDecl(const ASTContext *Context) { … }
static TypedefDecl *CreateVaListDecl(const ASTContext *Context,
TargetInfo::BuiltinVaListKind Kind) { … }
TypedefDecl *ASTContext::getBuiltinVaListDecl() const { … }
Decl *ASTContext::getVaListTagDecl() const { … }
TypedefDecl *ASTContext::getBuiltinMSVaListDecl() const { … }
bool ASTContext::canBuiltinBeRedeclared(const FunctionDecl *FD) const { … }
void ASTContext::setObjCConstantStringInterface(ObjCInterfaceDecl *Decl) { … }
TemplateName
ASTContext::getOverloadedTemplateName(UnresolvedSetIterator Begin,
UnresolvedSetIterator End) const { … }
TemplateName ASTContext::getAssumedTemplateName(DeclarationName Name) const { … }
TemplateName ASTContext::getQualifiedTemplateName(NestedNameSpecifier *NNS,
bool TemplateKeyword,
TemplateName Template) const { … }
TemplateName
ASTContext::getDependentTemplateName(NestedNameSpecifier *NNS,
const IdentifierInfo *Name) const { … }
TemplateName
ASTContext::getDependentTemplateName(NestedNameSpecifier *NNS,
OverloadedOperatorKind Operator) const { … }
TemplateName ASTContext::getSubstTemplateTemplateParm(
TemplateName Replacement, Decl *AssociatedDecl, unsigned Index,
std::optional<unsigned> PackIndex) const { … }
TemplateName
ASTContext::getSubstTemplateTemplateParmPack(const TemplateArgument &ArgPack,
Decl *AssociatedDecl,
unsigned Index, bool Final) const { … }
TemplateName
ASTContext::getDeducedTemplateName(TemplateName Underlying,
DefaultArguments DefaultArgs) const { … }
CanQualType ASTContext::getFromTargetType(unsigned Type) const { … }
Qualifiers::GC ASTContext::getObjCGCAttrKind(QualType Ty) const { … }
static bool areCompatVectorTypes(const VectorType *LHS,
const VectorType *RHS) { … }
static bool areCompatMatrixTypes(const ConstantMatrixType *LHS,
const ConstantMatrixType *RHS) { … }
bool ASTContext::areCompatibleVectorTypes(QualType FirstVec,
QualType SecondVec) { … }
static uint64_t getSVETypeSize(ASTContext &Context, const BuiltinType *Ty) { … }
bool ASTContext::areCompatibleSveTypes(QualType FirstType,
QualType SecondType) { … }
bool ASTContext::areLaxCompatibleSveTypes(QualType FirstType,
QualType SecondType) { … }
static uint64_t getRVVTypeSize(ASTContext &Context, const BuiltinType *Ty) { … }
bool ASTContext::areCompatibleRVVTypes(QualType FirstType,
QualType SecondType) { … }
bool ASTContext::areLaxCompatibleRVVTypes(QualType FirstType,
QualType SecondType) { … }
bool ASTContext::hasDirectOwnershipQualifier(QualType Ty) const { … }
bool
ASTContext::ProtocolCompatibleWithProtocol(ObjCProtocolDecl *lProto,
ObjCProtocolDecl *rProto) const { … }
bool ASTContext::ObjCQualifiedClassTypesAreCompatible(
const ObjCObjectPointerType *lhs, const ObjCObjectPointerType *rhs) { … }
bool ASTContext::ObjCQualifiedIdTypesAreCompatible(
const ObjCObjectPointerType *lhs, const ObjCObjectPointerType *rhs,
bool compare) { … }
bool ASTContext::canAssignObjCInterfaces(const ObjCObjectPointerType *LHSOPT,
const ObjCObjectPointerType *RHSOPT) { … }
bool ASTContext::canAssignObjCInterfacesInBlockPointer(
const ObjCObjectPointerType *LHSOPT,
const ObjCObjectPointerType *RHSOPT,
bool BlockReturnType) { … }
static int compareObjCProtocolsByName(ObjCProtocolDecl * const *lhs,
ObjCProtocolDecl * const *rhs) { … }
static
void getIntersectionOfProtocols(ASTContext &Context,
const ObjCInterfaceDecl *CommonBase,
const ObjCObjectPointerType *LHSOPT,
const ObjCObjectPointerType *RHSOPT,
SmallVectorImpl<ObjCProtocolDecl *> &IntersectionSet) { … }
static bool canAssignObjCObjectTypes(ASTContext &ctx, QualType lhs,
QualType rhs) { … }
static bool sameObjCTypeArgs(ASTContext &ctx,
const ObjCInterfaceDecl *iface,
ArrayRef<QualType> lhsArgs,
ArrayRef<QualType> rhsArgs,
bool stripKindOf) { … }
QualType ASTContext::areCommonBaseCompatible(
const ObjCObjectPointerType *Lptr,
const ObjCObjectPointerType *Rptr) { … }
bool ASTContext::canAssignObjCInterfaces(const ObjCObjectType *LHS,
const ObjCObjectType *RHS) { … }
bool ASTContext::areComparableObjCPointerTypes(QualType LHS, QualType RHS) { … }
bool ASTContext::canBindObjCObjectType(QualType To, QualType From) { … }
bool ASTContext::typesAreCompatible(QualType LHS, QualType RHS,
bool CompareUnqualified) { … }
bool ASTContext::propertyTypesAreCompatible(QualType LHS, QualType RHS) { … }
bool ASTContext::typesAreBlockPointerCompatible(QualType LHS, QualType RHS) { … }
QualType ASTContext::mergeTransparentUnionType(QualType T, QualType SubType,
bool OfBlockPointer,
bool Unqualified) { … }
QualType ASTContext::mergeFunctionParameterTypes(QualType lhs, QualType rhs,
bool OfBlockPointer,
bool Unqualified) { … }
QualType ASTContext::mergeFunctionTypes(QualType lhs, QualType rhs,
bool OfBlockPointer, bool Unqualified,
bool AllowCXX,
bool IsConditionalOperator) { … }
static QualType mergeEnumWithInteger(ASTContext &Context, const EnumType *ET,
QualType other, bool isBlockReturnType) { … }
QualType ASTContext::mergeTypes(QualType LHS, QualType RHS, bool OfBlockPointer,
bool Unqualified, bool BlockReturnType,
bool IsConditionalOperator) { … }
bool ASTContext::mergeExtParameterInfo(
const FunctionProtoType *FirstFnType, const FunctionProtoType *SecondFnType,
bool &CanUseFirst, bool &CanUseSecond,
SmallVectorImpl<FunctionProtoType::ExtParameterInfo> &NewParamInfos) { … }
void ASTContext::ResetObjCLayout(const ObjCContainerDecl *CD) { … }
QualType ASTContext::mergeObjCGCQualifiers(QualType LHS, QualType RHS) { … }
unsigned ASTContext::getIntWidth(QualType T) const { … }
QualType ASTContext::getCorrespondingUnsignedType(QualType T) const { … }
QualType ASTContext::getCorrespondingSignedType(QualType T) const { … }
ASTMutationListener::~ASTMutationListener() = default;
void ASTMutationListener::DeducedReturnType(const FunctionDecl *FD,
QualType ReturnType) { … }
static QualType DecodeTypeFromStr(const char *&Str, const ASTContext &Context,
ASTContext::GetBuiltinTypeError &Error,
bool &RequiresICE,
bool AllowTypeModifiers) { … }
QualType ASTContext::DecodeTypeStr(const char *&Str, const ASTContext &Context,
GetBuiltinTypeError &Error, bool &RequireICE,
bool AllowTypeModifiers) const { … }
QualType ASTContext::GetBuiltinType(unsigned Id,
GetBuiltinTypeError &Error,
unsigned *IntegerConstantArgs) const { … }
static GVALinkage basicGVALinkageForFunction(const ASTContext &Context,
const FunctionDecl *FD) { … }
static GVALinkage adjustGVALinkageForAttributes(const ASTContext &Context,
const Decl *D, GVALinkage L) { … }
static GVALinkage
adjustGVALinkageForExternalDefinitionKind(const ASTContext &Ctx, const Decl *D,
GVALinkage L) { … }
GVALinkage ASTContext::GetGVALinkageForFunction(const FunctionDecl *FD) const { … }
static GVALinkage basicGVALinkageForVariable(const ASTContext &Context,
const VarDecl *VD) { … }
GVALinkage ASTContext::GetGVALinkageForVariable(const VarDecl *VD) const { … }
bool ASTContext::DeclMustBeEmitted(const Decl *D) { … }
void ASTContext::forEachMultiversionedFunctionVersion(
const FunctionDecl *FD,
llvm::function_ref<void(FunctionDecl *)> Pred) const { … }
CallingConv ASTContext::getDefaultCallingConvention(bool IsVariadic,
bool IsCXXMethod,
bool IsBuiltin) const { … }
bool ASTContext::isNearlyEmpty(const CXXRecordDecl *RD) const { … }
VTableContextBase *ASTContext::getVTableContext() { … }
MangleContext *ASTContext::createMangleContext(const TargetInfo *T) { … }
MangleContext *ASTContext::createDeviceMangleContext(const TargetInfo &T) { … }
CXXABI::~CXXABI() = default;
size_t ASTContext::getSideTableAllocatedMemory() const { … }
QualType ASTContext::getIntTypeForBitwidth(unsigned DestWidth,
unsigned Signed) const { … }
QualType ASTContext::getRealTypeForBitwidth(unsigned DestWidth,
FloatModeKind ExplicitType) const { … }
void ASTContext::setManglingNumber(const NamedDecl *ND, unsigned Number) { … }
unsigned ASTContext::getManglingNumber(const NamedDecl *ND,
bool ForAuxTarget) const { … }
void ASTContext::setStaticLocalNumber(const VarDecl *VD, unsigned Number) { … }
unsigned ASTContext::getStaticLocalNumber(const VarDecl *VD) const { … }
MangleNumberingContext &
ASTContext::getManglingNumberContext(const DeclContext *DC) { … }
MangleNumberingContext &
ASTContext::getManglingNumberContext(NeedExtraManglingDecl_t, const Decl *D) { … }
std::unique_ptr<MangleNumberingContext>
ASTContext::createMangleNumberingContext() const { … }
const CXXConstructorDecl *
ASTContext::getCopyConstructorForExceptionObject(CXXRecordDecl *RD) { … }
void ASTContext::addCopyConstructorForExceptionObject(CXXRecordDecl *RD,
CXXConstructorDecl *CD) { … }
void ASTContext::addTypedefNameForUnnamedTagDecl(TagDecl *TD,
TypedefNameDecl *DD) { … }
TypedefNameDecl *
ASTContext::getTypedefNameForUnnamedTagDecl(const TagDecl *TD) { … }
void ASTContext::addDeclaratorForUnnamedTagDecl(TagDecl *TD,
DeclaratorDecl *DD) { … }
DeclaratorDecl *ASTContext::getDeclaratorForUnnamedTagDecl(const TagDecl *TD) { … }
void ASTContext::setParameterIndex(const ParmVarDecl *D, unsigned int index) { … }
unsigned ASTContext::getParameterIndex(const ParmVarDecl *D) const { … }
QualType ASTContext::getStringLiteralArrayType(QualType EltTy,
unsigned Length) const { … }
StringLiteral *
ASTContext::getPredefinedStringLiteralFromCache(StringRef Key) const { … }
MSGuidDecl *
ASTContext::getMSGuidDecl(MSGuidDecl::Parts Parts) const { … }
UnnamedGlobalConstantDecl *
ASTContext::getUnnamedGlobalConstantDecl(QualType Ty,
const APValue &APVal) const { … }
TemplateParamObjectDecl *
ASTContext::getTemplateParamObjectDecl(QualType T, const APValue &V) const { … }
bool ASTContext::AtomicUsesUnsupportedLibcall(const AtomicExpr *E) const { … }
bool
ASTContext::ObjCMethodsAreEqual(const ObjCMethodDecl *MethodDecl,
const ObjCMethodDecl *MethodImpl) { … }
uint64_t ASTContext::getTargetNullPointerValue(QualType QT) const { … }
unsigned ASTContext::getTargetAddressSpace(LangAS AS) const { … }
bool ASTContext::hasSameExpr(const Expr *X, const Expr *Y) const { … }
static Decl *getCommonDecl(Decl *X, Decl *Y) { … }
template <class T, std::enable_if_t<std::is_base_of_v<Decl, T>, bool> = true>
static T *getCommonDecl(T *X, T *Y) { … }
template <class T, std::enable_if_t<std::is_base_of_v<Decl, T>, bool> = true>
static T *getCommonDeclChecked(T *X, T *Y) { … }
static TemplateName getCommonTemplateName(ASTContext &Ctx, TemplateName X,
TemplateName Y,
bool IgnoreDeduced = false) { … }
static TemplateName getCommonTemplateNameChecked(ASTContext &Ctx,
TemplateName X, TemplateName Y,
bool IgnoreDeduced) { … }
static auto getCommonTypes(ASTContext &Ctx, ArrayRef<QualType> Xs,
ArrayRef<QualType> Ys, bool Unqualified = false) { … }
template <class T>
static SourceLocation getCommonAttrLoc(const T *X, const T *Y) { … }
static TemplateArgument getCommonTemplateArgument(ASTContext &Ctx,
const TemplateArgument &X,
const TemplateArgument &Y) { … }
static bool getCommonTemplateArguments(ASTContext &Ctx,
SmallVectorImpl<TemplateArgument> &R,
ArrayRef<TemplateArgument> Xs,
ArrayRef<TemplateArgument> Ys) { … }
static auto getCommonTemplateArguments(ASTContext &Ctx,
ArrayRef<TemplateArgument> Xs,
ArrayRef<TemplateArgument> Ys) { … }
template <class T>
static ElaboratedTypeKeyword getCommonTypeKeyword(const T *X, const T *Y) { … }
template <class T>
static NestedNameSpecifier *getCommonNNS(ASTContext &Ctx, const T *X,
const T *Y) { … }
template <class T>
static QualType getCommonElementType(ASTContext &Ctx, const T *X, const T *Y) { … }
template <class T>
static QualType getCommonArrayElementType(ASTContext &Ctx, const T *X,
Qualifiers &QX, const T *Y,
Qualifiers &QY) { … }
template <class T>
static QualType getCommonPointeeType(ASTContext &Ctx, const T *X, const T *Y) { … }
template <class T> static auto *getCommonSizeExpr(ASTContext &Ctx, T *X, T *Y) { … }
static auto getCommonSizeModifier(const ArrayType *X, const ArrayType *Y) { … }
static auto getCommonIndexTypeCVRQualifiers(const ArrayType *X,
const ArrayType *Y) { … }
static void mergeTypeLists(ASTContext &Ctx, SmallVectorImpl<QualType> &Out,
ArrayRef<QualType> X, ArrayRef<QualType> Y) { … }
FunctionProtoType::ExceptionSpecInfo
ASTContext::mergeExceptionSpecs(FunctionProtoType::ExceptionSpecInfo ESI1,
FunctionProtoType::ExceptionSpecInfo ESI2,
SmallVectorImpl<QualType> &ExceptionTypeStorage,
bool AcceptDependent) { … }
static QualType getCommonNonSugarTypeNode(ASTContext &Ctx, const Type *X,
Qualifiers &QX, const Type *Y,
Qualifiers &QY) { … }
static QualType getCommonSugarTypeNode(ASTContext &Ctx, const Type *X,
const Type *Y,
SplitQualType Underlying) { … }
static auto unwrapSugar(SplitQualType &T, Qualifiers &QTotal) { … }
QualType ASTContext::getCommonSugaredType(QualType X, QualType Y,
bool Unqualified) { … }
QualType ASTContext::getCorrespondingUnsaturatedType(QualType Ty) const { … }
QualType ASTContext::getCorrespondingSaturatedType(QualType Ty) const { … }
LangAS ASTContext::getLangASForBuiltinAddressSpace(unsigned AS) const { … }
template
clang::LazyGenerationalUpdatePtr<
const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::ValueType
clang::LazyGenerationalUpdatePtr<
const Decl *, Decl *, &ExternalASTSource::CompleteRedeclChain>::makeValue(
const clang::ASTContext &Ctx, Decl *Value);
unsigned char ASTContext::getFixedPointScale(QualType Ty) const { … }
unsigned char ASTContext::getFixedPointIBits(QualType Ty) const { … }
llvm::FixedPointSemantics
ASTContext::getFixedPointSemantics(QualType Ty) const { … }
llvm::APFixedPoint ASTContext::getFixedPointMax(QualType Ty) const { … }
llvm::APFixedPoint ASTContext::getFixedPointMin(QualType Ty) const { … }
QualType ASTContext::getCorrespondingSignedFixedPointType(QualType Ty) const { … }
static std::vector<std::string> getFMVBackendFeaturesFor(
const llvm::SmallVectorImpl<StringRef> &FMVFeatStrings) { … }
ParsedTargetAttr
ASTContext::filterFunctionTargetAttrs(const TargetAttr *TD) const { … }
void ASTContext::getFunctionFeatureMap(llvm::StringMap<bool> &FeatureMap,
const FunctionDecl *FD) const { … }
void ASTContext::getFunctionFeatureMap(llvm::StringMap<bool> &FeatureMap,
GlobalDecl GD) const { … }
OMPTraitInfo &ASTContext::getNewOMPTraitInfo() { … }
const StreamingDiagnostic &clang::
operator<<(const StreamingDiagnostic &DB,
const ASTContext::SectionInfo &Section) { … }
bool ASTContext::mayExternalize(const Decl *D) const { … }
bool ASTContext::shouldExternalize(const Decl *D) const { … }
StringRef ASTContext::getCUIDHash() const { … }
const CXXRecordDecl *
ASTContext::baseForVTableAuthentication(const CXXRecordDecl *ThisClass) { … }
bool ASTContext::useAbbreviatedThunkName(GlobalDecl VirtualMethodDecl,
StringRef MangledName) { … }