class ASTContext

Declaration

class ASTContext : public RefCountedBase { /* full declaration omitted */ };

Description

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic analysis of a file.

Declared at: clang/include/clang/AST/ASTContext.h:209

Inherits from: RefCountedBase

Member Variables

private SmallVector<clang::Type*, 0> Types
private llvm::FoldingSet<ExtQuals> ExtQualNodes
private llvm::FoldingSet<ComplexType> ComplexTypes
private llvm::FoldingSet<PointerType> PointerTypes = {GeneralTypesLog2InitSize}
private llvm::FoldingSet<AdjustedType> AdjustedTypes
private llvm::FoldingSet<BlockPointerType> BlockPointerTypes
private llvm::FoldingSet<LValueReferenceType> LValueReferenceTypes
private llvm::FoldingSet<RValueReferenceType> RValueReferenceTypes
private llvm::FoldingSet<MemberPointerType> MemberPointerTypes
private llvm::ContextualFoldingSet<ConstantArrayType, ASTContext&> ConstantArrayTypes
private llvm::FoldingSet<IncompleteArrayType> IncompleteArrayTypes
private std::vector<VariableArrayType*> VariableArrayTypes
private llvm::FoldingSet<DependentSizedArrayType> DependentSizedArrayTypes
private llvm::FoldingSet<DependentSizedExtVectorType> DependentSizedExtVectorTypes
private llvm::FoldingSet<DependentAddressSpaceType> DependentAddressSpaceTypes
private llvm::FoldingSet<VectorType> VectorTypes
private llvm::FoldingSet<DependentVectorType> DependentVectorTypes
private llvm::FoldingSet<ConstantMatrixType> MatrixTypes
private llvm::FoldingSet<DependentSizedMatrixType> DependentSizedMatrixTypes
private llvm::FoldingSet<FunctionNoProtoType> FunctionNoProtoTypes
private llvm::ContextualFoldingSet<FunctionProtoType, ASTContext&> FunctionProtoTypes
private llvm::FoldingSet<DependentTypeOfExprType> DependentTypeOfExprTypes
private llvm::FoldingSet<DependentDecltypeType> DependentDecltypeTypes
private llvm::FoldingSet<TemplateTypeParmType> TemplateTypeParmTypes
private llvm::FoldingSet<ObjCTypeParamType> ObjCTypeParamTypes
private llvm::FoldingSet<SubstTemplateTypeParmType> SubstTemplateTypeParmTypes
private llvm::FoldingSet<SubstTemplateTypeParmPackType> SubstTemplateTypeParmPackTypes
private llvm::ContextualFoldingSet< TemplateSpecializationType, ASTContext&> TemplateSpecializationTypes
private llvm::FoldingSet<ParenType> ParenTypes = {GeneralTypesLog2InitSize}
private llvm::FoldingSet<UsingType> UsingTypes
private llvm::FoldingSet<ElaboratedType> ElaboratedTypes = {GeneralTypesLog2InitSize}
private llvm::FoldingSet<DependentNameType> DependentNameTypes
private llvm::ContextualFoldingSet< DependentTemplateSpecializationType, ASTContext&> DependentTemplateSpecializationTypes
private llvm::FoldingSet<PackExpansionType> PackExpansionTypes
private llvm::FoldingSet<ObjCObjectTypeImpl> ObjCObjectTypes
private llvm::FoldingSet<ObjCObjectPointerType> ObjCObjectPointerTypes
private llvm::FoldingSet<DependentUnaryTransformType> DependentUnaryTransformTypes
private llvm::ContextualFoldingSet<AutoType, ASTContext&> AutoTypes
private llvm::FoldingSet< DeducedTemplateSpecializationType> DeducedTemplateSpecializationTypes
private llvm::FoldingSet<AtomicType> AtomicTypes
private llvm::FoldingSet<AttributedType> AttributedTypes
private llvm::FoldingSet<PipeType> PipeTypes
private llvm::FoldingSet<BitIntType> BitIntTypes
private llvm::FoldingSet<DependentBitIntType> DependentBitIntTypes
private llvm::FoldingSet<BTFTagAttributedType> BTFTagAttributedTypes
private llvm::FoldingSet<QualifiedTemplateName> QualifiedTemplateNames
private llvm::FoldingSet<DependentTemplateName> DependentTemplateNames
private llvm::FoldingSet<SubstTemplateTemplateParmStorage> SubstTemplateTemplateParms
private llvm::ContextualFoldingSet< SubstTemplateTemplateParmPackStorage, ASTContext&> SubstTemplateTemplateParmPacks
private llvm::FoldingSet<NestedNameSpecifier> NestedNameSpecifiers
This set is managed by the NestedNameSpecifier class.
private clang::NestedNameSpecifier* GlobalNestedNameSpecifier = nullptr
private llvm::DenseMap<const RecordDecl*, const ASTRecordLayout*> ASTRecordLayouts
This is lazily created. This is intentionally not serialized.
private llvm::DenseMap<const ObjCContainerDecl*, const ASTRecordLayout*> ObjCLayouts
private clang::ASTContext::TypeInfoMap MemoizedTypeInfo
private clang::ASTContext::UnadjustedAlignMap MemoizedUnadjustedAlign
private llvm::DenseMap<const CXXRecordDecl*, LazyDeclPtr> KeyFunctions
A cache mapping from CXXRecordDecls to key functions.
private llvm::DenseMap<ObjCContainerDecl*, ObjCImplDecl*> ObjCImpls
Mapping from ObjCContainers to their ObjCImplementations.
private llvm::DenseMap<const ObjCMethodDecl*, const ObjCMethodDecl*> ObjCMethodRedecls
Mapping from ObjCMethod to its duplicate declaration in the same interface.
private llvm::DenseMap<const VarDecl*, BlockVarCopyInit> BlockVarCopyInits
Mapping from __block VarDecls to BlockVarCopyInit.
private llvm::FoldingSet<MSGuidDecl> MSGuidDecls
Mapping from GUIDs to the corresponding MSGuidDecl.
private llvm::FoldingSet<UnnamedGlobalConstantDecl> UnnamedGlobalConstantDecls
Mapping from APValues to the corresponding UnnamedGlobalConstantDecl.
private llvm::FoldingSet<TemplateParamObjectDecl> TemplateParamObjectDecls
Mapping from APValues to the corresponding TemplateParamObjects.
private llvm::StringMap<StringLiteral*> StringLiteralCache
This is lazily created. This is intentionally not serialized.
private std::string CUIDHash
MD5 hash of CUID. It is calculated when first used and cached by this data member.
private llvm::ContextualFoldingSet< CanonicalTemplateTemplateParm, const ASTContext&> CanonTemplateTemplateParms
private clang::TypedefDecl* Int128Decl = nullptr
The typedef for the __int128_t type.
private clang::TypedefDecl* UInt128Decl = nullptr
The typedef for the __uint128_t type.
private clang::TypedefDecl* BuiltinVaListDecl = nullptr
The typedef for the target specific predefined __builtin_va_list type.
private clang::TypedefDecl* BuiltinMSVaListDecl = nullptr
The typedef for the predefined \c __builtin_ms_va_list type.
private clang::TypedefDecl* ObjCIdDecl = nullptr
The typedef for the predefined \c id type.
private clang::TypedefDecl* ObjCSelDecl = nullptr
The typedef for the predefined \c SEL type.
private clang::TypedefDecl* ObjCClassDecl = nullptr
The typedef for the predefined \c Class type.
private clang::ObjCInterfaceDecl* ObjCProtocolClassDecl = nullptr
The typedef for the predefined \c Protocol class in Objective-C.
private clang::TypedefDecl* BOOLDecl = nullptr
The typedef for the predefined 'BOOL' type.
private clang::QualType ObjCIdRedefinitionType
private clang::QualType ObjCClassRedefinitionType
private clang::QualType ObjCSelRedefinitionType
private clang::IdentifierInfo* BoolName = nullptr
The identifier 'bool'.
private clang::IdentifierInfo* NSObjectName = nullptr
The identifier 'NSObject'.
private clang::IdentifierInfo* NSCopyingName = nullptr
The identifier 'NSCopying'.
private clang::IdentifierInfo* MakeIntegerSeqName = nullptr
The identifier '__make_integer_seq'.
private clang::IdentifierInfo* TypePackElementName = nullptr
The identifier '__type_pack_element'.
private clang::QualType ObjCConstantStringType
private clang::RecordDecl* CFConstantStringTagDecl = nullptr
private clang::TypedefDecl* CFConstantStringTypeDecl = nullptr
private clang::QualType ObjCSuperType
private clang::QualType ObjCNSStringType
private clang::TypedefDecl* ObjCInstanceTypeDecl = nullptr
The typedef declaration for the Objective-C "instancetype" type.
private clang::TypeDecl* FILEDecl = nullptr
The type for the C FILE type.
private clang::TypeDecl* jmp_bufDecl = nullptr
The type for the C jmp_buf type.
private clang::TypeDecl* sigjmp_bufDecl = nullptr
The type for the C sigjmp_buf type.
private clang::TypeDecl* ucontext_tDecl = nullptr
The type for the C ucontext_t type.
private clang::RecordDecl* BlockDescriptorType = nullptr
Since this is only used for generation of debug info, it is not serialized.
private clang::RecordDecl* BlockDescriptorExtendedType = nullptr
Since this is only used for generation of debug info, it is not serialized.
private clang::FunctionDecl* cudaConfigureCallDecl = nullptr
Declaration for the CUDA cudaConfigureCall function.
private llvm::DenseMap<const Decl*, AttrVec*> DeclAttrs
Since so few decls have attrs, we keep them in a hash map instead of wasting space in the Decl class.
private llvm::DenseMap<Decl*, Decl*> MergedDecls
A mapping from non-redeclarable declarations in modules that were merged with other declarations to the canonical declaration that they were merged into.
private llvm::DenseMap<NamedDecl*, llvm::TinyPtrVector<Module*>> MergedDefModules
A mapping from a defining declaration to a list of modules (other than the owning module of the declaration) that contain merged definitions of that entity.
private llvm::DenseMap<Module*, PerModuleInitializers*> ModuleInitializers
private clang::Module* TopLevelModule = nullptr
For module code-gen cases, this is the top-level module we are building.
private llvm::DenseMap<const VarDecl*, TemplateOrSpecializationInfo> TemplateOrInstantiation
This mapping will contain an entry that maps from the VarDecl for X <int >::value to the corresponding VarDecl for X <T >::value (within the class template X) and will be marked TSK_ImplicitInstantiation.
private llvm::DenseMap<NamedDecl*, NamedDecl*> InstantiatedFromUsingDecl
This mapping will contain an entry that maps from the UsingDecl in B <int > to the UnresolvedUsingDecl in B <T >.
private llvm::DenseMap<UsingEnumDecl*, UsingEnumDecl*> InstantiatedFromUsingEnumDecl
Like InstantiatedFromUsingDecl, but for using-enum-declarations. Maps from the instantiated using-enum to the templated decl from whence it came. Note that using-enum-declarations cannot be dependent and thus will never be instantiated from an "unresolved" version thereof (as with using-declarations), so each mapping is from a (resolved) UsingEnumDecl to a (resolved) UsingEnumDecl.
private llvm::DenseMap<UsingShadowDecl*, UsingShadowDecl*> InstantiatedFromUsingShadowDecl
Simlarly maps instantiated UsingShadowDecls to their origin.
private llvm::DenseMap<FieldDecl*, FieldDecl*> InstantiatedFromUnnamedFieldDecl
private llvm::DenseMap<const CXXMethodDecl*, CXXMethodVector> OverriddenMethods
private llvm::DenseMap< const DeclContext*, std::unique_ptr<MangleNumberingContext>> MangleNumberingContexts
Mapping from each declaration context to its corresponding mangling numbering context (used for constructs like lambdas which need to be consistently numbered for the mangler).
private llvm::DenseMap< const Decl*, std::unique_ptr<MangleNumberingContext>> ExtraMangleNumberingContexts
private llvm::MapVector<const NamedDecl*, unsigned int> MangleNumbers
Side-table of mangling numbers for declarations which rarely need them (like static local vars).
private llvm::MapVector<const VarDecl*, unsigned int> StaticLocalNumbers
private llvm::DenseMap<const CXXRecordDecl*, unsigned int> DeviceLambdaManglingNumbers
Mapping the associated device lambda mangling number if present.
private clang::ASTContext::ParameterIndexTable ParamIndices
private clang::ImportDecl* FirstLocalImport = nullptr
private clang::ImportDecl* LastLocalImport = nullptr
private clang::TranslationUnitDecl* TUDecl = nullptr
private clang::ExternCContextDecl* ExternCContext = nullptr
private clang::BuiltinTemplateDecl* MakeIntegerSeqDecl = nullptr
private clang::BuiltinTemplateDecl* TypePackElementDecl = nullptr
private clang::SourceManager& SourceMgr
The associated SourceManager object.
private clang::LangOptions& LangOpts
The language options used to create the AST associated with this ASTContext object.
private std::unique_ptr<NoSanitizeList> NoSanitizeL
NoSanitizeList object that is used by sanitizers to decide which entities should not be instrumented.
private std::unique_ptr<XRayFunctionFilter> XRayFilter
Function filtering mechanism to determine whether a given function should be imbued with the XRay "always" or "never" attributes.
private std::unique_ptr<ProfileList> ProfList
ProfileList object that is used by the profile instrumentation to decide which entities should be instrumented.
private llvm::BumpPtrAllocator BumpAlloc
AST objects are never destructed; rather, all memory associated with the AST objects will be released when the ASTContext itself is destroyed.
private PartialDiagnostic::DiagStorageAllocator DiagAllocator
Allocator for partial diagnostics.
private std::unique_ptr<CXXABI> ABI
The current C++ ABI.
private const clang::LangASMap* AddrSpaceMap = nullptr
The logical -> physical address space map.
private bool AddrSpaceMapMangling
Address space map mangling must be used with language specific address spaces (e.g. OpenCL/CUDA)
private const clang::TargetInfo* Target = nullptr
private const clang::TargetInfo* AuxTarget = nullptr
private clang::PrintingPolicy PrintingPolicy
private std::unique_ptr<interp::Context> InterpContext
private std::unique_ptr<ParentMapContext> ParentMapCtx
private clang::DeclListNode* ListNodeFreeList = nullptr
Keeps track of the deallocated DeclListNodes for future reuse.
public clang::IdentifierTable& Idents
public clang::SelectorTable& Selectors
public Builtin::Context& BuiltinInfo
public const clang::TranslationUnitKind TUKind
public clang::DeclarationNameTable DeclarationNames
public IntrusiveRefCntPtr<clang::ExternalASTSource> ExternalSource
public clang::ASTMutationListener* Listener = nullptr
public struct CUDAConstantEvalContext CUDAConstantEvalCtx
public clang::RawCommentList Comments
All comments in this translation unit.
public bool CommentsLoaded = false
True if comments are already loaded from ExternalASTSource.
public llvm::DenseMap<const Decl*, const RawComment*> DeclRawComments
Raw comments are owned by Comments list. This mapping is populated lazily.
public llvm::DenseMap<const Decl*, const Decl*> RedeclChainComments
Raw comments are owned by Comments list. This mapping is populated lazily.
public llvm::DenseMap<const Decl*, const Decl*> CommentlessRedeclChains
Shall not contain declarations that have comments attached to any redeclaration in their chain.
public llvm::DenseMap<const Decl*, comments::FullComment*> ParsedComments
Mapping from declarations to parsed comments attached to any redeclaration.
private comments::CommandTraits CommentCommandTraits
public clang::CanQualType VoidTy
public clang::CanQualType BoolTy
public clang::CanQualType CharTy
public clang::CanQualType WCharTy
public clang::CanQualType WideCharTy
public clang::CanQualType WIntTy
public clang::CanQualType Char8Ty
public clang::CanQualType Char16Ty
public clang::CanQualType Char32Ty
public clang::CanQualType SignedCharTy
public clang::CanQualType ShortTy
public clang::CanQualType IntTy
public clang::CanQualType LongTy
public clang::CanQualType LongLongTy
public clang::CanQualType Int128Ty
public clang::CanQualType UnsignedCharTy
public clang::CanQualType UnsignedShortTy
public clang::CanQualType UnsignedIntTy
public clang::CanQualType UnsignedLongTy
public clang::CanQualType UnsignedLongLongTy
public clang::CanQualType UnsignedInt128Ty
public clang::CanQualType FloatTy
public clang::CanQualType DoubleTy
public clang::CanQualType LongDoubleTy
public clang::CanQualType Float128Ty
public clang::CanQualType Ibm128Ty
public clang::CanQualType ShortAccumTy
public clang::CanQualType AccumTy
public clang::CanQualType LongAccumTy
public clang::CanQualType UnsignedShortAccumTy
public clang::CanQualType UnsignedAccumTy
public clang::CanQualType UnsignedLongAccumTy
public clang::CanQualType ShortFractTy
public clang::CanQualType FractTy
public clang::CanQualType LongFractTy
public clang::CanQualType UnsignedShortFractTy
public clang::CanQualType UnsignedFractTy
public clang::CanQualType UnsignedLongFractTy
public clang::CanQualType SatShortAccumTy
public clang::CanQualType SatAccumTy
public clang::CanQualType SatLongAccumTy
public clang::CanQualType SatUnsignedShortAccumTy
public clang::CanQualType SatUnsignedAccumTy
public clang::CanQualType SatUnsignedLongAccumTy
public clang::CanQualType SatShortFractTy
public clang::CanQualType SatFractTy
public clang::CanQualType SatLongFractTy
public clang::CanQualType SatUnsignedShortFractTy
public clang::CanQualType SatUnsignedFractTy
public clang::CanQualType SatUnsignedLongFractTy
public clang::CanQualType HalfTy
public clang::CanQualType BFloat16Ty
public clang::CanQualType Float16Ty
public clang::CanQualType VoidPtrTy
public clang::CanQualType NullPtrTy
public clang::CanQualType DependentTy
public clang::CanQualType OverloadTy
public clang::CanQualType BoundMemberTy
public clang::CanQualType UnknownAnyTy
public clang::CanQualType BuiltinFnTy
public clang::CanQualType PseudoObjectTy
public clang::CanQualType ARCUnbridgedCastTy
public clang::CanQualType ObjCBuiltinIdTy
public clang::CanQualType ObjCBuiltinClassTy
public clang::CanQualType ObjCBuiltinSelTy
public clang::CanQualType ObjCBuiltinBoolTy
public clang::CanQualType OCLImage1dROTy
public clang::CanQualType OCLImage1dArrayROTy
public clang::CanQualType OCLImage1dBufferROTy
public clang::CanQualType OCLImage2dROTy
public clang::CanQualType OCLImage2dArrayROTy
public clang::CanQualType OCLImage2dDepthROTy
public clang::CanQualType OCLImage2dArrayDepthROTy
public clang::CanQualType OCLImage2dMSAAROTy
public clang::CanQualType OCLImage2dArrayMSAAROTy
public clang::CanQualType OCLImage2dMSAADepthROTy
public clang::CanQualType OCLImage2dArrayMSAADepthROTy
public clang::CanQualType OCLImage3dROTy
public clang::CanQualType OCLImage1dWOTy
public clang::CanQualType OCLImage1dArrayWOTy
public clang::CanQualType OCLImage1dBufferWOTy
public clang::CanQualType OCLImage2dWOTy
public clang::CanQualType OCLImage2dArrayWOTy
public clang::CanQualType OCLImage2dDepthWOTy
public clang::CanQualType OCLImage2dArrayDepthWOTy
public clang::CanQualType OCLImage2dMSAAWOTy
public clang::CanQualType OCLImage2dArrayMSAAWOTy
public clang::CanQualType OCLImage2dMSAADepthWOTy
public clang::CanQualType OCLImage2dArrayMSAADepthWOTy
public clang::CanQualType OCLImage3dWOTy
public clang::CanQualType OCLImage1dRWTy
public clang::CanQualType OCLImage1dArrayRWTy
public clang::CanQualType OCLImage1dBufferRWTy
public clang::CanQualType OCLImage2dRWTy
public clang::CanQualType OCLImage2dArrayRWTy
public clang::CanQualType OCLImage2dDepthRWTy
public clang::CanQualType OCLImage2dArrayDepthRWTy
public clang::CanQualType OCLImage2dMSAARWTy
public clang::CanQualType OCLImage2dArrayMSAARWTy
public clang::CanQualType OCLImage2dMSAADepthRWTy
public clang::CanQualType OCLImage2dArrayMSAADepthRWTy
public clang::CanQualType OCLImage3dRWTy
public clang::CanQualType OCLSamplerTy
public clang::CanQualType OCLEventTy
public clang::CanQualType OCLClkEventTy
public clang::CanQualType OCLQueueTy
public clang::CanQualType OCLReserveIDTy
public clang::CanQualType IncompleteMatrixIdxTy
public clang::CanQualType OMPArraySectionTy
public clang::CanQualType OMPArrayShapingTy
public clang::CanQualType OMPIteratorTy
public clang::CanQualType OCLIntelSubgroupAVCMcePayloadTy
public clang::CanQualType OCLIntelSubgroupAVCImePayloadTy
public clang::CanQualType OCLIntelSubgroupAVCRefPayloadTy
public clang::CanQualType OCLIntelSubgroupAVCSicPayloadTy
public clang::CanQualType OCLIntelSubgroupAVCMceResultTy
public clang::CanQualType OCLIntelSubgroupAVCImeResultTy
public clang::CanQualType OCLIntelSubgroupAVCRefResultTy
public clang::CanQualType OCLIntelSubgroupAVCSicResultTy
public clang::CanQualType OCLIntelSubgroupAVCImeResultSingleRefStreamoutTy
public clang::CanQualType OCLIntelSubgroupAVCImeResultDualRefStreamoutTy
public clang::CanQualType OCLIntelSubgroupAVCImeSingleRefStreaminTy
public clang::CanQualType OCLIntelSubgroupAVCImeDualRefStreaminTy
public clang::CanQualType SveInt8Ty
public clang::CanQualType SveInt16Ty
public clang::CanQualType SveInt32Ty
public clang::CanQualType SveInt64Ty
public clang::CanQualType SveUint8Ty
public clang::CanQualType SveUint16Ty
public clang::CanQualType SveUint32Ty
public clang::CanQualType SveUint64Ty
public clang::CanQualType SveFloat16Ty
public clang::CanQualType SveFloat32Ty
public clang::CanQualType SveFloat64Ty
public clang::CanQualType SveBFloat16Ty
public clang::CanQualType SveInt8x2Ty
public clang::CanQualType SveInt16x2Ty
public clang::CanQualType SveInt32x2Ty
public clang::CanQualType SveInt64x2Ty
public clang::CanQualType SveUint8x2Ty
public clang::CanQualType SveUint16x2Ty
public clang::CanQualType SveUint32x2Ty
public clang::CanQualType SveUint64x2Ty
public clang::CanQualType SveFloat16x2Ty
public clang::CanQualType SveFloat32x2Ty
public clang::CanQualType SveFloat64x2Ty
public clang::CanQualType SveBFloat16x2Ty
public clang::CanQualType SveInt8x3Ty
public clang::CanQualType SveInt16x3Ty
public clang::CanQualType SveInt32x3Ty
public clang::CanQualType SveInt64x3Ty
public clang::CanQualType SveUint8x3Ty
public clang::CanQualType SveUint16x3Ty
public clang::CanQualType SveUint32x3Ty
public clang::CanQualType SveUint64x3Ty
public clang::CanQualType SveFloat16x3Ty
public clang::CanQualType SveFloat32x3Ty
public clang::CanQualType SveFloat64x3Ty
public clang::CanQualType SveBFloat16x3Ty
public clang::CanQualType SveInt8x4Ty
public clang::CanQualType SveInt16x4Ty
public clang::CanQualType SveInt32x4Ty
public clang::CanQualType SveInt64x4Ty
public clang::CanQualType SveUint8x4Ty
public clang::CanQualType SveUint16x4Ty
public clang::CanQualType SveUint32x4Ty
public clang::CanQualType SveUint64x4Ty
public clang::CanQualType SveFloat16x4Ty
public clang::CanQualType SveFloat32x4Ty
public clang::CanQualType SveFloat64x4Ty
public clang::CanQualType SveBFloat16x4Ty
public clang::CanQualType SveBoolTy
public clang::CanQualType VectorQuadTy
public clang::CanQualType VectorPairTy
public clang::CanQualType RvvInt8mf8Ty
public clang::CanQualType RvvInt8mf4Ty
public clang::CanQualType RvvInt8mf2Ty
public clang::CanQualType RvvInt8m1Ty
public clang::CanQualType RvvInt8m2Ty
public clang::CanQualType RvvInt8m4Ty
public clang::CanQualType RvvInt8m8Ty
public clang::CanQualType RvvUint8mf8Ty
public clang::CanQualType RvvUint8mf4Ty
public clang::CanQualType RvvUint8mf2Ty
public clang::CanQualType RvvUint8m1Ty
public clang::CanQualType RvvUint8m2Ty
public clang::CanQualType RvvUint8m4Ty
public clang::CanQualType RvvUint8m8Ty
public clang::CanQualType RvvInt16mf4Ty
public clang::CanQualType RvvInt16mf2Ty
public clang::CanQualType RvvInt16m1Ty
public clang::CanQualType RvvInt16m2Ty
public clang::CanQualType RvvInt16m4Ty
public clang::CanQualType RvvInt16m8Ty
public clang::CanQualType RvvUint16mf4Ty
public clang::CanQualType RvvUint16mf2Ty
public clang::CanQualType RvvUint16m1Ty
public clang::CanQualType RvvUint16m2Ty
public clang::CanQualType RvvUint16m4Ty
public clang::CanQualType RvvUint16m8Ty
public clang::CanQualType RvvInt32mf2Ty
public clang::CanQualType RvvInt32m1Ty
public clang::CanQualType RvvInt32m2Ty
public clang::CanQualType RvvInt32m4Ty
public clang::CanQualType RvvInt32m8Ty
public clang::CanQualType RvvUint32mf2Ty
public clang::CanQualType RvvUint32m1Ty
public clang::CanQualType RvvUint32m2Ty
public clang::CanQualType RvvUint32m4Ty
public clang::CanQualType RvvUint32m8Ty
public clang::CanQualType RvvInt64m1Ty
public clang::CanQualType RvvInt64m2Ty
public clang::CanQualType RvvInt64m4Ty
public clang::CanQualType RvvInt64m8Ty
public clang::CanQualType RvvUint64m1Ty
public clang::CanQualType RvvUint64m2Ty
public clang::CanQualType RvvUint64m4Ty
public clang::CanQualType RvvUint64m8Ty
public clang::CanQualType RvvFloat16mf4Ty
public clang::CanQualType RvvFloat16mf2Ty
public clang::CanQualType RvvFloat16m1Ty
public clang::CanQualType RvvFloat16m2Ty
public clang::CanQualType RvvFloat16m4Ty
public clang::CanQualType RvvFloat16m8Ty
public clang::CanQualType RvvFloat32mf2Ty
public clang::CanQualType RvvFloat32m1Ty
public clang::CanQualType RvvFloat32m2Ty
public clang::CanQualType RvvFloat32m4Ty
public clang::CanQualType RvvFloat32m8Ty
public clang::CanQualType RvvFloat64m1Ty
public clang::CanQualType RvvFloat64m2Ty
public clang::CanQualType RvvFloat64m4Ty
public clang::CanQualType RvvFloat64m8Ty
public clang::CanQualType RvvBool1Ty
public clang::CanQualType RvvBool2Ty
public clang::CanQualType RvvBool4Ty
public clang::CanQualType RvvBool8Ty
public clang::CanQualType RvvBool16Ty
public clang::CanQualType RvvBool32Ty
public clang::CanQualType RvvBool64Ty
public clang::QualType AutoDeductTy
public clang::QualType AutoRRefDeductTy
public clang::Decl* VaListTagDecl = nullptr
public clang::TagDecl* MSGuidTagDecl = nullptr
public llvm::DenseSet<const VarDecl*> CUDADeviceVarODRUsedByHost
Keep track of CUDA/HIP device-side variables ODR-used by host code.
public llvm::DenseSet<const ValueDecl*> CUDAExternalDeviceDeclODRUsedByHost
Keep track of CUDA/HIP external kernels or device variables ODR-used by host code.
public clang::ComparisonCategories CompCategories
Types and expressions required to build C++2a three-way comparisons using operator < =>, including the values return by builtin < => operators.
public unsigned int NumImplicitDefaultConstructors = 0
The number of implicitly-declared default constructors.
public unsigned int NumImplicitDefaultConstructorsDeclared = 0
The number of implicitly-declared default constructors for which declarations were built.
public unsigned int NumImplicitCopyConstructors = 0
The number of implicitly-declared copy constructors.
public unsigned int NumImplicitCopyConstructorsDeclared = 0
The number of implicitly-declared copy constructors for which declarations were built.
public unsigned int NumImplicitMoveConstructors = 0
The number of implicitly-declared move constructors.
public unsigned int NumImplicitMoveConstructorsDeclared = 0
The number of implicitly-declared move constructors for which declarations were built.
public unsigned int NumImplicitCopyAssignmentOperators = 0
The number of implicitly-declared copy assignment operators.
public unsigned int NumImplicitCopyAssignmentOperatorsDeclared = 0
The number of implicitly-declared copy assignment operators for which declarations were built.
public unsigned int NumImplicitMoveAssignmentOperators = 0
The number of implicitly-declared move assignment operators.
public unsigned int NumImplicitMoveAssignmentOperatorsDeclared = 0
The number of implicitly-declared move assignment operators for which declarations were built.
public unsigned int NumImplicitDestructors = 0
The number of implicitly-declared destructors.
public unsigned int NumImplicitDestructorsDeclared = 0
The number of implicitly-declared destructors for which declarations were built.
private clang::ASTContext:: DeallocationFunctionsAndArguments Deallocations
private llvm::PointerIntPair<StoredDeclsMap*, 1> LastSDM
private std::vector<Decl*> TraversalScope
private std::unique_ptr<VTableContextBase> VTContext
public llvm::StringMap<SectionInfo> SectionInfos
private SmallVector<std::unique_ptr<OMPTraitInfo>, 4> OMPTraitInfoVector
All OMPTraitInfo objects live in this collection, one per `pragma omp [begin] declare variant` directive.
private static const unsigned int ConstantArrayTypesLog2InitSize = 8
private static const unsigned int GeneralTypesLog2InitSize = 9
private static const unsigned int FunctionProtoTypesLog2InitSize = 12

Method Overview

Methods

ASTContext(const clang::ASTContext&)

Declared at: clang/include/clang/AST/ASTContext.h:1180

Parameters

const clang::ASTContext&

ASTContext(clang::LangOptions& LOpts,
           clang::SourceManager& SM,
           clang::IdentifierTable& idents,
           clang::SelectorTable& sels,
           Builtin::Context& builtins,
           clang::TranslationUnitKind TUKind)

Declared at: clang/include/clang/AST/ASTContext.h:1177

Parameters

clang::LangOptions& LOpts
clang::SourceManager& SM
clang::IdentifierTable& idents
clang::SelectorTable& sels
Builtin::Context& builtins
clang::TranslationUnitKind TUKind

void AddDeallocation(void (*)(void*) Callback,
                     void* Data) const

Description

Add a deallocation callback that will be invoked when the ASTContext is destroyed.

Declared at: clang/include/clang/AST/ASTContext.h:3018

Parameters

void (*)(void*) Callback
A callback function that will be invoked on destruction.
void* Data
Pointer data that will be provided to the callback function when it is called.

template <typename T>
T* Allocate(size_t Num = 1) const

Declared at: clang/include/clang/AST/ASTContext.h:736

Templates

T

Parameters

size_t Num = 1

void* Allocate(size_t Size,
               unsigned int Align = 8) const

Declared at: clang/include/clang/AST/ASTContext.h:733

Parameters

size_t Size
unsigned int Align = 8

clang::DeclListNode* AllocateDeclListNode(
    clang::NamedDecl* ND)

Description

Allocates a \c DeclListNode or returns one from the \c ListNodeFreeList pool.

Declared at: clang/include/clang/AST/ASTContext.h:743

Parameters

clang::NamedDecl* ND

bool AnyObjCImplementation()

Description

Return true if there is at least one @ implementation in the TU.

Declared at: clang/include/clang/AST/ASTContext.h:2958

bool AtomicUsesUnsupportedLibcall(
    const clang::AtomicExpr* E) const

Declared at: clang/include/clang/AST/ASTContext.h:788

Parameters

const clang::AtomicExpr* E

bool BlockRequiresCopying(clang::QualType Ty,
                          const clang::VarDecl* D)

Description

Returns true iff we need copy/dispose helpers for the given type.

Declared at: clang/include/clang/AST/ASTContext.h:1421

Parameters

clang::QualType Ty
const clang::VarDecl* D

void CollectInheritedProtocols(
    const clang::Decl* CDecl,
    llvm::SmallPtrSet<ObjCProtocolDecl*, 8>&
        Protocols)

Declared at: clang/include/clang/AST/ASTContext.h:2498

Parameters

const clang::Decl* CDecl
llvm::SmallPtrSet<ObjCProtocolDecl*, 8>& Protocols

unsigned int CountNonClassIvars(
    const clang::ObjCInterfaceDecl* OI) const

Declared at: clang/include/clang/AST/ASTContext.h:2497

Parameters

const clang::ObjCInterfaceDecl* OI

clang::TypeSourceInfo* CreateTypeSourceInfo(
    clang::QualType T,
    unsigned int Size = 0) const

Description

Allocate an uninitialized TypeSourceInfo. The caller should initialize the memory held by TypeSourceInfo using the TypeLoc wrappers.

Declared at: clang/include/clang/AST/ASTContext.h:3002

Parameters

clang::QualType T
the type that will be the basis for type source info. This type should refer to how the declarator was written in source code, not to what type semantic analysis resolved the declarator to.
unsigned int Size = 0
the size of the type info to create, or 0 if the size should be calculated based on the type.

void Deallocate(void* Ptr) const

Declared at: clang/include/clang/AST/ASTContext.h:739

Parameters

void* Ptr

void DeallocateDeclListNode(
    clang::DeclListNode* N)

Description

Deallcates a \c DeclListNode by returning it to the \c ListNodeFreeList pool.

Declared at: clang/include/clang/AST/ASTContext.h:754

Parameters

clang::DeclListNode* N

bool DeclMustBeEmitted(const clang::Decl* D)

Description

Determines if the decl can be CodeGen'ed or deserialized from PCH lazily, only when used; this is only relevant for function or file scoped var definitions.

Declared at: clang/include/clang/AST/ASTContext.h:3038

Parameters

const clang::Decl* D

Returns

true if the function/var must be CodeGen'ed/deserialized even if it is not used.

clang::QualType DecodeTypeStr(
    const char*& Str,
    const clang::ASTContext& Context,
    ASTContext::GetBuiltinTypeError& Error,
    bool& RequireICE,
    bool AllowTypeModifiers) const

Declared at: clang/include/clang/AST/ASTContext.h:2222

Parameters

const char*& Str
const clang::ASTContext& Context
ASTContext::GetBuiltinTypeError& Error
bool& RequireICE
bool AllowTypeModifiers

void DeepCollectObjCIvars(
    const clang::ObjCInterfaceDecl* OI,
    bool leafClass,
    SmallVectorImpl<const clang::ObjCIvarDecl*>&
        Ivars) const

Declared at: clang/include/clang/AST/ASTContext.h:2494

Parameters

const clang::ObjCInterfaceDecl* OI
bool leafClass
SmallVectorImpl<const clang::ObjCIvarDecl*>& Ivars

void DumpRecordLayout(const clang::RecordDecl* RD,
                      llvm::raw_ostream& OS,
                      bool Simple = false) const

Declared at: clang/include/clang/AST/ASTContext.h:2426

Parameters

const clang::RecordDecl* RD
llvm::raw_ostream& OS
bool Simple = false

clang::QualType GetBuiltinType(
    unsigned int ID,
    clang::ASTContext::GetBuiltinTypeError& Error,
    unsigned int* IntegerConstantArgs =
        nullptr) const

Description

Return the type for the specified builtin. If \p IntegerConstantArgs is non-null, it is filled in with a bitmask of arguments to the builtin that are required to be integer constant expressions.

Declared at: clang/include/clang/AST/ASTContext.h:2231

Parameters

unsigned int ID
clang::ASTContext::GetBuiltinTypeError& Error
unsigned int* IntegerConstantArgs = nullptr

clang::GVALinkage GetGVALinkageForFunction(
    const clang::FunctionDecl* FD) const

Declared at: clang/include/clang/AST/ASTContext.h:3029

Parameters

const clang::FunctionDecl* FD

clang::GVALinkage GetGVALinkageForVariable(
    const clang::VarDecl* VD)

Declared at: clang/include/clang/AST/ASTContext.h:3030

Parameters

const clang::VarDecl* VD

void InitBuiltinType(clang::CanQualType& R,
                     BuiltinType::Kind K)

Declared at: clang/include/clang/AST/ASTContext.h:3169

Parameters

clang::CanQualType& R
BuiltinType::Kind K

void InitBuiltinTypes(
    const clang::TargetInfo& Target,
    const clang::TargetInfo* AuxTarget = nullptr)

Description

Initialize built-in types. This routine may only be invoked once for a given ASTContext object. It is normally invoked after ASTContext construction.

Declared at: clang/include/clang/AST/ASTContext.h:3165

Parameters

const clang::TargetInfo& Target
The target
const clang::TargetInfo* AuxTarget = nullptr

llvm::APSInt MakeIntValue(
    uint64_t Value,
    clang::QualType Type) const

Description

Make an APSInt of the appropriate width and signedness for the given \p Value and integer \p Type.

Declared at: clang/include/clang/AST/ASTContext.h:2936

Parameters

uint64_t Value
clang::QualType Type

bool ObjCMethodsAreEqual(
    const clang::ObjCMethodDecl* MethodDecl,
    const clang::ObjCMethodDecl* MethodImp)

Declared at: clang/include/clang/AST/ASTContext.h:2590

Parameters

const clang::ObjCMethodDecl* MethodDecl
const clang::ObjCMethodDecl* MethodImp

bool ObjCObjectAdoptsQTypeProtocols(
    clang::QualType QT,
    clang::ObjCInterfaceDecl* Decl)

Declared at: clang/include/clang/AST/ASTContext.h:1702

Parameters

clang::QualType QT
clang::ObjCInterfaceDecl* Decl

bool ObjCQualifiedClassTypesAreCompatible(
    const clang::ObjCObjectPointerType* LHS,
    const clang::ObjCObjectPointerType* RHS)

Declared at: clang/include/clang/AST/ASTContext.h:2838

Parameters

const clang::ObjCObjectPointerType* LHS
const clang::ObjCObjectPointerType* RHS

bool ObjCQualifiedIdTypesAreCompatible(
    const clang::ObjCObjectPointerType* LHS,
    const clang::ObjCObjectPointerType* RHS,
    bool ForCompare)

Declared at: clang/include/clang/AST/ASTContext.h:2834

Parameters

const clang::ObjCObjectPointerType* LHS
const clang::ObjCObjectPointerType* RHS
bool ForCompare

void PrintStats() const

Declared at: clang/include/clang/AST/ASTContext.h:1210

bool ProtocolCompatibleWithProtocol(
    clang::ObjCProtocolDecl* lProto,
    clang::ObjCProtocolDecl* rProto) const

Declared at: clang/include/clang/AST/ASTContext.h:2023

Parameters

clang::ObjCProtocolDecl* lProto
clang::ObjCProtocolDecl* rProto

bool QIdProtocolsAdoptObjCObjectProtocols(
    clang::QualType QT,
    clang::ObjCInterfaceDecl* IDecl)

Description

QIdProtocolsAdoptObjCObjectProtocols - Checks that protocols in QT's qualified-id protocol list adopt all protocols in IDecl's list of protocols.

Declared at: clang/include/clang/AST/ASTContext.h:1707

Parameters

clang::QualType QT
clang::ObjCInterfaceDecl* IDecl

void ReleaseDeclContextMaps()

Declared at: clang/include/clang/AST/ASTContext.h:3284

void ResetObjCLayout(
    const clang::ObjCContainerDecl* CD)

Declared at: clang/include/clang/AST/ASTContext.h:2894

Parameters

const clang::ObjCContainerDecl* CD

void UnwrapSimilarArrayTypes(
    clang::QualType& T1,
    clang::QualType& T2,
    bool AllowPiMismatch = true)

Declared at: clang/include/clang/AST/ASTContext.h:2595

Parameters

clang::QualType& T1
clang::QualType& T2
bool AllowPiMismatch = true

bool UnwrapSimilarTypes(
    clang::QualType& T1,
    clang::QualType& T2,
    bool AllowPiMismatch = true)

Declared at: clang/include/clang/AST/ASTContext.h:2593

Parameters

clang::QualType& T1
clang::QualType& T2
bool AllowPiMismatch = true

void addComment(const clang::RawComment& RC)

Declared at: clang/include/clang/AST/ASTContext.h:873

Parameters

const clang::RawComment& RC

void addCopyConstructorForExceptionObject(
    clang::CXXRecordDecl* RD,
    clang::CXXConstructorDecl* CD)

Declared at: clang/include/clang/AST/ASTContext.h:3049

Parameters

clang::CXXRecordDecl* RD
clang::CXXConstructorDecl* CD

void addDeclaratorForUnnamedTagDecl(
    clang::TagDecl* TD,
    clang::DeclaratorDecl* DD)

Declared at: clang/include/clang/AST/ASTContext.h:3056

Parameters

clang::TagDecl* TD
clang::DeclaratorDecl* DD

template <typename T>
void addDestruction(T* Ptr) const

Description

If T isn't trivially destructible, calls AddDeallocation to register it for destruction.

Declared at: clang/include/clang/AST/ASTContext.h:3022

Templates

T

Parameters

T* Ptr

void addLazyModuleInitializers(
    clang::Module* M,
    ArrayRef<uint32_t> IDs)

Declared at: clang/include/clang/AST/ASTContext.h:1077

Parameters

clang::Module* M
ArrayRef<uint32_t> IDs

void addModuleInitializer(clang::Module* M,
                          clang::Decl* Init)

Description

Add a declaration to the list of declarations that are initialized for a module. This will typically be a global variable (with internal linkage) that runs module initializers, such as the iostream initializer, or an ImportDecl nominating another module that has initializers.

Declared at: clang/include/clang/AST/ASTContext.h:1075

Parameters

clang::Module* M
clang::Decl* Init

void addOverriddenMethod(
    const clang::CXXMethodDecl* Method,
    const clang::CXXMethodDecl* Overridden)

Description

Note that the given C++ \p Method overrides the given \p Overridden method.

Declared at: clang/include/clang/AST/ASTContext.h:1022

Parameters

const clang::CXXMethodDecl* Method
const clang::CXXMethodDecl* Overridden

void addTranslationUnitDecl()

Declared at: clang/include/clang/AST/ASTContext.h:1091

void addTypedefNameForUnnamedTagDecl(
    clang::TagDecl* TD,
    clang::TypedefNameDecl* TND)

Declared at: clang/include/clang/AST/ASTContext.h:3052

Parameters

clang::TagDecl* TD
clang::TypedefNameDecl* TND

void addedLocalImportDecl(
    clang::ImportDecl* Import)

Description

Notify the AST context that a new import declaration has been parsed or implicitly created within this translation unit.

Declared at: clang/include/clang/AST/ASTContext.h:1038

Parameters

clang::ImportDecl* Import

bool addressSpaceMapManglingFor(
    clang::LangAS AS) const

Declared at: clang/include/clang/AST/ASTContext.h:2802

Parameters

clang::LangAS AS

void adjustDeducedFunctionResultType(
    clang::FunctionDecl* FD,
    clang::QualType ResultType)

Description

Change the result type of a function type once it is deduced.

Declared at: clang/include/clang/AST/ASTContext.h:1312

Parameters

clang::FunctionDecl* FD
clang::QualType ResultType

void adjustExceptionSpec(
    clang::FunctionDecl* FD,
    const FunctionProtoType::ExceptionSpecInfo&
        ESI,
    bool AsWritten = false)

Description

Change the exception specification on a function once it is delay-parsed, instantiated, or computed.

Declared at: clang/include/clang/AST/ASTContext.h:1327

Parameters

clang::FunctionDecl* FD
const FunctionProtoType::ExceptionSpecInfo& ESI
bool AsWritten = false

const clang::FunctionType* adjustFunctionType(
    const clang::FunctionType* Fn,
    FunctionType::ExtInfo EInfo)

Description

Change the ExtInfo on a function type.

Declared at: clang/include/clang/AST/ASTContext.h:1305

Parameters

const clang::FunctionType* Fn
FunctionType::ExtInfo EInfo

void adjustObjCTypeParamBoundType(
    const clang::ObjCTypeParamDecl* Orig,
    clang::ObjCTypeParamDecl* New) const

Declared at: clang/include/clang/AST/ASTContext.h:1699

Parameters

const clang::ObjCTypeParamDecl* Orig
clang::ObjCTypeParamDecl* New

clang::QualType adjustStringLiteralBaseType(
    clang::QualType StrLTy) const

Declared at: clang/include/clang/AST/ASTContext.h:1562

Parameters

clang::QualType StrLTy

clang::QualType applyObjCProtocolQualifiers(
    clang::QualType type,
    ArrayRef<clang::ObjCProtocolDecl*> protocols,
    bool& hasError,
    bool allowOnPointerType = false) const

Description

Apply Objective-C protocol qualifiers to the given type.

Declared at: clang/include/clang/AST/ASTContext.h:1262

Parameters

clang::QualType type
ArrayRef<clang::ObjCProtocolDecl*> protocols
bool& hasError
bool allowOnPointerType = false
specifies if we can apply protocol qualifiers on ObjCObjectPointerType. It can be set to true when constructing the canonical type of a Objective-C type parameter.

clang::QualType areCommonBaseCompatible(
    const clang::ObjCObjectPointerType* LHSOPT,
    const clang::ObjCObjectPointerType* RHSOPT)

Declared at: clang/include/clang/AST/ASTContext.h:2851

Parameters

const clang::ObjCObjectPointerType* LHSOPT
const clang::ObjCObjectPointerType* RHSOPT

bool areComparableObjCPointerTypes(
    clang::QualType LHS,
    clang::QualType RHS)

Declared at: clang/include/clang/AST/ASTContext.h:2850

Parameters

clang::QualType LHS
clang::QualType RHS

bool areCompatibleSveTypes(
    clang::QualType FirstType,
    clang::QualType SecondType)

Description

Return true if the given types are an SVE builtin and a VectorType that is a fixed-length representation of the SVE builtin for a specific vector-length.

Declared at: clang/include/clang/AST/ASTContext.h:2261

Parameters

clang::QualType FirstType
clang::QualType SecondType

bool areCompatibleVectorTypes(
    clang::QualType FirstVec,
    clang::QualType SecondVec)

Description

Return true if the given vector types are of the same unqualified type or if they are equivalent to the same GCC vector type.

Declared at: clang/include/clang/AST/ASTContext.h:2256

Parameters

clang::QualType FirstVec
clang::QualType SecondVec

bool areLaxCompatibleSveTypes(
    clang::QualType FirstType,
    clang::QualType SecondType)

Description

Return true if the given vector types are lax-compatible SVE vector types, false otherwise.

Declared at: clang/include/clang/AST/ASTContext.h:2265

Parameters

clang::QualType FirstType
clang::QualType SecondType

void attachCommentsToJustParsedDecls(
    ArrayRef<clang::Decl*> Decls,
    const clang::Preprocessor* PP)

Description

Searches existing comments for doc comments that should be attached to \p Decls. If any doc comment is found, it is parsed. Requirement: All \p Decls are in the same file. If the last comment in the file is already attached we assume there are not comments left to be attached to \p Decls.

Declared at: clang/include/clang/AST/ASTContext.h:891

Parameters

ArrayRef<clang::Decl*> Decls
const clang::Preprocessor* PP

clang::BuiltinTemplateDecl*
buildBuiltinTemplateDecl(
    clang::BuiltinTemplateKind BTK,
    const clang::IdentifierInfo* II) const

Declared at: clang/include/clang/AST/ASTContext.h:1213

Parameters

clang::BuiltinTemplateKind BTK
const clang::IdentifierInfo* II

clang::RecordDecl* buildImplicitRecord(
    llvm::StringRef Name,
    RecordDecl::TagKind TK = TTK_Struct) const

Description

Create a new implicit TU-level CXXRecordDecl or RecordDecl declaration.

Declared at: clang/include/clang/AST/ASTContext.h:1218

Parameters

llvm::StringRef Name
RecordDecl::TagKind TK = TTK_Struct

clang::TypedefDecl* buildImplicitTypedef(
    clang::QualType T,
    llvm::StringRef Name) const

Description

Create a new implicit TU-level typedef declaration.

Declared at: clang/include/clang/AST/ASTContext.h:1222

Parameters

clang::QualType T
llvm::StringRef Name

void cacheRawCommentForDecl(
    const clang::Decl& OriginalD,
    const clang::RawComment& Comment) const

Description

Attaches \p Comment to \p OriginalD and to its redeclaration chain and removes the redeclaration chain from the set of commentless chains. Don't do anything if a comment has already been attached to \p OriginalD or its redeclaration chain.

Declared at: clang/include/clang/AST/ASTContext.h:856

Parameters

const clang::Decl& OriginalD
const clang::RawComment& Comment

bool canAssignObjCInterfaces(
    const clang::ObjCObjectType* LHS,
    const clang::ObjCObjectType* RHS)

Declared at: clang/include/clang/AST/ASTContext.h:2844

Parameters

const clang::ObjCObjectType* LHS
const clang::ObjCObjectType* RHS

bool canAssignObjCInterfaces(
    const clang::ObjCObjectPointerType* LHSOPT,
    const clang::ObjCObjectPointerType* RHSOPT)

Declared at: clang/include/clang/AST/ASTContext.h:2842

Parameters

const clang::ObjCObjectPointerType* LHSOPT
const clang::ObjCObjectPointerType* RHSOPT

bool canAssignObjCInterfacesInBlockPointer(
    const clang::ObjCObjectPointerType* LHSOPT,
    const clang::ObjCObjectPointerType* RHSOPT,
    bool BlockReturnType)

Declared at: clang/include/clang/AST/ASTContext.h:2846

Parameters

const clang::ObjCObjectPointerType* LHSOPT
const clang::ObjCObjectPointerType* RHSOPT
bool BlockReturnType

bool canBindObjCObjectType(clang::QualType To,
                           clang::QualType From)

Declared at: clang/include/clang/AST/ASTContext.h:2853

Parameters

clang::QualType To
clang::QualType From

bool canBuiltinBeRedeclared(
    const clang::FunctionDecl*) const

Description

Return whether a declaration to a builtin is allowed to be overloaded/redeclared.

Declared at: clang/include/clang/AST/ASTContext.h:2126

Parameters

const clang::FunctionDecl*

void cleanup()

Declared at: clang/include/clang/AST/ASTContext.h:727

comments::FullComment* cloneFullComment(
    comments::FullComment* FC,
    const clang::Decl* D) const

Declared at: clang/include/clang/AST/ASTContext.h:907

Parameters

comments::FullComment* FC
const clang::Decl* D

clang::CXXABI* createCXXABI(
    const clang::TargetInfo& T)

Declared at: clang/include/clang/AST/ASTContext.h:640

Parameters

const clang::TargetInfo& T

clang::MangleContext* createDeviceMangleContext(
    const clang::TargetInfo& T)

Description

Creates a device mangle context to correctly mangle lambdas in a mixed architecture compile by setting the lambda mangling number source to the DeviceLambdaManglingNumber. Currently this asserts that the TargetInfo (from the AuxTargetInfo) is a an itanium target.

Declared at: clang/include/clang/AST/ASTContext.h:2492

Parameters

const clang::TargetInfo& T

clang::MangleContext* createMangleContext(
    const clang::TargetInfo* T = nullptr)

Description

If \p T is null pointer, assume the target in ASTContext.

Declared at: clang/include/clang/AST/ASTContext.h:2486

Parameters

const clang::TargetInfo* T = nullptr

std::unique_ptr<MangleNumberingContext>
createMangleNumberingContext() const

Declared at: clang/include/clang/AST/ASTContext.h:3074

void deduplicateMergedDefinitonsFor(
    clang::NamedDecl* ND)

Description

Clean up the merged definition list. Call this if you might have added duplicates into the list.

Declared at: clang/include/clang/AST/ASTContext.h:1065

Parameters

clang::NamedDecl* ND

void eraseDeclAttrs(const clang::Decl* D)

Description

Erase the attributes corresponding to the given declaration.

Declared at: clang/include/clang/AST/ASTContext.h:959

Parameters

const clang::Decl* D

clang::ParsedTargetAttr filterFunctionTargetAttrs(
    const clang::TargetAttr* TD) const

Description

Parses the target attributes passed in, and returns only the ones that are valid feature names.

Declared at: clang/include/clang/AST/ASTContext.h:3105

Parameters

const clang::TargetAttr* TD

void forEachMultiversionedFunctionVersion(
    const clang::FunctionDecl* FD,
    llvm::function_ref<void(FunctionDecl*)> Pred)
    const

Description

Visits all versions of a multiversioned function with the passed predicate.

Declared at: clang/include/clang/AST/ASTContext.h:3042

Parameters

const clang::FunctionDecl* FD
llvm::function_ref<void(FunctionDecl*)> Pred

size_t getASTAllocatedMemory() const

Description

Return the total amount of physical memory allocated for representing AST nodes and type information.

Declared at: clang/include/clang/AST/ASTContext.h:761

clang::ASTMutationListener*
getASTMutationListener() const

Description

Retrieve a pointer to the AST mutation listener associated with this AST context, if any.

Declared at: clang/include/clang/AST/ASTContext.h:1208

const clang::ASTRecordLayout&
getASTObjCImplementationLayout(
    const clang::ObjCImplementationDecl* D) const

Description

Get or compute information about the layout of the specified Objective-C implementation. This may differ from the interface if synthesized ivars are present.

Declared at: clang/include/clang/AST/ASTContext.h:2434

Parameters

const clang::ObjCImplementationDecl* D

const clang::ASTRecordLayout&
getASTObjCInterfaceLayout(
    const clang::ObjCInterfaceDecl* D) const

Description

Get or compute information about the layout of the specified Objective-C interface.

Declared at: clang/include/clang/AST/ASTContext.h:2423

Parameters

const clang::ObjCInterfaceDecl* D

const clang::ASTRecordLayout& getASTRecordLayout(
    const clang::RecordDecl* D) const

Description

Get or compute information about the layout of the specified record (struct/union/class) \p D, which indicates its size and field position information.

Declared at: clang/include/clang/AST/ASTContext.h:2419

Parameters

const clang::RecordDecl* D

clang::QualType getAddrSpaceQualType(
    clang::QualType T,
    clang::LangAS AddressSpace) const

Description

Return the uniqued reference to the type for an address space qualified type with the specified type and address space. The resulting type has a union of the qualifiers from T and the address space. If T already has an address space specifier, it is silently replaced.

Declared at: clang/include/clang/AST/ASTContext.h:1249

Parameters

clang::QualType T
clang::LangAS AddressSpace

clang::QualType getAdjustedParameterType(
    clang::QualType T) const

Description

Perform adjustment on the parameter type of a function. This routine adjusts the given parameter type @p T to the actual parameter type used by semantic analysis (C99 6.7.5.3p[7,8], C++ [dcl.fct]p3). The adjusted parameter type is returned.

Declared at: clang/include/clang/AST/ASTContext.h:2738

Parameters

clang::QualType T

clang::QualType getAdjustedType(
    clang::QualType Orig,
    clang::QualType New) const

Description

Return the uniqued reference to a type adjusted from the original type to a new type.

Declared at: clang/include/clang/AST/ASTContext.h:1356

Parameters

clang::QualType Orig
clang::QualType New

clang::CanQualType getAdjustedType(
    clang::CanQualType Orig,
    clang::CanQualType New) const

Declared at: clang/include/clang/AST/ASTContext.h:1357

Parameters

clang::CanQualType Orig
clang::CanQualType New

unsigned int getAlignOfGlobalVar(
    clang::QualType T) const

Description

Return the alignment in bits that should be given to a global variable with type \p T.

Declared at: clang/include/clang/AST/ASTContext.h:2393

Parameters

clang::QualType T

clang::CharUnits getAlignOfGlobalVarInChars(
    clang::QualType T) const

Description

Return the alignment in characters that should be given to a global variable with type \p T.

Declared at: clang/include/clang/AST/ASTContext.h:2397

Parameters

clang::QualType T

llvm::BumpPtrAllocator& getAllocator() const

Declared at: clang/include/clang/AST/ASTContext.h:729

clang::QualType getArrayDecayedType(
    clang::QualType T) const

Description

Return the properly qualified result of decaying the specified array type to a pointer. This operation is non-trivial when handling typedefs etc. The canonical type of \p T must be an array type, this returns a pointer to a properly qualified element of the array. See C99 6.7.5.3p7 and C99 6.3.2.1p3.

Declared at: clang/include/clang/AST/ASTContext.h:2755

Parameters

clang::QualType T

const clang::ArrayType* getAsArrayType(
    clang::QualType T) const

Description

Type Query functions. If the type is an instance of the specified class, return the Type pointer for the underlying maximally pretty type. This is a member of ASTContext because this may need to do some amount of canonicalization, e.g. to move type qualifiers into the element type.

Declared at: clang/include/clang/AST/ASTContext.h:2706

Parameters

clang::QualType T

const clang::ConstantArrayType*
getAsConstantArrayType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2707

Parameters

clang::QualType T

const clang::DependentSizedArrayType*
getAsDependentSizedArrayType(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2716

Parameters

clang::QualType T

const clang::IncompleteArrayType*
getAsIncompleteArrayType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2713

Parameters

clang::QualType T

const clang::VariableArrayType*
getAsVariableArrayType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2710

Parameters

clang::QualType T

clang::TemplateName getAssumedTemplateName(
    clang::DeclarationName Name) const

Declared at: clang/include/clang/AST/ASTContext.h:2190

Parameters

clang::DeclarationName Name

clang::QualType getAtomicType(
    clang::QualType T) const

Description

Return the uniqued reference to the atomic type for the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1372

Parameters

clang::QualType T

clang::QualType getAttributedType(
    attr::Kind attrKind,
    clang::QualType modifiedType,
    clang::QualType equivalentType) const

Declared at: clang/include/clang/AST/ASTContext.h:1610

Parameters

attr::Kind attrKind
clang::QualType modifiedType
clang::QualType equivalentType

clang::QualType getAutoDeductType() const

Description

C++11 deduction pattern for 'auto' type.

Declared at: clang/include/clang/AST/ASTContext.h:1733

clang::QualType getAutoRRefDeductType() const

Description

C++11 deduction pattern for 'auto & & ' type.

Declared at: clang/include/clang/AST/ASTContext.h:1736

clang::QualType getAutoType(
    clang::QualType DeducedType,
    clang::AutoTypeKeyword Keyword,
    bool IsDependent,
    bool IsPack = false,
    clang::ConceptDecl* TypeConstraintConcept =
        nullptr,
    ArrayRef<clang::TemplateArgument>
        TypeConstraintArgs = {}) const

Description

C++11 deduced auto type.

Declared at: clang/include/clang/AST/ASTContext.h:1727

Parameters

clang::QualType DeducedType
clang::AutoTypeKeyword Keyword
bool IsDependent
bool IsPack = false
clang::ConceptDecl* TypeConstraintConcept = nullptr
ArrayRef<clang::TemplateArgument> TypeConstraintArgs = {}

clang::QualType getAutoTypeInternal(
    clang::QualType DeducedType,
    clang::AutoTypeKeyword Keyword,
    bool IsDependent,
    bool IsPack = false,
    clang::ConceptDecl* TypeConstraintConcept =
        nullptr,
    ArrayRef<clang::TemplateArgument>
        TypeConstraintArgs = {},
    bool IsCanon = false) const

Declared at: clang/include/clang/AST/ASTContext.h:1570

Parameters

clang::QualType DeducedType
clang::AutoTypeKeyword Keyword
bool IsDependent
bool IsPack = false
clang::ConceptDecl* TypeConstraintConcept = nullptr
ArrayRef<clang::TemplateArgument> TypeConstraintArgs = {}
bool IsCanon = false

const clang::TargetInfo* getAuxTargetInfo() const

Declared at: clang/include/clang/AST/ASTContext.h:773

clang::TypedefDecl* getBOOLDecl() const

Description

Retrieve declaration of 'BOOL' typedef

Declared at: clang/include/clang/AST/ASTContext.h:2073

clang::QualType getBOOLType() const

Description

type of 'BOOL' type.

Declared at: clang/include/clang/AST/ASTContext.h:2083

clang::QualType getBTFTagAttributedType(
    const clang::BTFTypeTagAttr* BTFAttr,
    clang::QualType Wrapped)

Declared at: clang/include/clang/AST/ASTContext.h:1613

Parameters

const clang::BTFTypeTagAttr* BTFAttr
clang::QualType Wrapped

clang::QualType getBaseElementType(
    clang::QualType QT) const

Description

Return the innermost element type of a type (which needn't actually be an array type).

Declared at: clang/include/clang/AST/ASTContext.h:2728

Parameters

clang::QualType QT

clang::QualType getBaseElementType(
    const clang::ArrayType* VAT) const

Description

Return the innermost element type of an array type. For example, will return "int" for int[m][n]

Declared at: clang/include/clang/AST/ASTContext.h:2724

Parameters

const clang::ArrayType* VAT

clang::QualType getBitIntType(
    bool Unsigned,
    unsigned int NumBits) const

Description

Return a bit-precise integer type with the specified signedness and bit count.

Declared at: clang/include/clang/AST/ASTContext.h:1390

Parameters

bool Unsigned
unsigned int NumBits

clang::QualType getBlockDescriptorExtendedType()
    const

Description

Gets the struct used to keep track of the extended descriptor for pointer to blocks.

Declared at: clang/include/clang/AST/ASTContext.h:1398

clang::QualType getBlockDescriptorType() const

Description

Gets the struct used to keep track of the descriptor for pointer to blocks.

Declared at: clang/include/clang/AST/ASTContext.h:1380

clang::QualType getBlockPointerType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a block of the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1376

Parameters

clang::QualType T

clang::BlockVarCopyInit getBlockVarCopyInit(
    const clang::VarDecl* VD) const

Description

Get the copy initialization expression of the VarDecl \p VD, or nullptr if none exists.

Declared at: clang/include/clang/AST/ASTContext.h:2989

Parameters

const clang::VarDecl* VD

clang::IdentifierInfo* getBoolName() const

Description

Retrieve the identifier 'bool'.

Declared at: clang/include/clang/AST/ASTContext.h:1903

clang::TypedefDecl* getBuiltinMSVaListDecl() const

Description

Retrieve the C type declaration corresponding to the predefined\c __builtin_ms_va_list type.

Declared at: clang/include/clang/AST/ASTContext.h:2108

clang::QualType getBuiltinMSVaListType() const

Description

Retrieve the type of the \c __builtin_ms_va_list type.

Declared at: clang/include/clang/AST/ASTContext.h:2111

clang::TypedefDecl* getBuiltinVaListDecl() const

Description

Retrieve the C type declaration corresponding to the predefined\c __builtin_va_list type.

Declared at: clang/include/clang/AST/ASTContext.h:2094

clang::QualType getBuiltinVaListType() const

Description

Retrieve the type of the \c __builtin_va_list type.

Declared at: clang/include/clang/AST/ASTContext.h:2097

clang::ASTContext::BuiltinVectorTypeInfo
getBuiltinVectorTypeInfo(
    const clang::BuiltinType* VecTy) const

Description

Returns the element type, element count and number of vectors (in case of tuple) for a builtin vector type.

Declared at: clang/include/clang/AST/ASTContext.h:1495

Parameters

const clang::BuiltinType* VecTy

bool getByrefLifetime(
    clang::QualType Ty,
    Qualifiers::ObjCLifetime& Lifetime,
    bool& HasByrefExtendedLayout) const

Description

Returns true, if given type has a known lifetime. HasByrefExtendedLayout is set to false in this case. If HasByrefExtendedLayout returns true, byref variable has extended lifetime.

Declared at: clang/include/clang/AST/ASTContext.h:1426

Parameters

clang::QualType Ty
Qualifiers::ObjCLifetime& Lifetime
bool& HasByrefExtendedLayout

clang::TypedefDecl* getCFConstantStringDecl()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1824

clang::RecordDecl* getCFConstantStringTagDecl()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1825

clang::QualType getCFConstantStringType() const

Description

Return the C structure type used to represent constant CFStrings.

Declared at: clang/include/clang/AST/ASTContext.h:1810

llvm::StringRef getCUIDHash() const

Declared at: clang/include/clang/AST/ASTContext.h:3320

clang::QualType getCVRQualifiedType(
    clang::QualType T,
    unsigned int CVR) const

Description

Return a type with additional \c const, \c volatile, or\c restrict qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:2130

Parameters

clang::QualType T
unsigned int CVR

TargetCXXABI::Kind getCXXABIKind() const

Description

Return the C++ ABI kind that should be used. The C++ ABI can be overriden at compile time with `-fc++-abi=`. If this is not provided, we instead use the default ABI set by the target.

Declared at: clang/include/clang/AST/ASTContext.h:817

clang::CanQualType getCanonicalFunctionResultType(
    clang::QualType ResultType) const

Description

Adjust the given function result type.

Declared at: clang/include/clang/AST/ASTContext.h:1309

Parameters

clang::QualType ResultType

clang::NestedNameSpecifier*
getCanonicalNestedNameSpecifier(
    clang::NestedNameSpecifier* NNS) const

Description

Retrieves the "canonical" nested name specifier for a given nested name specifier. The canonical nested name specifier is a nested name specifier that uniquely identifies a type or namespace within the type system. For example, given: Here, the nested-name-specifier for N::S::X <T >:: will be S::X <template -param-0-0>, since 'S' and 'X' are uniquely defined by declarations in the type system and the canonical type for the template type parameter 'T' is template-param-0-0.

Declared at: clang/include/clang/AST/ASTContext.h:2634

Parameters

clang::NestedNameSpecifier* NNS

clang::CanQualType getCanonicalParamType(
    clang::QualType T) const

Description

Return the canonical parameter type corresponding to the specific potentially non-canonical one. Qualifiers are stripped off, functions are turned into function pointers, and arrays decay one level into pointers.

Declared at: clang/include/clang/AST/ASTContext.h:2530

Parameters

clang::QualType T

clang::TemplateArgument
getCanonicalTemplateArgument(
    const clang::TemplateArgument& Arg) const

Description

Retrieve the "canonical" template argument. The canonical template argument is the simplest template argument (which may be a type, value, expression, or declaration) that expresses the value of the argument.

Declared at: clang/include/clang/AST/ASTContext.h:2699

Parameters

const clang::TemplateArgument& Arg

clang::TemplateName getCanonicalTemplateName(
    const clang::TemplateName& Name) const

Description

Retrieves the "canonical" template name that refers to a given template. The canonical template name is the simplest expression that can be used to refer to a given template. For most templates, this expression is just the template declaration itself. For example, the template std::vector can be referred to via a variety of names---std::vector, :: std::vector, vector (if vector is in scope), etc.---but all of these names map down to the same TemplateDecl, which is used to form the canonical template name. Dependent template names are more interesting. Here, the template name could be something like T::template apply or std::allocator <T >::template rebind, where the nested name specifier itself is dependent. In this case, the canonical template name uses the shortest form of the dependent nested-name-specifier, which itself contains all canonical types, values, and templates.

Declared at: clang/include/clang/AST/ASTContext.h:2659

Parameters

const clang::TemplateName& Name

clang::QualType
getCanonicalTemplateSpecializationType(
    clang::TemplateName T,
    ArrayRef<clang::TemplateArgument> Args) const

Declared at: clang/include/clang/AST/ASTContext.h:1632

Parameters

clang::TemplateName T
ArrayRef<clang::TemplateArgument> Args

clang::TemplateTemplateParmDecl*
getCanonicalTemplateTemplateParmDecl(
    clang::TemplateTemplateParmDecl* TTP) const

Declared at: clang/include/clang/AST/ASTContext.h:359

Parameters

clang::TemplateTemplateParmDecl* TTP

const clang::Type* getCanonicalType(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2521

Parameters

const clang::Type* T

clang::CanQualType getCanonicalType(
    clang::QualType T) const

Description

Return the canonical (structural) type corresponding to the specified potentially non-canonical type \p T. The non-canonical version of a type may have many "decorated" versions of types. Decorators can include typedefs, 'typeof' operators, etc. The returned type is guaranteed to be free of any of these, allowing two canonical types to be compared for exact equality with a simple pointer comparison.

Declared at: clang/include/clang/AST/ASTContext.h:2517

Parameters

clang::QualType T

uint64_t getCharWidth() const

Description

Return the size of the character type, in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2298

comments::CommandTraits& getCommentCommandTraits()
    const

Declared at: clang/include/clang/AST/ASTContext.h:951

comments::FullComment* getCommentForDecl(
    const clang::Decl* D,
    const clang::Preprocessor* PP) const

Description

Return parsed documentation comment attached to a given declaration. Returns nullptr if no comment is attached.

Declared at: clang/include/clang/AST/ASTContext.h:899

Parameters

const clang::Decl* D
const clang::Preprocessor* PP
the Preprocessor used with this TU. Could be nullptr if preprocessor is not available.

clang::CanQualType getComplexType(
    clang::CanQualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:1343

Parameters

clang::CanQualType T

clang::QualType getComplexType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a complex number with the specified element type.

Declared at: clang/include/clang/AST/ASTContext.h:1342

Parameters

clang::QualType T

clang::QualType getConstType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a \c const qualified type. The resulting type has a union of the qualifiers from \p T and \c const. It can be reasonably expected that this will always be equivalent to calling T.withConst().

Declared at: clang/include/clang/AST/ASTContext.h:1302

Parameters

clang::QualType T

uint64_t getConstantArrayElementCount(
    const clang::ConstantArrayType* CA) const

Description

Return number of constant array elements.

Declared at: clang/include/clang/AST/ASTContext.h:2731

Parameters

const clang::ConstantArrayType* CA

clang::QualType getConstantArrayType(
    clang::QualType EltTy,
    const llvm::APInt& ArySize,
    const clang::Expr* SizeExpr,
    ArrayType::ArraySizeModifier ASM,
    unsigned int IndexTypeQuals) const

Description

Return the unique reference to the type for a constant array of the specified element type.

Declared at: clang/include/clang/AST/ASTContext.h:1470

Parameters

clang::QualType EltTy
const llvm::APInt& ArySize
const clang::Expr* SizeExpr
ArrayType::ArraySizeModifier ASM
unsigned int IndexTypeQuals

clang::QualType getConstantMatrixType(
    clang::QualType ElementType,
    unsigned int NumRows,
    unsigned int NumColumns) const

Description

Return the unique reference to the matrix type of the specified element type and size

Declared at: clang/include/clang/AST/ASTContext.h:1535

Parameters

clang::QualType ElementType
unsigned int NumRows
unsigned int NumColumns

const clang::CXXConstructorDecl*
getCopyConstructorForExceptionObject(
    clang::CXXRecordDecl* RD)

Declared at: clang/include/clang/AST/ASTContext.h:3047

Parameters

clang::CXXRecordDecl* RD

clang::QualType getCorrespondingSaturatedType(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2922

Parameters

clang::QualType Ty

clang::QualType
getCorrespondingSignedFixedPointType(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2928

Parameters

clang::QualType Ty

clang::QualType getCorrespondingSignedType(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2918

Parameters

clang::QualType T

clang::QualType getCorrespondingUnsignedType(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2910

Parameters

clang::QualType T

const clang::CXXMethodDecl* getCurrentKeyFunction(
    const clang::CXXRecordDecl* RD)

Description

Get our current best idea for the key function of the given record decl, or nullptr if there isn't one. The key function is, according to the Itanium C++ ABI section 5.2.3: ...the first non-pure virtual function that is not inline at the point of class definition. Other ABIs use the same idea. However, the ARM C++ ABI ignores virtual functions that are defined 'inline', which means that the result of this computation can change.

Declared at: clang/include/clang/AST/ASTContext.h:2446

Parameters

const clang::CXXRecordDecl* RD

clang::QualType getDecayedType(
    clang::QualType T) const

Description

Return the uniqued reference to the decayed version of the given type. Can only be called on array and function types which decay to pointer types.

Declared at: clang/include/clang/AST/ASTContext.h:1365

Parameters

clang::QualType T

clang::CanQualType getDecayedType(
    clang::CanQualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:1366

Parameters

clang::CanQualType T

clang::CharUnits getDeclAlign(
    const clang::Decl* D,
    bool ForAlignof = false) const

Description

Return a conservative estimate of the alignment of the specified decl \p D. If \p ForAlignof, references are treated like their underlying type and large arrays don't get any special treatment. If not \p ForAlignof it computes the value expected by CodeGen: references are treated like pointers and large arrays get extra alignment.

Declared at: clang/include/clang/AST/ASTContext.h:2409

Parameters

const clang::Decl* D
bool ForAlignof = false

clang::AttrVec& getDeclAttrs(const clang::Decl* D)

Description

Retrieve the attributes for the given declaration.

Declared at: clang/include/clang/AST/ASTContext.h:956

Parameters

const clang::Decl* D

clang::DeclaratorDecl*
getDeclaratorForUnnamedTagDecl(
    const clang::TagDecl* TD)

Declared at: clang/include/clang/AST/ASTContext.h:3058

Parameters

const clang::TagDecl* TD

clang::QualType getDecltypeType(
    clang::Expr* e,
    clang::QualType UnderlyingType) const

Description

C++11 decltype.

Declared at: clang/include/clang/AST/ASTContext.h:1720

Parameters

clang::Expr* e
clang::QualType UnderlyingType

clang::QualType
getDeducedTemplateSpecializationType(
    clang::TemplateName Template,
    clang::QualType DeducedType,
    bool IsDependent) const

Description

C++17 deduced class template specialization type.

Declared at: clang/include/clang/AST/ASTContext.h:1739

Parameters

clang::TemplateName Template
clang::QualType DeducedType
bool IsDependent

clang::CallingConv getDefaultCallingConvention(
    bool IsVariadic,
    bool IsCXXMethod,
    bool IsBuiltin = false) const

Description

Retrieves the default calling convention for the current target.

Declared at: clang/include/clang/AST/ASTContext.h:2637

Parameters

bool IsVariadic
bool IsCXXMethod
bool IsBuiltin = false

inline clang::LangAS
getDefaultOpenCLPointeeAddrSpace()

Description

Returns default address space based on OpenCL version and enabled features

Declared at: clang/include/clang/AST/ASTContext.h:1407

clang::QualType getDependentAddressSpaceType(
    clang::QualType PointeeType,
    clang::Expr* AddrSpaceExpr,
    clang::SourceLocation AttrLoc) const

Declared at: clang/include/clang/AST/ASTContext.h:1544

Parameters

clang::QualType PointeeType
clang::Expr* AddrSpaceExpr
clang::SourceLocation AttrLoc

clang::QualType getDependentBitIntType(
    bool Unsigned,
    clang::Expr* BitsExpr) const

Description

Return a dependent bit-precise integer type with the specified signedness and bit count.

Declared at: clang/include/clang/AST/ASTContext.h:1394

Parameters

bool Unsigned
clang::Expr* BitsExpr

clang::QualType getDependentNameType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifier* NNS,
    const clang::IdentifierInfo* Name,
    clang::QualType Canon =
        clang::QualType()) const

Declared at: clang/include/clang/AST/ASTContext.h:1652

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifier* NNS
const clang::IdentifierInfo* Name
clang::QualType Canon = clang::QualType()

clang::QualType getDependentSizedArrayType(
    clang::QualType EltTy,
    clang::Expr* NumElts,
    ArrayType::ArraySizeModifier ASM,
    unsigned int IndexTypeQuals,
    clang::SourceRange Brackets) const

Description

Return a non-unique reference to the type for a dependently-sized array of the specified element type. FIXME: We will need these to be uniqued, or at least comparable, at some point.

Declared at: clang/include/clang/AST/ASTContext.h:1457

Parameters

clang::QualType EltTy
clang::Expr* NumElts
ArrayType::ArraySizeModifier ASM
unsigned int IndexTypeQuals
clang::SourceRange Brackets

clang::QualType getDependentSizedExtVectorType(
    clang::QualType VectorType,
    clang::Expr* SizeExpr,
    clang::SourceLocation AttrLoc) const

Description

FIXME: We will need these to be uniqued, or at least comparable, at some point.

Declared at: clang/include/clang/AST/ASTContext.h:1526

Parameters

clang::QualType VectorType
clang::Expr* SizeExpr
clang::SourceLocation AttrLoc

clang::QualType getDependentSizedMatrixType(
    clang::QualType ElementType,
    clang::Expr* RowExpr,
    clang::Expr* ColumnExpr,
    clang::SourceLocation AttrLoc) const

Description

Return the unique reference to the matrix type of the specified element type and size

Declared at: clang/include/clang/AST/ASTContext.h:1540

Parameters

clang::QualType ElementType
clang::Expr* RowExpr
clang::Expr* ColumnExpr
clang::SourceLocation AttrLoc

clang::TemplateName getDependentTemplateName(
    clang::NestedNameSpecifier* NNS,
    clang::OverloadedOperatorKind Operator) const

Declared at: clang/include/clang/AST/ASTContext.h:2198

Parameters

clang::NestedNameSpecifier* NNS
clang::OverloadedOperatorKind Operator

clang::TemplateName getDependentTemplateName(
    clang::NestedNameSpecifier* NNS,
    const clang::IdentifierInfo* Name) const

Declared at: clang/include/clang/AST/ASTContext.h:2196

Parameters

clang::NestedNameSpecifier* NNS
const clang::IdentifierInfo* Name

clang::QualType
getDependentTemplateSpecializationType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifier* NNS,
    const clang::IdentifierInfo* Name,
    ArrayRef<clang::TemplateArgument> Args) const

Declared at: clang/include/clang/AST/ASTContext.h:1661

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifier* NNS
const clang::IdentifierInfo* Name
ArrayRef<clang::TemplateArgument> Args

clang::QualType
getDependentTemplateSpecializationType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifier* NNS,
    const clang::IdentifierInfo* Name,
    const clang::TemplateArgumentListInfo& Args)
    const

Declared at: clang/include/clang/AST/ASTContext.h:1657

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifier* NNS
const clang::IdentifierInfo* Name
const clang::TemplateArgumentListInfo& Args

clang::QualType getDependentVectorType(
    clang::QualType VectorType,
    clang::Expr* SizeExpr,
    clang::SourceLocation AttrLoc,
    VectorType::VectorKind VecKind) const

Description

Return the unique reference to the type for a dependently sized vector of the specified element type.

Declared at: clang/include/clang/AST/ASTContext.h:1511

Parameters

clang::QualType VectorType
clang::Expr* SizeExpr
clang::SourceLocation AttrLoc
VectorType::VectorKind VecKind

PartialDiagnostic::DiagStorageAllocator&
getDiagAllocator()

Declared at: clang/include/clang/AST/ASTContext.h:768

clang::DiagnosticsEngine& getDiagnostics() const

Declared at: clang/include/clang/AST/ASTContext.h:808

clang::QualType getElaboratedType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifier* NNS,
    clang::QualType NamedType,
    clang::TagDecl* OwnedTagDecl = nullptr) const

Declared at: clang/include/clang/AST/ASTContext.h:1649

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifier* NNS
clang::QualType NamedType
clang::TagDecl* OwnedTagDecl = nullptr

clang::QualType getEnumType(
    const clang::EnumDecl* Decl) const

Declared at: clang/include/clang/AST/ASTContext.h:1603

Parameters

const clang::EnumDecl* Decl

clang::QualType getExceptionObjectType(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2745

Parameters

clang::QualType T

clang::CharUnits getExnObjectAlignment() const

Description

Return the alignment (in bytes) of the thrown exception object. This is only meaningful for targets that allocate C++ exceptions in a system runtime, such as those using the Itanium C++ ABI.

Declared at: clang/include/clang/AST/ASTContext.h:2414

clang::QualType getExtQualType(
    const clang::Type* Base,
    clang::Qualifiers Quals) const

Description

Return a type with extended qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:1236

Parameters

const clang::Type* Base
clang::Qualifiers Quals

clang::QualType getExtVectorType(
    clang::QualType VectorType,
    unsigned int NumElts) const

Description

Return the unique reference to an extended vector type of the specified element type and size.

Declared at: clang/include/clang/AST/ASTContext.h:1519

Parameters

clang::QualType VectorType
unsigned int NumElts

clang::ExternCContextDecl* getExternCContextDecl()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1101

clang::ExternalASTSource* getExternalSource()
    const

Description

Retrieve a pointer to the external AST source associated with this AST context, if any.

Declared at: clang/include/clang/AST/ASTContext.h:1193

clang::QualType getFILEType() const

Description

Retrieve the C FILE type.

Declared at: clang/include/clang/AST/ASTContext.h:1935

uint64_t getFieldOffset(
    const clang::ValueDecl* FD) const

Description

Get the offset of a FieldDecl or IndirectFieldDecl, in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2470

Parameters

const clang::ValueDecl* FD

unsigned char getFixedPointIBits(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2180

Parameters

clang::QualType Ty

llvm::APFixedPoint getFixedPointMax(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2182

Parameters

clang::QualType Ty

llvm::APFixedPoint getFixedPointMin(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2183

Parameters

clang::QualType Ty

unsigned char getFixedPointScale(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2179

Parameters

clang::QualType Ty

llvm::FixedPointSemantics getFixedPointSemantics(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2181

Parameters

clang::QualType Ty

const llvm::fltSemantics& getFloatTypeSemantics(
    clang::QualType T) const

Description

Return the APFloat 'semantics' for the specified scalar floating point type.

Declared at: clang/include/clang/AST/ASTContext.h:2284

Parameters

clang::QualType T

int getFloatingTypeOrder(
    clang::QualType LHS,
    clang::QualType RHS) const

Description

Compare the rank of the two specified floating point types, ignoring the domain of the type (i.e. 'double' == '_Complex double'). If \p LHS > \p RHS, returns 1. If \p LHS == \p RHS, returns 0. If\p LHS <\p RHS, return -1.

Declared at: clang/include/clang/AST/ASTContext.h:2783

Parameters

clang::QualType LHS
clang::QualType RHS

int getFloatingTypeSemanticOrder(
    clang::QualType LHS,
    clang::QualType RHS) const

Description

Compare the rank of two floating point types as above, but compare equal if both types have the same floating-point semantics on the target (i.e. long double and double on AArch64 will return 0).

Declared at: clang/include/clang/AST/ASTContext.h:2788

Parameters

clang::QualType LHS
clang::QualType RHS

clang::CanQualType getFromTargetType(
    unsigned int Type) const

Declared at: clang/include/clang/AST/ASTContext.h:2239

Parameters

unsigned int Type

clang::FullSourceLoc getFullLoc(
    clang::SourceLocation Loc) const

Declared at: clang/include/clang/AST/ASTContext.h:810

Parameters

clang::SourceLocation Loc

void getFunctionFeatureMap(
    llvm::StringMap<bool>& FeatureMap,
    clang::GlobalDecl GD) const

Declared at: clang/include/clang/AST/ASTContext.h:3109

Parameters

llvm::StringMap<bool>& FeatureMap
clang::GlobalDecl GD

void getFunctionFeatureMap(
    llvm::StringMap<bool>& FeatureMap,
    const clang::FunctionDecl*) const

Declared at: clang/include/clang/AST/ASTContext.h:3107

Parameters

llvm::StringMap<bool>& FeatureMap
const clang::FunctionDecl*

clang::QualType getFunctionNoProtoType(
    clang::QualType ResultTy,
    const FunctionType::ExtInfo& Info) const

Description

Return a K &R style C function type like 'int()'.

Declared at: clang/include/clang/AST/ASTContext.h:1549

Parameters

clang::QualType ResultTy
const FunctionType::ExtInfo& Info

clang::QualType getFunctionNoProtoType(
    clang::QualType ResultTy) const

Declared at: clang/include/clang/AST/ASTContext.h:1552

Parameters

clang::QualType ResultTy

clang::QualType getFunctionType(
    clang::QualType ResultTy,
    ArrayRef<clang::QualType> Args,
    const FunctionProtoType::ExtProtoInfo& EPI)
    const

Description

Return a normal function type with a typed argument list.

Declared at: clang/include/clang/AST/ASTContext.h:1557

Parameters

clang::QualType ResultTy
ArrayRef<clang::QualType> Args
const FunctionProtoType::ExtProtoInfo& EPI

clang::QualType getFunctionTypeInternal(
    clang::QualType ResultTy,
    ArrayRef<clang::QualType> Args,
    const FunctionProtoType::ExtProtoInfo& EPI,
    bool OnlyWantCanonical) const

Description

Return a normal function type with a typed argument list.

Declared at: clang/include/clang/AST/ASTContext.h:1566

Parameters

clang::QualType ResultTy
ArrayRef<clang::QualType> Args
const FunctionProtoType::ExtProtoInfo& EPI
bool OnlyWantCanonical

clang::QualType getFunctionTypeWithExceptionSpec(
    clang::QualType Orig,
    const FunctionProtoType::ExceptionSpecInfo&
        ESI) const

Description

Get a function type and produce the equivalent function type with the specified exception specification. Type sugar that can be present on a declaration of a function with an exception specification is permitted and preserved. Other type sugar (for instance, typedefs) is not.

Declared at: clang/include/clang/AST/ASTContext.h:1318

Parameters

clang::QualType Orig
const FunctionProtoType::ExceptionSpecInfo& ESI

clang::QualType getFunctionTypeWithoutPtrSizes(
    clang::QualType T)

Description

Get a function type and produce the equivalent function type where pointer size address spaces in the return type and parameter tyeps are replaced with the default address space.

Declared at: clang/include/clang/AST/ASTContext.h:1334

Parameters

clang::QualType T

clang::QualType getIncompleteArrayType(
    clang::QualType EltTy,
    ArrayType::ArraySizeModifier ASM,
    unsigned int IndexTypeQuals) const

Description

Return a unique reference to the type for an incomplete array of the specified element type.

Declared at: clang/include/clang/AST/ASTContext.h:1464

Parameters

clang::QualType EltTy
ArrayType::ArraySizeModifier ASM
unsigned int IndexTypeQuals

clang::QualType getInjectedClassNameType(
    clang::CXXRecordDecl* Decl,
    clang::QualType TST) const

Declared at: clang/include/clang/AST/ASTContext.h:1608

Parameters

clang::CXXRecordDecl* Decl
clang::QualType TST

clang::TemplateArgument getInjectedTemplateArg(
    clang::NamedDecl* ParamDecl)

Declared at: clang/include/clang/AST/ASTContext.h:1665

Parameters

clang::NamedDecl* ParamDecl

void getInjectedTemplateArgs(
    const clang::TemplateParameterList* Params,
    SmallVectorImpl<clang::TemplateArgument>&
        Args)

Description

Get a template argument list with one argument per template parameter in a template parameter list, such as for the injected class name of a class template.

Declared at: clang/include/clang/AST/ASTContext.h:1670

Parameters

const clang::TemplateParameterList* Params
SmallVectorImpl<clang::TemplateArgument>& Args

clang::ASTContext::InlineVariableDefinitionKind
getInlineVariableDefinitionKind(
    const clang::VarDecl* VD) const

Description

Determine whether a definition of this inline variable should be treated as a weak or strong definition. For compatibility with C++14 and before, for a constexpr static data member, if there is an out-of-line declaration of the member, we may promote it from weak to strong.

Declared at: clang/include/clang/AST/ASTContext.h:3253

Parameters

const clang::VarDecl* VD

Qualifiers::ObjCLifetime getInnerObjCOwnership(
    clang::QualType T) const

Description

Recurses in pointer/array types until it finds an Objective-C retainable type and returns its ownership.

Declared at: clang/include/clang/AST/ASTContext.h:2763

Parameters

clang::QualType T

clang::MemberSpecializationInfo*
getInstantiatedFromStaticDataMember(
    const clang::VarDecl* Var)

Description

If this variable is an instantiated static data member of a class template specialization, returns the templated static data member from which it was instantiated.

Declared at: clang/include/clang/AST/ASTContext.h:965

Parameters

const clang::VarDecl* Var

clang::FieldDecl*
getInstantiatedFromUnnamedFieldDecl(
    clang::FieldDecl* Field)

Declared at: clang/include/clang/AST/ASTContext.h:1001

Parameters

clang::FieldDecl* Field

clang::NamedDecl* getInstantiatedFromUsingDecl(
    clang::NamedDecl* Inst)

Description

If the given using decl \p Inst is an instantiation of another (possibly unresolved) using decl, return it.

Declared at: clang/include/clang/AST/ASTContext.h:982

Parameters

clang::NamedDecl* Inst

clang::UsingEnumDecl*
getInstantiatedFromUsingEnumDecl(
    clang::UsingEnumDecl* Inst)

Description

If the given using-enum decl \p Inst is an instantiation of another using-enum decl, return it.

Declared at: clang/include/clang/AST/ASTContext.h:990

Parameters

clang::UsingEnumDecl* Inst

clang::UsingShadowDecl*
getInstantiatedFromUsingShadowDecl(
    clang::UsingShadowDecl* Inst)

Declared at: clang/include/clang/AST/ASTContext.h:997

Parameters

clang::UsingShadowDecl* Inst

clang::TypedefDecl* getInt128Decl() const

Description

Retrieve the declaration for the 128-bit signed integer type.

Declared at: clang/include/clang/AST/ASTContext.h:1225

clang::CanQualType getIntMaxType() const

Description

Return the unique type for "intmax_t" (C99 7.18.1.5), defined in <stdint .h>.

Declared at: clang/include/clang/AST/ASTContext.h:1759

clang::QualType getIntPtrType() const

Description

Return a type compatible with "intptr_t" (C99 7.18.1.4), as defined by the target.

Declared at: clang/include/clang/AST/ASTContext.h:1790

clang::QualType getIntTypeForBitwidth(
    unsigned int DestWidth,
    unsigned int Signed) const

Description

getIntTypeForBitwidth - sets integer QualTy according to specified details: bitwidth, signed/unsigned. Returns empty type if there is no appropriate target types.

Declared at: clang/include/clang/AST/ASTContext.h:779

Parameters

unsigned int DestWidth
unsigned int Signed

unsigned int getIntWidth(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2902

Parameters

clang::QualType T

unsigned int getIntegerRank(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2808

Parameters

const clang::Type* T

int getIntegerTypeOrder(clang::QualType LHS,
                        clang::QualType RHS) const

Description

Return the highest ranked integer type, see C99 6.3.1.8p1. If \p LHS > \p RHS, returns 1. If \p LHS == \p RHS, returns 0. If\p LHS <\p RHS, return -1.

Declared at: clang/include/clang/AST/ASTContext.h:2776

Parameters

clang::QualType LHS
clang::QualType RHS

interp::Context& getInterpContext()

Description

Returns the clang bytecode interpreter context.

Declared at: clang/include/clang/AST/ASTContext.h:668

clang::QualType getLValueReferenceType(
    clang::QualType T,
    bool SpelledAsLValue = true) const

Description

Return the uniqued reference to the type for an lvalue reference to the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1432

Parameters

clang::QualType T
bool SpelledAsLValue = true

clang::LangAS getLangASForBuiltinAddressSpace(
    unsigned int AS) const

Declared at: clang/include/clang/AST/ASTContext.h:2796

Parameters

unsigned int AS

const clang::LangOptions& getLangOpts() const

Declared at: clang/include/clang/AST/ASTContext.h:790

void getLegacyIntegralTypeEncoding(
    clang::QualType& t) const

Declared at: clang/include/clang/AST/ASTContext.h:1994

Parameters

clang::QualType& t

clang::QualType getLifetimeQualifiedType(
    clang::QualType type,
    Qualifiers::ObjCLifetime lifetime)

Description

Return a type with the given lifetime qualifier.

Declared at: clang/include/clang/AST/ASTContext.h:2158

Parameters

clang::QualType type
Qualifiers::ObjCLifetime lifetime

comments::FullComment*
getLocalCommentForDeclUncached(
    const clang::Decl* D) const

Description

Return parsed documentation comment attached to a given declaration. Returns nullptr if no comment is attached. Does not look at any redeclarations of the declaration.

Declared at: clang/include/clang/AST/ASTContext.h:905

Parameters

const clang::Decl* D

clang::QualType getLogicalOperationType() const

Description

The result type of logical operations, ' < ', '>', '!=', etc.

Declared at: clang/include/clang/AST/ASTContext.h:1978

clang::MSGuidDecl* getMSGuidDecl(
    clang::MSGuidDeclParts Parts) const

Description

Return a declaration for the global GUID object representing the given GUID value.

Declared at: clang/include/clang/AST/ASTContext.h:3091

Parameters

clang::MSGuidDeclParts Parts

clang::TagDecl* getMSGuidTagDecl() const

Description

Retrieve the implicitly-predeclared 'struct _GUID' declaration.

Declared at: clang/include/clang/AST/ASTContext.h:2116

clang::QualType getMSGuidType() const

Description

Retrieve the implicitly-predeclared 'struct _GUID' type.

Declared at: clang/include/clang/AST/ASTContext.h:2119

clang::QualType getMacroQualifiedType(
    clang::QualType UnderlyingTy,
    const clang::IdentifierInfo* MacroII) const

Declared at: clang/include/clang/AST/ASTContext.h:1646

Parameters

clang::QualType UnderlyingTy
const clang::IdentifierInfo* MacroII

clang::BuiltinTemplateDecl*
getMakeIntegerSeqDecl() const

Declared at: clang/include/clang/AST/ASTContext.h:1102

clang::IdentifierInfo* getMakeIntegerSeqName()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1909

unsigned int getManglingNumber(
    const clang::NamedDecl* ND,
    bool ForAuxTarget = false) const

Declared at: clang/include/clang/AST/ASTContext.h:3061

Parameters

const clang::NamedDecl* ND
bool ForAuxTarget = false

clang::MangleNumberingContext&
getManglingNumberContext(
    const clang::DeclContext* DC)

Description

Retrieve the context for computing mangling numbers in the given DeclContext.

Declared at: clang/include/clang/AST/ASTContext.h:3069

Parameters

const clang::DeclContext* DC

clang::MangleNumberingContext&
getManglingNumberContext(
    clang::ASTContext::NeedExtraManglingDecl_t,
    const clang::Decl* D)

Declared at: clang/include/clang/AST/ASTContext.h:3071

Parameters

clang::ASTContext::NeedExtraManglingDecl_t
const clang::Decl* D

clang::CharUnits getMemberPointerPathAdjustment(
    const clang::APValue& MP) const

Description

Find the 'this' offset for the member path in a pointer-to-member APValue.

Declared at: clang/include/clang/AST/ASTContext.h:2479

Parameters

const clang::APValue& MP

clang::QualType getMemberPointerType(
    clang::QualType T,
    const clang::Type* Cls) const

Description

Return the uniqued reference to the type for a member pointer to the specified type in the specified class. The class \p Cls is a \c Type because it could be a dependent name.

Declared at: clang/include/clang/AST/ASTContext.h:1443

Parameters

clang::QualType T
const clang::Type* Cls

clang::Module* getModuleForCodeGen() const

Description

Get module under construction, nullptr if this is not a C++20 module.

Declared at: clang/include/clang/AST/ASTContext.h:1086

ArrayRef<clang::Decl*> getModuleInitializers(
    clang::Module* M)

Description

Get the initializations to perform when importing a module, if any.

Declared at: clang/include/clang/AST/ASTContext.h:1080

Parameters

clang::Module* M

ArrayRef<clang::Module*>
getModulesWithMergedDefinition(
    const clang::NamedDecl* Def)

Description

Get the additional modules in which the definition \p Def has been merged.

Declared at: clang/include/clang/AST/ASTContext.h:1069

Parameters

const clang::NamedDecl* Def

clang::IdentifierInfo* getNSCopyingName()

Description

Retrieve the identifier 'NSCopying'.

Declared at: clang/include/clang/AST/ASTContext.h:1890

clang::CanQualType getNSIntegerType() const

Declared at: clang/include/clang/AST/ASTContext.h:1900

clang::IdentifierInfo* getNSObjectName() const

Description

Retrieve the identifier 'NSObject'.

Declared at: clang/include/clang/AST/ASTContext.h:1881

clang::CanQualType getNSUIntegerType() const

Declared at: clang/include/clang/AST/ASTContext.h:1898

clang::DeclarationNameInfo getNameForTemplate(
    clang::TemplateName Name,
    clang::SourceLocation NameLoc) const

Declared at: clang/include/clang/AST/ASTContext.h:2185

Parameters

clang::TemplateName Name
clang::SourceLocation NameLoc

clang::OMPTraitInfo& getNewOMPTraitInfo()

Description

Return a new OMPTraitInfo object owned by this context.

Declared at: clang/include/clang/AST/ASTContext.h:3312

static clang::ImportDecl* getNextLocalImport(
    clang::ImportDecl* Import)

Declared at: clang/include/clang/AST/ASTContext.h:1040

Parameters

clang::ImportDecl* Import

const clang::NoSanitizeList& getNoSanitizeList()
    const

Declared at: clang/include/clang/AST/ASTContext.h:800

clang::TypedefDecl* getObjCClassDecl() const

Description

Retrieve the typedef declaration corresponding to the predefined Objective-C 'Class' type.

Declared at: clang/include/clang/AST/ASTContext.h:2058

clang::QualType getObjCClassRedefinitionType()
    const

Description

Retrieve the type that \c Class has been defined to, which may be different from the built-in \c Class if \c Class has been typedef'd.

Declared at: clang/include/clang/AST/ASTContext.h:1856

clang::QualType getObjCClassType() const

Description

Represents the Objective-C \c Class type. This is set up lazily, by Sema. \c Class is always a (typedef for a) pointer type, a pointer to a struct.

Declared at: clang/include/clang/AST/ASTContext.h:2064

clang::QualType getObjCConstantStringInterface()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1829

std::string getObjCEncodingForBlock(
    const clang::BlockExpr* blockExpr) const

Description

Return the encoded type for this block declaration.

Declared at: clang/include/clang/AST/ASTContext.h:2014

Parameters

const clang::BlockExpr* blockExpr

std::string getObjCEncodingForFunctionDecl(
    const clang::FunctionDecl* Decl) const

Description

Emit the encoded type for the function \p Decl into \p S. This is in the same format as Objective-C method encodings.

Declared at: clang/include/clang/AST/ASTContext.h:2006

Parameters

const clang::FunctionDecl* Decl

Returns

true if an error occurred (e.g., because one of the parameter types is incomplete), false otherwise.

std::string getObjCEncodingForMethodDecl(
    const clang::ObjCMethodDecl* Decl,
    bool Extended = false) const

Description

Emit the encoded type for the method declaration \p Decl into\p S.

Declared at: clang/include/clang/AST/ASTContext.h:2010

Parameters

const clang::ObjCMethodDecl* Decl
bool Extended = false

void getObjCEncodingForMethodParameter(
    Decl::ObjCDeclQualifier QT,
    clang::QualType T,
    std::string& S,
    bool Extended) const

Declared at: clang/include/clang/AST/ASTContext.h:3225

Parameters

Decl::ObjCDeclQualifier QT
clang::QualType T
std::string& S
bool Extended

std::string getObjCEncodingForPropertyDecl(
    const clang::ObjCPropertyDecl* PD,
    const clang::Decl* Container) const

Description

getObjCEncodingForPropertyDecl - Return the encoded type for this method declaration. If non-NULL, Container must be either an ObjCCategoryImplDecl or ObjCImplementationDecl; it should only be NULL when getting encodings for protocol properties.

Declared at: clang/include/clang/AST/ASTContext.h:2020

Parameters

const clang::ObjCPropertyDecl* PD
const clang::Decl* Container

void getObjCEncodingForPropertyType(
    clang::QualType T,
    std::string& S) const

Description

Emit the Objective-C property type encoding for the given type \p T into \p S.

Declared at: clang/include/clang/AST/ASTContext.h:1992

Parameters

clang::QualType T
std::string& S

void getObjCEncodingForStructureImpl(
    clang::RecordDecl* RD,
    std::string& S,
    const clang::FieldDecl* Field,
    bool includeVBases = true,
    clang::QualType* NotEncodedT = nullptr) const

Declared at: clang/include/clang/AST/ASTContext.h:3218

Parameters

clang::RecordDecl* RD
std::string& S
const clang::FieldDecl* Field
bool includeVBases = true
clang::QualType* NotEncodedT = nullptr

void getObjCEncodingForType(
    clang::QualType T,
    std::string& S,
    const clang::FieldDecl* Field = nullptr,
    clang::QualType* NotEncodedT = nullptr) const

Description

Emit the Objective-CC type encoding for the given type \p T into\p S. If \p Field is specified then record field names are also encoded.

Declared at: clang/include/clang/AST/ASTContext.h:1986

Parameters

clang::QualType T
std::string& S
const clang::FieldDecl* Field = nullptr
clang::QualType* NotEncodedT = nullptr

void getObjCEncodingForTypeImpl(
    clang::QualType t,
    std::string& S,
    clang::ASTContext::ObjCEncOptions Options,
    const clang::FieldDecl* Field,
    clang::QualType* NotEncodedT = nullptr) const

Declared at: clang/include/clang/AST/ASTContext.h:3212

Parameters

clang::QualType t
std::string& S
clang::ASTContext::ObjCEncOptions Options
const clang::FieldDecl* Field
clang::QualType* NotEncodedT = nullptr

void getObjCEncodingForTypeQualifier(
    Decl::ObjCDeclQualifier QT,
    std::string& S) const

Description

Put the string version of the type qualifiers \p QT into \p S.

Declared at: clang/include/clang/AST/ASTContext.h:1997

Parameters

Decl::ObjCDeclQualifier QT
std::string& S

clang::CharUnits getObjCEncodingTypeSize(
    clang::QualType T) const

Description

Return the size of type \p T for Objective-C encoding purpose, in characters.

Declared at: clang/include/clang/AST/ASTContext.h:2032

Parameters

clang::QualType T

Qualifiers::GC getObjCGCAttrKind(
    clang::QualType Ty) const

Description

Return one of the GCNone, Weak or Strong Objective-C garbage collection attributes.

Declared at: clang/include/clang/AST/ASTContext.h:2249

Parameters

clang::QualType Ty

clang::QualType getObjCGCQualType(
    clang::QualType T,
    Qualifiers::GC gcAttr) const

Description

Return the uniqued reference to the type for an Objective-C gc-qualified type. The resulting type has a union of the qualifiers from T and the gc attribute.

Declared at: clang/include/clang/AST/ASTContext.h:1271

Parameters

clang::QualType T
Qualifiers::GC gcAttr

clang::TypedefDecl* getObjCIdDecl() const

Description

Retrieve the typedef corresponding to the predefined \c id type in Objective-C.

Declared at: clang/include/clang/AST/ASTContext.h:2036

clang::QualType getObjCIdRedefinitionType() const

Description

Retrieve the type that \c id has been defined to, which may be different from the built-in \c id if \c id has been typedef'd.

Declared at: clang/include/clang/AST/ASTContext.h:1843

clang::QualType getObjCIdType() const

Description

Represents the Objective-CC \c id type. This is set up lazily, by Sema. \c id is always a (typedef for a) pointer type, a pointer to a struct.

Declared at: clang/include/clang/AST/ASTContext.h:2042

clang::ObjCCategoryImplDecl*
getObjCImplementation(clang::ObjCCategoryDecl* D)

Description

Get the implementation of the ObjCCategoryDecl \p D, or nullptr if none exists.

Declared at: clang/include/clang/AST/ASTContext.h:2955

Parameters

clang::ObjCCategoryDecl* D

clang::ObjCImplementationDecl*
getObjCImplementation(clang::ObjCInterfaceDecl* D)

Description

Get the implementation of the ObjCInterfaceDecl \p D, or nullptr if none exists.

Declared at: clang/include/clang/AST/ASTContext.h:2951

Parameters

clang::ObjCInterfaceDecl* D

clang::QualType getObjCInstanceType()

Description

Retrieve the Objective-C "instancetype" type, if already known; otherwise, returns a NULL type;

Declared at: clang/include/clang/AST/ASTContext.h:1923

clang::TypedefDecl* getObjCInstanceTypeDecl()

Description

Retrieve the typedef declaration corresponding to the Objective-C "instancetype" type.

Declared at: clang/include/clang/AST/ASTContext.h:1929

clang::QualType getObjCInterfaceType(
    const clang::ObjCInterfaceDecl* Decl,
    clang::ObjCInterfaceDecl* PrevDecl =
        nullptr) const

Declared at: clang/include/clang/AST/ASTContext.h:1684

Parameters

const clang::ObjCInterfaceDecl* Decl
clang::ObjCInterfaceDecl* PrevDecl = nullptr

const clang::ASTRecordLayout& getObjCLayout(
    const clang::ObjCInterfaceDecl* D,
    const clang::ObjCImplementationDecl* Impl)
    const

Declared at: clang/include/clang/AST/ASTContext.h:3260

Parameters

const clang::ObjCInterfaceDecl* D
const clang::ObjCImplementationDecl* Impl

const clang::ObjCMethodDecl*
getObjCMethodRedeclaration(
    const clang::ObjCMethodDecl* MD) const

Description

Get the duplicate declaration of a ObjCMethod in the same interface, or null if none exists.

Declared at: clang/include/clang/AST/ASTContext.h:2973

Parameters

const clang::ObjCMethodDecl* MD

clang::QualType getObjCNSStringType() const

Declared at: clang/include/clang/AST/ASTContext.h:1833

clang::QualType getObjCObjectPointerType(
    clang::QualType OIT) const

Description

Return a ObjCObjectPointerType type for the given ObjCObjectType.

Declared at: clang/include/clang/AST/ASTContext.h:1711

Parameters

clang::QualType OIT

clang::QualType getObjCObjectType(
    clang::QualType Base,
    ArrayRef<clang::QualType> typeArgs,
    ArrayRef<clang::ObjCProtocolDecl*> protocols,
    bool isKindOf) const

Declared at: clang/include/clang/AST/ASTContext.h:1692

Parameters

clang::QualType Base
ArrayRef<clang::QualType> typeArgs
ArrayRef<clang::ObjCProtocolDecl*> protocols
bool isKindOf

clang::QualType getObjCObjectType(
    clang::QualType Base,
    clang::ObjCProtocolDecl* const* Protocols,
    unsigned int NumProtocols) const

Description

Legacy interface: cannot provide type arguments or __kindof.

Declared at: clang/include/clang/AST/ASTContext.h:1688

Parameters

clang::QualType Base
clang::ObjCProtocolDecl* const* Protocols
unsigned int NumProtocols

clang::ObjCPropertyImplDecl*
getObjCPropertyImplDeclForPropertyDecl(
    const clang::ObjCPropertyDecl* PD,
    const clang::Decl* Container) const

Declared at: clang/include/clang/AST/ASTContext.h:2026

Parameters

const clang::ObjCPropertyDecl* PD
const clang::Decl* Container

clang::QualType getObjCProtoType() const

Description

Retrieve the type of the Objective-C \c Protocol class.

Declared at: clang/include/clang/AST/ASTContext.h:2088

clang::ObjCInterfaceDecl* getObjCProtocolDecl()
    const

Description

Retrieve the Objective-C class declaration corresponding to the predefined \c Protocol class.

Declared at: clang/include/clang/AST/ASTContext.h:2070

clang::TypedefDecl* getObjCSelDecl() const

Description

Retrieve the typedef corresponding to the predefined 'SEL' type in Objective-C.

Declared at: clang/include/clang/AST/ASTContext.h:2048

clang::QualType getObjCSelRedefinitionType() const

Description

Retrieve the type that 'SEL' has been defined to, which may be different from the built-in 'SEL' if 'SEL' has been typedef'd.

Declared at: clang/include/clang/AST/ASTContext.h:1869

clang::QualType getObjCSelType() const

Description

Retrieve the type that corresponds to the predefined Objective-C 'SEL' type.

Declared at: clang/include/clang/AST/ASTContext.h:2052

clang::QualType getObjCSuperType() const

Description

Returns the C struct type for objc_super

Declared at: clang/include/clang/AST/ASTContext.h:1813

clang::QualType getObjCTypeParamType(
    const clang::ObjCTypeParamDecl* Decl,
    ArrayRef<clang::ObjCProtocolDecl*> protocols)
    const

Declared at: clang/include/clang/AST/ASTContext.h:1697

Parameters

const clang::ObjCTypeParamDecl* Decl
ArrayRef<clang::ObjCProtocolDecl*> protocols

const clang::ObjCInterfaceDecl*
getObjContainingInterface(
    const clang::NamedDecl* ND) const

Description

Returns the Objective-C interface that \p ND belongs to if it is an Objective-C method/property/ivar etc. that is part of an interface, otherwise returns null.

Declared at: clang/include/clang/AST/ASTContext.h:2981

Parameters

const clang::NamedDecl* ND

clang::CharUnits getOffsetOfBaseWithVBPtr(
    const clang::CXXRecordDecl* RD) const

Description

Loading virtual member pointers using the virtual inheritance model always results in an adjustment using the vbtable even if the index is zero. This is usually OK because the first slot in the vbtable points backwards to the top of the MDC. However, the MDC might be reusing a vbptr from an nv-base. In this case, the first slot in the vbtable points to the start of the nv-base which introduced the vbptr and *not* the MDC. Modify the NonVirtualBaseAdjustment to account for this.

Declared at: clang/include/clang/AST/ASTContext.h:2467

Parameters

const clang::CXXRecordDecl* RD

clang::LangAS getOpenCLTypeAddrSpace(
    const clang::Type* T) const

Description

Get address space for OpenCL type.

Declared at: clang/include/clang/AST/ASTContext.h:1404

Parameters

const clang::Type* T

clang::OpenCLTypeKind getOpenCLTypeKind(
    const clang::Type* T) const

Description

Map an AST Type to an OpenCLTypeKind enum value.

Declared at: clang/include/clang/AST/ASTContext.h:1401

Parameters

const clang::Type* T

unsigned int getOpenMPDefaultSimdAlign(
    clang::QualType T) const

Description

Get default simd alignment of the specified complete type in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2291

Parameters

clang::QualType T

clang::TemplateName getOverloadedTemplateName(
    clang::UnresolvedSetIterator Begin,
    clang::UnresolvedSetIterator End) const

Declared at: clang/include/clang/AST/ASTContext.h:2188

Parameters

clang::UnresolvedSetIterator Begin
clang::UnresolvedSetIterator End

void getOverriddenMethods(
    const clang::NamedDecl* Method,
    SmallVectorImpl<const clang::NamedDecl*>&
        Overridden) const

Description

Return C++ or ObjC overridden methods for the given \p Method. An ObjC method is considered to override any method in the class's base classes, its protocols, or its categories' protocols, that has the same selector and is of the same kind (class or instance). A method in an implementation is not considered as overriding the same method in the interface or its categories.

Declared at: clang/include/clang/AST/ASTContext.h:1032

Parameters

const clang::NamedDecl* Method
SmallVectorImpl<const clang::NamedDecl*>& Overridden

clang::QualType getPackExpansionType(
    clang::QualType Pattern,
    Optional<unsigned int> NumExpansions,
    bool ExpectPackInType = true)

Description

Form a pack expansion type with the given pattern.

Declared at: clang/include/clang/AST/ASTContext.h:1680

Parameters

clang::QualType Pattern
Optional<unsigned int> NumExpansions
The number of expansions for the pack, if known.
bool ExpectPackInType = true
If \c false, we should not expect \p Pattern to contain an unexpanded pack. This only makes sense if the pack expansion is used in a context where the arity is inferred from elsewhere, such as if the pattern contains a placeholder type or if this is the canonical type of another pack expansion type.

unsigned int getParameterIndex(
    const clang::ParmVarDecl* D) const

Description

Used by ParmVarDecl to retrieve on the side the index of the parameter when it exceeds the size of the normal bitfield.

Declared at: clang/include/clang/AST/ASTContext.h:3082

Parameters

const clang::ParmVarDecl* D

clang::QualType getParenType(
    clang::QualType NamedType) const

Declared at: clang/include/clang/AST/ASTContext.h:1644

Parameters

clang::QualType NamedType

clang::ParentMapContext& getParentMapContext()

Description

Returns the dynamic AST node parent map context.

Declared at: clang/include/clang/AST/ASTContext.h:685

template <typename NodeT>
clang::DynTypedNodeList getParents(
    const NodeT& Node)

Description

Forwards to get node parents from the ParentMapContext. New callers should use ParentMapContext::getParents() directly.

Declared at: clang/include/clang/AST/ASTContext.h:710

Templates

NodeT

Parameters

const NodeT& Node

clang::QualType getPipeType(clang::QualType T,
                            bool ReadOnly) const

Declared at: clang/include/clang/AST/ASTContext.h:1240

Parameters

clang::QualType T
bool ReadOnly

clang::QualType getPointerDiffType() const

Description

Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef .h>. Pointer - pointer requires this (C99 6.5.6p9).

Declared at: clang/include/clang/AST/ASTContext.h:1798

clang::CanQualType getPointerType(
    clang::CanQualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:1350

Parameters

clang::CanQualType T

clang::QualType getPointerType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a pointer to the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1349

Parameters

clang::QualType T

clang::StringLiteral*
getPredefinedStringLiteralFromCache(
    llvm::StringRef Key) const

Description

Return a string representing the human readable name for the specified function declaration or file name. Used by SourceLocExpr and PredefinedExpr to cache evaluated results.

Declared at: clang/include/clang/AST/ASTContext.h:3087

Parameters

llvm::StringRef Key

unsigned int getPreferredTypeAlign(
    clang::QualType T) const

Description

Return the "preferred" alignment of the specified type \p T for the current target, in bits. This can be different than the ABI alignment in cases where it is beneficial for performance or backwards compatibility preserving to overalign a data type. (Note: despite the name, the preferred alignment is ABI-impacting, and not an optimization.)

Declared at: clang/include/clang/AST/ASTContext.h:2382

Parameters

clang::QualType T

unsigned int getPreferredTypeAlign(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2385

Parameters

const clang::Type* T

clang::CharUnits getPreferredTypeAlignInChars(
    clang::QualType T) const

Description

Return the PreferredAlignment of a (complete) type \p T, in characters.

Declared at: clang/include/clang/AST/ASTContext.h:2353

Parameters

clang::QualType T

clang::Decl* getPrimaryMergedDecl(clang::Decl* D)

Declared at: clang/include/clang/AST/ASTContext.h:1050

Parameters

clang::Decl* D

const clang::PrintingPolicy& getPrintingPolicy()
    const

Declared at: clang/include/clang/AST/ASTContext.h:712

clang::QualType getProcessIDType() const

Description

Return the unique type for "pid_t" defined in <sys /types.h>. We need this to compute the correct type for vfork().

Declared at: clang/include/clang/AST/ASTContext.h:1807

const clang::ProfileList& getProfileList() const

Declared at: clang/include/clang/AST/ASTContext.h:806

clang::QualType getPromotedIntegerType(
    clang::QualType PromotableType) const

Description

Return the type that \p PromotableType will promote to: C99 6.3.1.1p2, assuming that \p PromotableType is a promotable integer type.

Declared at: clang/include/clang/AST/ASTContext.h:2759

Parameters

clang::QualType PromotableType

clang::TemplateName getQualifiedTemplateName(
    clang::NestedNameSpecifier* NNS,
    bool TemplateKeyword,
    clang::TemplateName Template) const

Declared at: clang/include/clang/AST/ASTContext.h:2192

Parameters

clang::NestedNameSpecifier* NNS
bool TemplateKeyword
clang::TemplateName Template

clang::QualType getQualifiedType(
    const clang::Type* T,
    clang::Qualifiers Qs) const

Description

Return a type with additional qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:2149

Parameters

const clang::Type* T
clang::Qualifiers Qs

clang::QualType getQualifiedType(
    clang::QualType T,
    clang::Qualifiers Qs) const

Description

Return a type with additional qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:2140

Parameters

clang::QualType T
clang::Qualifiers Qs

clang::QualType getQualifiedType(
    clang::SplitQualType split) const

Description

Un-split a SplitQualType.

Declared at: clang/include/clang/AST/ASTContext.h:2135

Parameters

clang::SplitQualType split

clang::QualType getRValueReferenceType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for an rvalue reference to the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1437

Parameters

clang::QualType T

clang::QualType getRawCFConstantStringType() const

Description

Get the structure type used to representation CFStrings, or NULL if it hasn't yet been built.

Declared at: clang/include/clang/AST/ASTContext.h:1818

const clang::RawComment*
getRawCommentForAnyRedecl(
    const clang::Decl* D,
    const clang::Decl** OriginalDecl =
        nullptr) const

Description

Return the documentation comment attached to a given declaration. Returns nullptr if no comment is attached.

Declared at: clang/include/clang/AST/ASTContext.h:881

Parameters

const clang::Decl* D
const clang::Decl** OriginalDecl = nullptr
if not nullptr, is set to declaration AST node that had the comment, if the comment we found comes from a redeclaration.

clang::RawComment* getRawCommentForDeclNoCache(
    const clang::Decl* D) const

Description

Return the documentation comment attached to a given declaration, without looking into cache.

Declared at: clang/include/clang/AST/ASTContext.h:870

Parameters

const clang::Decl* D

clang::RawComment*
getRawCommentForDeclNoCacheImpl(
    const clang::Decl* D,
    const clang::SourceLocation
        RepresentativeLocForDecl,
    const std::map<unsigned int, RawComment*>&
        CommentsInFile) const

Description

\p RepresentativeLocForDecl is used as a location for searching doc comments. \p CommentsInFile is a mapping offset -> comment of files in the same file where \p RepresentativeLocForDecl is.

Declared at: clang/include/clang/AST/ASTContext.h:864

Parameters

const clang::Decl* D
const clang::SourceLocation RepresentativeLocForDecl
const std::map<unsigned int, RawComment*>& CommentsInFile

Returns

searches \p CommentsInFile for doc comment for \p D.

clang::QualType getReadPipeType(
    clang::QualType T) const

Description

Return a read_only pipe type for the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1383

Parameters

clang::QualType T

clang::QualType getRealTypeForBitwidth(
    unsigned int DestWidth,
    clang::FloatModeKind ExplicitType) const

Description

getRealTypeForBitwidth - sets floating point QualTy according to specified bitwidth. Returns empty type if there is no appropriate target types.

Declared at: clang/include/clang/AST/ASTContext.h:785

Parameters

unsigned int DestWidth
clang::FloatModeKind ExplicitType

clang::QualType getRecordType(
    const clang::RecordDecl* Decl) const

Declared at: clang/include/clang/AST/ASTContext.h:1601

Parameters

const clang::RecordDecl* Decl

clang::QualType getReferenceQualifiedType(
    const clang::Expr* e) const

Declared at: clang/include/clang/AST/ASTContext.h:1717

Parameters

const clang::Expr* e

clang::QualType getRestrictType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a \c restrict qualified type. The resulting type has a union of the qualifiers from \p T and\c restrict.

Declared at: clang/include/clang/AST/ASTContext.h:1282

Parameters

clang::QualType T

clang::QualType getScalableVectorType(
    clang::QualType EltTy,
    unsigned int NumElts) const

Description

Return the unique reference to a scalable vector type of the specified element type and scalable number of elements.

Declared at: clang/include/clang/AST/ASTContext.h:1501

Parameters

clang::QualType EltTy
unsigned int NumElts

size_t getSideTableAllocatedMemory() const

Description

Return the total memory used for various side tables.

Declared at: clang/include/clang/AST/ASTContext.h:766

clang::QualType getSignatureParameterType(
    clang::QualType T) const

Description

Retrieve the parameter type as adjusted for use in the signature of a function, decaying array and function types and removing top-level cv-qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:2743

Parameters

clang::QualType T

clang::CanQualType getSignedSizeType() const

Description

Return the unique signed counterpart of the integer type corresponding to size_t.

Declared at: clang/include/clang/AST/ASTContext.h:1755

clang::QualType getSignedWCharType() const

Description

Return the type of "signed wchar_t". Used when in C++, as a GCC extension.

Declared at: clang/include/clang/AST/ASTContext.h:1777

clang::CanQualType getSizeType() const

Description

Return the unique type for "size_t" (C99 7.17), defined in <stddef .h>. The sizeof operator requires this (C99 6.5.3.4p4).

Declared at: clang/include/clang/AST/ASTContext.h:1751

const clang::SourceManager& getSourceManager()
    const

Declared at: clang/include/clang/AST/ASTContext.h:721

clang::SourceManager& getSourceManager()

Declared at: clang/include/clang/AST/ASTContext.h:720

unsigned int getStaticLocalNumber(
    const clang::VarDecl* VD) const

Declared at: clang/include/clang/AST/ASTContext.h:3065

Parameters

const clang::VarDecl* VD

clang::QualType getStringLiteralArrayType(
    clang::QualType EltTy,
    unsigned int Length) const

Description

Return a type for a constant array for a string literal of the specified element type and length.

Declared at: clang/include/clang/AST/ASTContext.h:1477

Parameters

clang::QualType EltTy
unsigned int Length

clang::TemplateName getSubstTemplateTemplateParm(
    clang::TemplateTemplateParmDecl* param,
    clang::TemplateName replacement) const

Declared at: clang/include/clang/AST/ASTContext.h:2200

Parameters

clang::TemplateTemplateParmDecl* param
clang::TemplateName replacement

clang::TemplateName
getSubstTemplateTemplateParmPack(
    clang::TemplateTemplateParmDecl* Param,
    const clang::TemplateArgument& ArgPack) const

Declared at: clang/include/clang/AST/ASTContext.h:2202

Parameters

clang::TemplateTemplateParmDecl* Param
const clang::TemplateArgument& ArgPack

clang::QualType getSubstTemplateTypeParmPackType(
    const clang::TemplateTypeParmType* Replaced,
    const clang::TemplateArgument& ArgPack)

Declared at: clang/include/clang/AST/ASTContext.h:1618

Parameters

const clang::TemplateTypeParmType* Replaced
const clang::TemplateArgument& ArgPack

clang::QualType getSubstTemplateTypeParmType(
    const clang::TemplateTypeParmType* Replaced,
    clang::QualType Replacement) const

Declared at: clang/include/clang/AST/ASTContext.h:1616

Parameters

const clang::TemplateTypeParmType* Replaced
clang::QualType Replacement

clang::QualType getTagDeclType(
    const clang::TagDecl* Decl) const

Description

Return the unique reference to the type for the specified TagDecl (struct/union/class/enum) decl.

Declared at: clang/include/clang/AST/ASTContext.h:1745

Parameters

const clang::TagDecl* Decl

unsigned int getTargetAddressSpace(
    clang::Qualifiers Q) const

Declared at: clang/include/clang/AST/ASTContext.h:2792

Parameters

clang::Qualifiers Q

unsigned int getTargetAddressSpace(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2790

Parameters

clang::QualType T

unsigned int getTargetAddressSpace(
    clang::LangAS AS) const

Declared at: clang/include/clang/AST/ASTContext.h:2794

Parameters

clang::LangAS AS

unsigned int
getTargetDefaultAlignForAttributeAligned() const

Description

Return the default alignment for __attribute__((aligned)) on this target, to be used if no alignment value is specified.

Declared at: clang/include/clang/AST/ASTContext.h:2389

const clang::TargetInfo& getTargetInfo() const

Declared at: clang/include/clang/AST/ASTContext.h:772

uint64_t getTargetNullPointerValue(
    clang::QualType QT) const

Description

Get target-dependent integer value for null pointer which is used for constant folding.

Declared at: clang/include/clang/AST/ASTContext.h:2800

Parameters

clang::QualType QT

clang::ASTContext::TemplateOrSpecializationInfo
getTemplateOrSpecializationInfo(
    const clang::VarDecl* Var)

Declared at: clang/include/clang/AST/ASTContext.h:975

Parameters

const clang::VarDecl* Var

clang::TemplateParamObjectDecl*
getTemplateParamObjectDecl(
    clang::QualType T,
    const clang::APValue& V) const

Description

Return the template parameter object of the given type with the given value.

Declared at: clang/include/clang/AST/ASTContext.h:3100

Parameters

clang::QualType T
const clang::APValue& V

clang::QualType getTemplateSpecializationType(
    clang::TemplateName T,
    ArrayRef<clang::TemplateArgument> Args,
    clang::QualType Canon =
        clang::QualType()) const

Declared at: clang/include/clang/AST/ASTContext.h:1627

Parameters

clang::TemplateName T
ArrayRef<clang::TemplateArgument> Args
clang::QualType Canon = clang::QualType()

clang::QualType getTemplateSpecializationType(
    clang::TemplateName T,
    const clang::TemplateArgumentListInfo& Args,
    clang::QualType Canon =
        clang::QualType()) const

Declared at: clang/include/clang/AST/ASTContext.h:1635

Parameters

clang::TemplateName T
const clang::TemplateArgumentListInfo& Args
clang::QualType Canon = clang::QualType()

clang::TypeSourceInfo*
getTemplateSpecializationTypeInfo(
    clang::TemplateName T,
    clang::SourceLocation TLoc,
    const clang::TemplateArgumentListInfo& Args,
    clang::QualType Canon =
        clang::QualType()) const

Declared at: clang/include/clang/AST/ASTContext.h:1640

Parameters

clang::TemplateName T
clang::SourceLocation TLoc
const clang::TemplateArgumentListInfo& Args
clang::QualType Canon = clang::QualType()

clang::QualType getTemplateTypeParmType(
    unsigned int Depth,
    unsigned int Index,
    bool ParameterPack,
    clang::TemplateTypeParmDecl* ParmDecl =
        nullptr) const

Declared at: clang/include/clang/AST/ASTContext.h:1623

Parameters

unsigned int Depth
unsigned int Index
bool ParameterPack
clang::TemplateTypeParmDecl* ParmDecl = nullptr

clang::TranslationUnitDecl*
getTranslationUnitDecl() const

Declared at: clang/include/clang/AST/ASTContext.h:1088

std::vector<Decl*> getTraversalScope() const

Declared at: clang/include/clang/AST/ASTContext.h:705

clang::TypeSourceInfo* getTrivialTypeSourceInfo(
    clang::QualType T,
    clang::SourceLocation Loc =
        clang::SourceLocation()) const

Description

Allocate a TypeSourceInfo where all locations have been initialized to a given location, which defaults to the empty location.

Declared at: clang/include/clang/AST/ASTContext.h:3008

Parameters

clang::QualType T
clang::SourceLocation Loc = clang::SourceLocation()

unsigned int getTypeAlign(clang::QualType T) const

Description

Return the ABI-specified alignment of a (complete) type \p T, in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2325

Parameters

clang::QualType T

unsigned int getTypeAlign(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2326

Parameters

const clang::Type* T

unsigned int getTypeAlignIfKnown(
    clang::QualType T,
    bool NeedsPreferredAlignment = false) const

Description

Return the alignment of a type, in bits, or 0 if the type is incomplete and we cannot determine the alignment (for example, from alignment attributes). The returned alignment is the Preferred alignment if NeedsPreferredAlignment is true, otherwise is the ABI alignment.

Declared at: clang/include/clang/AST/ASTContext.h:2343

Parameters

clang::QualType T
bool NeedsPreferredAlignment = false

clang::CharUnits getTypeAlignInChars(
    clang::QualType T) const

Description

Return the ABI-specified alignment of a (complete) type \p T, in characters.

Declared at: clang/include/clang/AST/ASTContext.h:2348

Parameters

clang::QualType T

clang::CharUnits getTypeAlignInChars(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2349

Parameters

const clang::Type* T

clang::QualType getTypeDeclType(
    const clang::TypeDecl* Decl,
    const clang::TypeDecl* PrevDecl =
        nullptr) const

Description

Return the unique reference to the type for the specified type declaration.

Declared at: clang/include/clang/AST/ASTContext.h:1579

Parameters

const clang::TypeDecl* Decl
const clang::TypeDecl* PrevDecl = nullptr

clang::QualType getTypeDeclTypeSlow(
    const clang::TypeDecl* Decl) const

Declared at: clang/include/clang/AST/ASTContext.h:1238

Parameters

const clang::TypeDecl* Decl

clang::TypeInfo getTypeInfo(
    const clang::Type* T) const

Description

Get the size and alignment of the specified complete type in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2287

Parameters

const clang::Type* T

clang::TypeInfo getTypeInfo(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2288

Parameters

clang::QualType T

clang::TypeInfoChars getTypeInfoDataSizeInChars(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2365

Parameters

clang::QualType T

clang::TypeInfo getTypeInfoImpl(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2240

Parameters

const clang::Type* T

clang::TypeInfoChars getTypeInfoInChars(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2367

Parameters

const clang::Type* T

clang::TypeInfoChars getTypeInfoInChars(
    clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2368

Parameters

clang::QualType T

clang::QualType getTypeOfExprType(
    clang::Expr* e) const

Description

GCC extension.

Declared at: clang/include/clang/AST/ASTContext.h:1714

Parameters

clang::Expr* e

clang::QualType getTypeOfType(
    clang::QualType t) const

Declared at: clang/include/clang/AST/ASTContext.h:1715

Parameters

clang::QualType t

clang::BuiltinTemplateDecl*
getTypePackElementDecl() const

Declared at: clang/include/clang/AST/ASTContext.h:1103

clang::IdentifierInfo* getTypePackElementName()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1915

uint64_t getTypeSize(clang::QualType T) const

Description

Return the size of the specified (complete) type \p T, in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2294

Parameters

clang::QualType T

uint64_t getTypeSize(const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2295

Parameters

const clang::Type* T

clang::CharUnits getTypeSizeInChars(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2311

Parameters

const clang::Type* T

clang::CharUnits getTypeSizeInChars(
    clang::QualType T) const

Description

Return the size of the specified (complete) type \p T, in characters.

Declared at: clang/include/clang/AST/ASTContext.h:2310

Parameters

clang::QualType T

Optional<clang::CharUnits>
getTypeSizeInCharsIfKnown(
    clang::QualType Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2313

Parameters

clang::QualType Ty

Optional<clang::CharUnits>
getTypeSizeInCharsIfKnown(
    const clang::Type* Ty) const

Declared at: clang/include/clang/AST/ASTContext.h:2319

Parameters

const clang::Type* Ty

unsigned int getTypeUnadjustedAlign(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2336

Parameters

const clang::Type* T

unsigned int getTypeUnadjustedAlign(
    clang::QualType T) const

Description

Return the ABI-specified natural alignment of a (complete) type \p T, before alignment adjustments, in bits. This alignment is curently used only by ARM and AArch64 when passing arguments of a composite type.

Declared at: clang/include/clang/AST/ASTContext.h:2333

Parameters

clang::QualType T

clang::CharUnits getTypeUnadjustedAlignInChars(
    const clang::Type* T) const

Declared at: clang/include/clang/AST/ASTContext.h:2361

Parameters

const clang::Type* T

clang::CharUnits getTypeUnadjustedAlignInChars(
    clang::QualType T) const

Description

getTypeUnadjustedAlignInChars - Return the ABI-specified alignment of a type, in characters, before alignment adjustments. This method does not work on incomplete types.

Declared at: clang/include/clang/AST/ASTContext.h:2360

Parameters

clang::QualType T

clang::TypedefNameDecl*
getTypedefNameForUnnamedTagDecl(
    const clang::TagDecl* TD)

Declared at: clang/include/clang/AST/ASTContext.h:3054

Parameters

const clang::TagDecl* TD

clang::QualType getTypedefType(
    const clang::TypedefNameDecl* Decl,
    clang::QualType Underlying =
        clang::QualType()) const

Description

Return the unique reference to the type for the specified typedef-name decl.

Declared at: clang/include/clang/AST/ASTContext.h:1598

Parameters

const clang::TypedefNameDecl* Decl
clang::QualType Underlying = clang::QualType()

const SmallVectorImpl<clang::Type*>& getTypes()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1211

clang::TypedefDecl* getUInt128Decl() const

Description

Retrieve the declaration for the 128-bit unsigned integer type.

Declared at: clang/include/clang/AST/ASTContext.h:1228

clang::CanQualType getUIntMaxType() const

Description

Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in <stdint .h>.

Declared at: clang/include/clang/AST/ASTContext.h:1763

clang::QualType getUIntPtrType() const

Description

Return a type compatible with "uintptr_t" (C99 7.18.1.4), as defined by the target.

Declared at: clang/include/clang/AST/ASTContext.h:1794

clang::QualType getUnaryTransformType(
    clang::QualType BaseType,
    clang::QualType UnderlyingType,
    UnaryTransformType::UTTKind UKind) const

Description

Unary type transforms

Declared at: clang/include/clang/AST/ASTContext.h:1723

Parameters

clang::QualType BaseType
clang::QualType UnderlyingType
UnaryTransformType::UTTKind UKind

clang::UnnamedGlobalConstantDecl*
getUnnamedGlobalConstantDecl(
    clang::QualType Ty,
    const clang::APValue& Value) const

Description

Return a declaration for a uniquified anonymous global constant corresponding to a given APValue.

Declared at: clang/include/clang/AST/ASTContext.h:3096

Parameters

clang::QualType Ty
const clang::APValue& Value

clang::QualType getUnqualifiedArrayType(
    clang::QualType T,
    clang::Qualifiers& Quals)

Description

Return this type as a completely-unqualified array type, capturing the qualifiers in \p Quals. This will remove the minimal amount of sugaring from the types, similar to the behavior of QualType::getUnqualifiedType().

Declared at: clang/include/clang/AST/ASTContext.h:2553

Parameters

clang::QualType T
is the qualified type, which may be an ArrayType
clang::Qualifiers& Quals
will receive the full set of qualifiers that were applied to the array.

Returns

if this is an array type, the completely unqualified array type that corresponds to it. Otherwise, returns T.getUnqualifiedType().

clang::QualType getUnqualifiedObjCPointerType(
    clang::QualType type) const

Description

getUnqualifiedObjCPointerType - Returns version of Objective-C pointer type with lifetime qualifier removed.

Declared at: clang/include/clang/AST/ASTContext.h:2170

Parameters

clang::QualType type

clang::QualType getUnresolvedUsingType(
    const clang::UnresolvedUsingTypenameDecl*
        Decl) const

Declared at: clang/include/clang/AST/ASTContext.h:1606

Parameters

const clang::UnresolvedUsingTypenameDecl* Decl

clang::QualType getUnsignedPointerDiffType() const

Description

Return the unique unsigned counterpart of "ptrdiff_t" integer type. The standard (C11 7.21.6.1p7) refers to this type in the definition of %tu format specifier.

Declared at: clang/include/clang/AST/ASTContext.h:1803

clang::QualType getUnsignedWCharType() const

Description

Return the type of "unsigned wchar_t". Used when in C++, as a GCC extension.

Declared at: clang/include/clang/AST/ASTContext.h:1782

clang::QualType getUsingType(
    const clang::UsingShadowDecl* Found,
    clang::QualType Underlying) const

Declared at: clang/include/clang/AST/ASTContext.h:1593

Parameters

const clang::UsingShadowDecl* Found
clang::QualType Underlying

clang::VTableContextBase* getVTableContext()

Declared at: clang/include/clang/AST/ASTContext.h:2483

clang::Decl* getVaListTagDecl() const

Description

Retrieve the C type declaration corresponding to the predefined\c __va_list_tag type used to help define the \c __builtin_va_list type for some targets.

Declared at: clang/include/clang/AST/ASTContext.h:2104

clang::QualType getVariableArrayDecayedType(
    clang::QualType Ty) const

Description

Returns a vla type where known sizes are replaced with [*].

Declared at: clang/include/clang/AST/ASTContext.h:1480

Parameters

clang::QualType Ty

clang::QualType getVariableArrayType(
    clang::QualType EltTy,
    clang::Expr* NumElts,
    ArrayType::ArraySizeModifier ASM,
    unsigned int IndexTypeQuals,
    clang::SourceRange Brackets) const

Description

Return a non-unique reference to the type for a variable array of the specified element type.

Declared at: clang/include/clang/AST/ASTContext.h:1447

Parameters

clang::QualType EltTy
clang::Expr* NumElts
ArrayType::ArraySizeModifier ASM
unsigned int IndexTypeQuals
clang::SourceRange Brackets

clang::QualType getVectorType(
    clang::QualType VectorType,
    unsigned int NumElts,
    VectorType::VectorKind VecKind) const

Description

Return the unique reference to a vector type of the specified element type and size.

Declared at: clang/include/clang/AST/ASTContext.h:1507

Parameters

clang::QualType VectorType
unsigned int NumElts
VectorType::VectorKind VecKind

clang::QualType getVolatileType(
    clang::QualType T) const

Description

Return the uniqued reference to the type for a \c volatile qualified type. The resulting type has a union of the qualifiers from \p T and\c volatile.

Declared at: clang/include/clang/AST/ASTContext.h:1291

Parameters

clang::QualType T

clang::QualType getWCharType() const

Description

Return the unique wchar_t type available in C++ (and available as __wchar_t as a Microsoft extension).

Declared at: clang/include/clang/AST/ASTContext.h:1767

clang::QualType getWIntType() const

Description

In C99, this returns a type compatible with the type defined in <stddef .h> as defined by the target.

Declared at: clang/include/clang/AST/ASTContext.h:1786

clang::QualType getWideCharType() const

Description

Return the type of wide characters. In C++, this returns the unique wchar_t type. In C99, this returns a type compatible with the type defined in <stddef .h> as defined by the target.

Declared at: clang/include/clang/AST/ASTContext.h:1772

clang::QualType getWritePipeType(
    clang::QualType T) const

Description

Return a write_only pipe type for the specified type.

Declared at: clang/include/clang/AST/ASTContext.h:1386

Parameters

clang::QualType T

const clang::XRayFunctionFilter& getXRayFilter()
    const

Declared at: clang/include/clang/AST/ASTContext.h:802

clang::FunctionDecl* getcudaConfigureCallDecl()

Declared at: clang/include/clang/AST/ASTContext.h:1416

clang::QualType getjmp_bufType() const

Description

Retrieve the C jmp_buf type.

Declared at: clang/include/clang/AST/ASTContext.h:1947

clang::QualType getsigjmp_bufType() const

Description

Retrieve the C sigjmp_buf type.

Declared at: clang/include/clang/AST/ASTContext.h:1959

clang::QualType getucontext_tType() const

Description

Retrieve the C ucontext_t type.

Declared at: clang/include/clang/AST/ASTContext.h:1971

bool hasCvrSimilarType(clang::QualType T1,
                       clang::QualType T2)

Description

Determine if two types are similar, ignoring only CVR qualifiers.

Declared at: clang/include/clang/AST/ASTContext.h:2608

Parameters

clang::QualType T1
clang::QualType T2

bool hasDirectOwnershipQualifier(
    clang::QualType Ty) const

Description

Return true if the type has been explicitly qualified with ObjC ownership. A type may be implicitly qualified with ownership under ObjC ARC, and in some cases the compiler treats these differently.

Declared at: clang/include/clang/AST/ASTContext.h:2270

Parameters

clang::QualType Ty

bool hasSameFunctionTypeIgnoringExceptionSpec(
    clang::QualType T,
    clang::QualType U) const

Description

Determine whether two function types are the same, ignoring exception specifications in cases where they're part of the type.

Declared at: clang/include/clang/AST/ASTContext.h:1323

Parameters

clang::QualType T
clang::QualType U

bool hasSameFunctionTypeIgnoringPtrSizes(
    clang::QualType T,
    clang::QualType U)

Description

Determine whether two function types are the same, ignoring pointer sizes in the return type and parameter types.

Declared at: clang/include/clang/AST/ASTContext.h:1338

Parameters

clang::QualType T
clang::QualType U

bool hasSameNullabilityTypeQualifier(
    clang::QualType SubT,
    clang::QualType SuperT,
    bool IsParam) const

Declared at: clang/include/clang/AST/ASTContext.h:2562

Parameters

clang::QualType SubT
clang::QualType SuperT
bool IsParam

bool hasSameTemplateName(
    const clang::TemplateName& X,
    const clang::TemplateName& Y) const

Description

Determine whether the given template names refer to the same template.

Declared at: clang/include/clang/AST/ASTContext.h:2663

Parameters

const clang::TemplateName& X
const clang::TemplateName& Y

bool hasSameType(clang::QualType T1,
                 clang::QualType T2) const

Description

Determine whether the given types \p T1 and \p T2 are equivalent.

Declared at: clang/include/clang/AST/ASTContext.h:2533

Parameters

clang::QualType T1
clang::QualType T2

bool hasSameType(const clang::Type* T1,
                 const clang::Type* T2) const

Declared at: clang/include/clang/AST/ASTContext.h:2536

Parameters

const clang::Type* T1
const clang::Type* T2

bool hasSameUnqualifiedType(
    clang::QualType T1,
    clang::QualType T2) const

Description

Determine whether the given types are equivalent after cvr-qualifiers have been removed.

Declared at: clang/include/clang/AST/ASTContext.h:2557

Parameters

clang::QualType T1
clang::QualType T2

bool hasSimilarType(clang::QualType T1,
                    clang::QualType T2)

Description

Determine if two types are similar, according to the C++ rules. That is, determine if they are the same other than qualifiers on the initial sequence of pointer / pointer-to-member / array (and in Clang, object pointer) types and their element types. Clang offers a number of qualifiers in addition to the C++ qualifiers; those qualifiers are also ignored in the 'similarity' check.

Declared at: clang/include/clang/AST/ASTContext.h:2605

Parameters

clang::QualType T1
clang::QualType T2

bool hasUniqueObjectRepresentations(
    clang::QualType Ty) const

Description

Return true if the specified type has unique object representations according to (C++17 [meta.unary.prop]p9)

Declared at: clang/include/clang/AST/ASTContext.h:2503

Parameters

clang::QualType Ty

bool isAlignmentRequired(
    const clang::Type* T) const

Description

Determine if the alignment the type has was required using an alignment attribute.

Declared at: clang/include/clang/AST/ASTContext.h:2372

Parameters

const clang::Type* T

bool isAlignmentRequired(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2373

Parameters

clang::QualType T

bool isDependenceAllowed() const

Declared at: clang/include/clang/AST/ASTContext.h:796

bool isMSStaticDataMemberInlineDefinition(
    const clang::VarDecl* VD) const

Description

Returns true if this is an inline-initialized static data member which is treated as a definition for MSVC compatibility.

Declared at: clang/include/clang/AST/ASTContext.h:3231

Parameters

const clang::VarDecl* VD

bool isNearlyEmpty(
    const clang::CXXRecordDecl* RD) const

Declared at: clang/include/clang/AST/ASTContext.h:2481

Parameters

const clang::CXXRecordDecl* RD

bool isObjCClassType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2826

Parameters

clang::QualType T

bool isObjCIdType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2822

Parameters

clang::QualType T

static bool isObjCNSObjectType(clang::QualType Ty)

Description

Return true if this is an \c NSObject object with its \c NSObject attribute set.

Declared at: clang/include/clang/AST/ASTContext.h:2274

Parameters

clang::QualType Ty

bool isObjCSelType(clang::QualType T) const

Declared at: clang/include/clang/AST/ASTContext.h:2830

Parameters

clang::QualType T

clang::QualType isPromotableBitField(
    clang::Expr* E) const

Description

Whether this is a promotable bitfield reference according to C99 6.3.1.1p2, bullet 2 (and GCC extensions).

Declared at: clang/include/clang/AST/ASTContext.h:2770

Parameters

clang::Expr* E

Returns

the type this bit-field will promote to, or NULL if no promotion occurs.

bool isSameConstraintExpr(
    const clang::Expr* XCE,
    const clang::Expr* YCE) const

Description

Determine whether two 'requires' expressions are similar enough that they may be used in re-declarations. Use of 'requires' isn't mandatory, works with constraints expressed in other ways too.

Declared at: clang/include/clang/AST/ASTContext.h:2682

Parameters

const clang::Expr* XCE
const clang::Expr* YCE

bool isSameDefaultTemplateArgument(
    const clang::NamedDecl* X,
    const clang::NamedDecl* Y) const

Description

Determine whether two default template arguments are similar enough that they may be used in declarations of the same template.

Declared at: clang/include/clang/AST/ASTContext.h:2691

Parameters

const clang::NamedDecl* X
const clang::NamedDecl* Y

bool isSameEntity(const clang::NamedDecl* X,
                  const clang::NamedDecl* Y) const

Description

Determine whether the two declarations refer to the same entity.

Declared at: clang/include/clang/AST/ASTContext.h:2666

Parameters

const clang::NamedDecl* X
const clang::NamedDecl* Y

bool isSameTemplateParameter(
    const clang::NamedDecl* X,
    const clang::NamedDecl* Y) const

Description

Determine whether two template parameters are similar enough that they may be used in declarations of the same template.

Declared at: clang/include/clang/AST/ASTContext.h:2675

Parameters

const clang::NamedDecl* X
const clang::NamedDecl* Y

bool isSameTemplateParameterList(
    const clang::TemplateParameterList* X,
    const clang::TemplateParameterList* Y) const

Description

Determine whether two template parameter lists are similar enough that they may be used in declarations of the same template.

Declared at: clang/include/clang/AST/ASTContext.h:2670

Parameters

const clang::TemplateParameterList* X
const clang::TemplateParameterList* Y

bool isSameTypeConstraint(
    const clang::TypeConstraint* XTC,
    const clang::TypeConstraint* YTC) const

Description

Determine whether two type contraint are similar enough that they could used in declarations of the same template.

Declared at: clang/include/clang/AST/ASTContext.h:2686

Parameters

const clang::TypeConstraint* XTC
const clang::TypeConstraint* YTC

bool isSentinelNullExpr(const clang::Expr* E)

Declared at: clang/include/clang/AST/ASTContext.h:2947

Parameters

const clang::Expr* E

clang::ASTContext::import_range local_imports()
    const

Declared at: clang/include/clang/AST/ASTContext.h:1046

uint64_t lookupFieldBitOffset(
    const clang::ObjCInterfaceDecl* OID,
    const clang::ObjCImplementationDecl* ID,
    const clang::ObjCIvarDecl* Ivar) const

Description

Get the offset of an ObjCIvarDecl in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2473

Parameters

const clang::ObjCInterfaceDecl* OID
const clang::ObjCImplementationDecl* ID
const clang::ObjCIvarDecl* Ivar

bool mayExternalize(const clang::Decl* D) const

Description

Whether a C++ static variable or CUDA/HIP kernel may be externalized.

Declared at: clang/include/clang/AST/ASTContext.h:3315

Parameters

const clang::Decl* D

void mergeDefinitionIntoModule(
    clang::NamedDecl* ND,
    clang::Module* M,
    bool NotifyListeners = true)

Description

Note that the definition \p ND has been merged into module \p M, and should be visible whenever \p M is visible.

Declared at: clang/include/clang/AST/ASTContext.h:1060

Parameters

clang::NamedDecl* ND
clang::Module* M
bool NotifyListeners = true

bool mergeExtParameterInfo(
    const clang::FunctionProtoType* FirstFnType,
    const clang::FunctionProtoType* SecondFnType,
    bool& CanUseFirst,
    bool& CanUseSecond,
    SmallVectorImpl<
        FunctionProtoType::ExtParameterInfo>&
        NewParamInfos)

Description

This function merges the ExtParameterInfo lists of two functions. It returns true if the lists are compatible. The merged list is returned in NewParamInfos.

Declared at: clang/include/clang/AST/ASTContext.h:2888

Parameters

const clang::FunctionProtoType* FirstFnType
The type of the first function.
const clang::FunctionProtoType* SecondFnType
The type of the second function.
bool& CanUseFirst
This flag is set to true if the first function's ExtParameterInfo list can be used as the composite list of ExtParameterInfo.
bool& CanUseSecond
This flag is set to true if the second function's ExtParameterInfo list can be used as the composite list of ExtParameterInfo.
SmallVectorImpl< FunctionProtoType::ExtParameterInfo>& NewParamInfos
The composite list of ExtParameterInfo. The list is empty if none of the flags are set.

clang::QualType mergeFunctionParameterTypes(
    clang::QualType,
    clang::QualType,
    bool OfBlockPointer = false,
    bool Unqualified = false)

Declared at: clang/include/clang/AST/ASTContext.h:2860

Parameters

clang::QualType
clang::QualType
bool OfBlockPointer = false
bool Unqualified = false

clang::QualType mergeFunctionTypes(
    clang::QualType,
    clang::QualType,
    bool OfBlockPointer = false,
    bool Unqualified = false,
    bool AllowCXX = false)

Declared at: clang/include/clang/AST/ASTContext.h:2858

Parameters

clang::QualType
clang::QualType
bool OfBlockPointer = false
bool Unqualified = false
bool AllowCXX = false

clang::QualType mergeObjCGCQualifiers(
    clang::QualType,
    clang::QualType)

Declared at: clang/include/clang/AST/ASTContext.h:2867

Parameters

clang::QualType
clang::QualType

clang::QualType mergeTransparentUnionType(
    clang::QualType,
    clang::QualType,
    bool OfBlockPointer = false,
    bool Unqualified = false)

Declared at: clang/include/clang/AST/ASTContext.h:2863

Parameters

clang::QualType
clang::QualType
bool OfBlockPointer = false
bool Unqualified = false

clang::QualType mergeTypes(
    clang::QualType,
    clang::QualType,
    bool OfBlockPointer = false,
    bool Unqualified = false,
    bool BlockReturnType = false)

Declared at: clang/include/clang/AST/ASTContext.h:2856

Parameters

clang::QualType
clang::QualType
bool OfBlockPointer = false
bool Unqualified = false
bool BlockReturnType = false

clang::ASTContext::overridden_method_range
overridden_methods(
    const clang::CXXMethodDecl* Method) const

Declared at: clang/include/clang/AST/ASTContext.h:1018

Parameters

const clang::CXXMethodDecl* Method

clang::ASTContext::overridden_cxx_method_iterator
overridden_methods_begin(
    const clang::CXXMethodDecl* Method) const

Declared at: clang/include/clang/AST/ASTContext.h:1008

Parameters

const clang::CXXMethodDecl* Method

clang::ASTContext::overridden_cxx_method_iterator
overridden_methods_end(
    const clang::CXXMethodDecl* Method) const

Declared at: clang/include/clang/AST/ASTContext.h:1011

Parameters

const clang::CXXMethodDecl* Method

unsigned int overridden_methods_size(
    const clang::CXXMethodDecl* Method) const

Declared at: clang/include/clang/AST/ASTContext.h:1013

Parameters

const clang::CXXMethodDecl* Method

bool propertyTypesAreCompatible(clang::QualType,
                                clang::QualType)

Declared at: clang/include/clang/AST/ASTContext.h:2819

Parameters

clang::QualType
clang::QualType

clang::QualType removeAddrSpaceQualType(
    clang::QualType T) const

Description

Remove any existing address space on the type and returns the type with qualifiers intact (or that's the idea anyway) The return type should be T with all prior qualifiers minus the address space.

Declared at: clang/include/clang/AST/ASTContext.h:1256

Parameters

clang::QualType T

clang::QualType removePtrSizeAddrSpace(
    clang::QualType T) const

Description

Remove the existing address space on the type if it is a pointer size address space and return the type with qualifiers intact.

Declared at: clang/include/clang/AST/ASTContext.h:1275

Parameters

clang::QualType T

void setASTMutationListener(
    clang::ASTMutationListener* Listener)

Description

Attach an AST mutation listener to the AST context. The AST mutation listener provides the ability to track modifications to the abstract syntax tree entities committed after they were initially created.

Declared at: clang/include/clang/AST/ASTContext.h:1202

Parameters

clang::ASTMutationListener* Listener

void setBOOLDecl(clang::TypedefDecl* TD)

Description

Save declaration of 'BOOL' typedef

Declared at: clang/include/clang/AST/ASTContext.h:2078

Parameters

clang::TypedefDecl* TD

void setBlockVarCopyInit(const clang::VarDecl* VD,
                         clang::Expr* CopyExpr,
                         bool CanThrow)

Description

Set the copy initialization expression of a block var decl. \p CanThrow indicates whether the copy expression can throw or not.

Declared at: clang/include/clang/AST/ASTContext.h:2985

Parameters

const clang::VarDecl* VD
clang::Expr* CopyExpr
bool CanThrow

void setCFConstantStringType(clang::QualType T)

Declared at: clang/include/clang/AST/ASTContext.h:1823

Parameters

clang::QualType T

void setExternalSource(
    IntrusiveRefCntPtr<clang::ExternalASTSource>
        Source)

Description

Attach an external AST source to the AST context. The external AST source provides the ability to load parts of the abstract syntax tree as needed from some external storage, e.g., a precompiled header.

Declared at: clang/include/clang/AST/ASTContext.h:1189

Parameters

IntrusiveRefCntPtr<clang::ExternalASTSource> Source

void setFILEDecl(clang::TypeDecl* FILEDecl)

Description

Set the type for the C FILE type.

Declared at: clang/include/clang/AST/ASTContext.h:1932

Parameters

clang::TypeDecl* FILEDecl

void setInstantiatedFromStaticDataMember(
    clang::VarDecl* Inst,
    clang::VarDecl* Tmpl,
    clang::TemplateSpecializationKind TSK,
    clang::SourceLocation PointOfInstantiation =
        clang::SourceLocation())

Description

Note that the static data member \p Inst is an instantiation of the static data member template \p Tmpl of a class template.

Declared at: clang/include/clang/AST/ASTContext.h:970

Parameters

clang::VarDecl* Inst
clang::VarDecl* Tmpl
clang::TemplateSpecializationKind TSK
clang::SourceLocation PointOfInstantiation = clang::SourceLocation()

void setInstantiatedFromUnnamedFieldDecl(
    clang::FieldDecl* Inst,
    clang::FieldDecl* Tmpl)

Declared at: clang/include/clang/AST/ASTContext.h:1003

Parameters

clang::FieldDecl* Inst
clang::FieldDecl* Tmpl

void setInstantiatedFromUsingDecl(
    clang::NamedDecl* Inst,
    clang::NamedDecl* Pattern)

Description

Remember that the using decl \p Inst is an instantiation of the using decl \p Pattern of a class template.

Declared at: clang/include/clang/AST/ASTContext.h:986

Parameters

clang::NamedDecl* Inst
clang::NamedDecl* Pattern

void setInstantiatedFromUsingEnumDecl(
    clang::UsingEnumDecl* Inst,
    clang::UsingEnumDecl* Pattern)

Description

Remember that the using enum decl \p Inst is an instantiation of the using enum decl \p Pattern of a class template.

Declared at: clang/include/clang/AST/ASTContext.h:994

Parameters

clang::UsingEnumDecl* Inst
clang::UsingEnumDecl* Pattern

void setInstantiatedFromUsingShadowDecl(
    clang::UsingShadowDecl* Inst,
    clang::UsingShadowDecl* Pattern)

Declared at: clang/include/clang/AST/ASTContext.h:998

Parameters

clang::UsingShadowDecl* Inst
clang::UsingShadowDecl* Pattern

void setManglingNumber(const clang::NamedDecl* ND,
                       unsigned int Number)

Declared at: clang/include/clang/AST/ASTContext.h:3060

Parameters

const clang::NamedDecl* ND
unsigned int Number

void setModuleForCodeGen(clang::Module* M)

Description

Set the (C++20) module we are building.

Declared at: clang/include/clang/AST/ASTContext.h:1083

Parameters

clang::Module* M

void setNonKeyFunction(
    const clang::CXXMethodDecl* method)

Description

Observe that the given method cannot be a key function. Checks the key-function cache for the method's class and clears it if matches the given declaration. This is used in ABIs where out-of-line definitions marked inline are not considered to be key functions.

Declared at: clang/include/clang/AST/ASTContext.h:2456

Parameters

const clang::CXXMethodDecl* method
should be the declaration from the class definition

void setObjCClassRedefinitionType(
    clang::QualType RedefType)

Description

Set the user-written type that redefines 'SEL'.

Declared at: clang/include/clang/AST/ASTContext.h:1863

Parameters

clang::QualType RedefType

void setObjCConstantStringInterface(
    clang::ObjCInterfaceDecl* Decl)

Declared at: clang/include/clang/AST/ASTContext.h:1828

Parameters

clang::ObjCInterfaceDecl* Decl

void setObjCIdRedefinitionType(
    clang::QualType RedefType)

Description

Set the user-written type that redefines \c id.

Declared at: clang/include/clang/AST/ASTContext.h:1850

Parameters

clang::QualType RedefType

void setObjCImplementation(
    clang::ObjCInterfaceDecl* IFaceD,
    clang::ObjCImplementationDecl* ImplD)

Description

Set the implementation of ObjCInterfaceDecl.

Declared at: clang/include/clang/AST/ASTContext.h:2963

Parameters

clang::ObjCInterfaceDecl* IFaceD
clang::ObjCImplementationDecl* ImplD

void setObjCImplementation(
    clang::ObjCCategoryDecl* CatD,
    clang::ObjCCategoryImplDecl* ImplD)

Description

Set the implementation of ObjCCategoryDecl.

Declared at: clang/include/clang/AST/ASTContext.h:2967

Parameters

clang::ObjCCategoryDecl* CatD
clang::ObjCCategoryImplDecl* ImplD

void setObjCMethodRedeclaration(
    const clang::ObjCMethodDecl* MD,
    const clang::ObjCMethodDecl* Redecl)

Declared at: clang/include/clang/AST/ASTContext.h:2975

Parameters

const clang::ObjCMethodDecl* MD
const clang::ObjCMethodDecl* Redecl

void setObjCNSStringType(clang::QualType T)

Declared at: clang/include/clang/AST/ASTContext.h:1837

Parameters

clang::QualType T

void setObjCSelRedefinitionType(
    clang::QualType RedefType)

Description

Set the user-written type that redefines 'SEL'.

Declared at: clang/include/clang/AST/ASTContext.h:1876

Parameters

clang::QualType RedefType

void setObjCSuperType(clang::QualType ST)

Declared at: clang/include/clang/AST/ASTContext.h:1814

Parameters

clang::QualType ST

void setParameterIndex(
    const clang::ParmVarDecl* D,
    unsigned int index)

Description

Used by ParmVarDecl to store on the side the index of the parameter when it exceeds the size of the normal bitfield.

Declared at: clang/include/clang/AST/ASTContext.h:3078

Parameters

const clang::ParmVarDecl* D
unsigned int index

void setPrimaryMergedDecl(clang::Decl* D,
                          clang::Decl* Primary)

Declared at: clang/include/clang/AST/ASTContext.h:1054

Parameters

clang::Decl* D
clang::Decl* Primary

void setPrintingPolicy(
    const clang::PrintingPolicy& Policy)

Declared at: clang/include/clang/AST/ASTContext.h:716

Parameters

const clang::PrintingPolicy& Policy

void setStaticLocalNumber(
    const clang::VarDecl* VD,
    unsigned int Number)

Declared at: clang/include/clang/AST/ASTContext.h:3064

Parameters

const clang::VarDecl* VD
unsigned int Number

void setTemplateOrSpecializationInfo(
    clang::VarDecl* Inst,
    clang::ASTContext::
        TemplateOrSpecializationInfo TSI)

Declared at: clang/include/clang/AST/ASTContext.h:977

Parameters

clang::VarDecl* Inst
clang::ASTContext::TemplateOrSpecializationInfo TSI

void setTraversalScope(const std::vector<Decl*>&)

Declared at: clang/include/clang/AST/ASTContext.h:706

Parameters

const std::vector<Decl*>&

void setcudaConfigureCallDecl(
    clang::FunctionDecl* FD)

Declared at: clang/include/clang/AST/ASTContext.h:1412

Parameters

clang::FunctionDecl* FD

void setjmp_bufDecl(clang::TypeDecl* jmp_bufDecl)

Description

Set the type for the C jmp_buf type.

Declared at: clang/include/clang/AST/ASTContext.h:1942

Parameters

clang::TypeDecl* jmp_bufDecl

void setsigjmp_bufDecl(
    clang::TypeDecl* sigjmp_bufDecl)

Description

Set the type for the C sigjmp_buf type.

Declared at: clang/include/clang/AST/ASTContext.h:1954

Parameters

clang::TypeDecl* sigjmp_bufDecl

void setucontext_tDecl(
    clang::TypeDecl* ucontext_tDecl)

Description

Set the type for the C ucontext_t type.

Declared at: clang/include/clang/AST/ASTContext.h:1966

Parameters

clang::TypeDecl* ucontext_tDecl

bool shouldExternalize(const clang::Decl* D) const

Description

Whether a C++ static variable or CUDA/HIP kernel should be externalized.

Declared at: clang/include/clang/AST/ASTContext.h:3318

Parameters

const clang::Decl* D

clang::ASTContext& this_()

Declared at: clang/include/clang/AST/ASTContext.h:483

int64_t toBits(clang::CharUnits CharSize) const

Description

Convert a size in characters to a size in bits.

Declared at: clang/include/clang/AST/ASTContext.h:2306

Parameters

clang::CharUnits CharSize

clang::CharUnits toCharUnitsFromBits(
    int64_t BitSize) const

Description

Convert a size in bits to a size in characters.

Declared at: clang/include/clang/AST/ASTContext.h:2303

Parameters

int64_t BitSize

bool typesAreBlockPointerCompatible(
    clang::QualType,
    clang::QualType)

Declared at: clang/include/clang/AST/ASTContext.h:2820

Parameters

clang::QualType
clang::QualType

bool typesAreCompatible(
    clang::QualType T1,
    clang::QualType T2,
    bool CompareUnqualified = false)

Description

Compatibility predicates used to check assignment expressions.

Declared at: clang/include/clang/AST/ASTContext.h:2816

Parameters

clang::QualType T1
clang::QualType T2
bool CompareUnqualified = false

~ASTContext()

Declared at: clang/include/clang/AST/ASTContext.h:1182