clang 22.0.0git
|
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic analysis of a file. More...
#include "clang/AST/ASTContext.h"
Classes | |
struct | BuiltinVectorTypeInfo |
struct | CUDAConstantEvalContext |
struct | CUDAConstantEvalContextRAII |
struct | CXXRecordDeclRelocationInfo |
struct | SectionInfo |
Public Types | |
enum | GetBuiltinTypeError { GE_None , GE_Missing_type , GE_Missing_stdio , GE_Missing_setjmp , GE_Missing_ucontext } |
enum | NeedExtraManglingDecl_t { NeedExtraManglingDecl } |
enum class | InlineVariableDefinitionKind { None , Weak , WeakUnknown , Strong } |
enum | PragmaSectionFlag : unsigned { PSF_None = 0 , PSF_Read = 0x1 , PSF_Write = 0x2 , PSF_Execute = 0x4 , PSF_Implicit = 0x8 , PSF_ZeroInit = 0x10 , PSF_Invalid = 0x80000000U } |
using | TemplateOrSpecializationInfo |
A type synonym for the TemplateOrInstantiation mapping. | |
using | overridden_cxx_method_iterator = CXXMethodVector::const_iterator |
using | overridden_method_range |
using | import_range = llvm::iterator_range<import_iterator> |
Public Member Functions | |
std::optional< CXXRecordDeclRelocationInfo > | getRelocationInfoForCXXRecord (const CXXRecordDecl *) const |
void | setRelocationInfoForCXXRecord (const CXXRecordDecl *, CXXRecordDeclRelocationInfo) |
bool | containsAddressDiscriminatedPointerAuth (QualType T) const |
Examines a given type, and returns whether the type itself is address discriminated, or any transitively embedded types contain data that is address discriminated. | |
bool | containsNonRelocatablePointerAuth (QualType T) |
Examines a given type, and returns whether the type itself or any data it transitively contains has a pointer authentication schema that is not safely relocatable. | |
interp::Context & | getInterpContext () |
Returns the clang bytecode interpreter context. | |
ParentMapContext & | getParentMapContext () |
Returns the dynamic AST node parent map context. | |
ArrayRef< Decl * > | getTraversalScope () const |
void | setTraversalScope (const std::vector< Decl * > &) |
template<typename NodeT> | |
DynTypedNodeList | getParents (const NodeT &Node) |
Forwards to get node parents from the ParentMapContext. | |
const clang::PrintingPolicy & | getPrintingPolicy () const |
void | setPrintingPolicy (const clang::PrintingPolicy &Policy) |
SourceManager & | getSourceManager () |
const SourceManager & | getSourceManager () const |
void | cleanup () |
llvm::BumpPtrAllocator & | getAllocator () const |
void * | Allocate (size_t Size, unsigned Align=8) const |
template<typename T> | |
T * | Allocate (size_t Num=1) const |
void | Deallocate (void *Ptr) const |
llvm::StringRef | backupStr (llvm::StringRef S) const |
DeclListNode * | AllocateDeclListNode (clang::NamedDecl *ND) |
Allocates a DeclListNode or returns one from the ListNodeFreeList pool. | |
void | DeallocateDeclListNode (DeclListNode *N) |
Deallocates a DeclListNode by returning it to the ListNodeFreeList pool. | |
size_t | getASTAllocatedMemory () const |
Return the total amount of physical memory allocated for representing AST nodes and type information. | |
size_t | getSideTableAllocatedMemory () const |
Return the total memory used for various side tables. | |
PartialDiagnostic::DiagStorageAllocator & | getDiagAllocator () |
const TargetInfo & | getTargetInfo () const |
const TargetInfo * | getAuxTargetInfo () const |
const QualType | GetHigherPrecisionFPType (QualType ElementType) const |
QualType | getIntTypeForBitwidth (unsigned DestWidth, unsigned Signed) const |
getIntTypeForBitwidth - sets integer QualTy according to specified details: bitwidth, signed/unsigned. | |
QualType | getRealTypeForBitwidth (unsigned DestWidth, FloatModeKind ExplicitType) const |
getRealTypeForBitwidth - sets floating point QualTy according to specified bitwidth. | |
bool | AtomicUsesUnsupportedLibcall (const AtomicExpr *E) const |
const LangOptions & | getLangOpts () const |
bool | isDependenceAllowed () const |
const NoSanitizeList & | getNoSanitizeList () const |
bool | isTypeIgnoredBySanitizer (const SanitizerMask &Mask, const QualType &Ty) const |
Check if a type can have its sanitizer instrumentation elided based on its presence within an ignorelist. | |
const XRayFunctionFilter & | getXRayFilter () const |
const ProfileList & | getProfileList () const |
DiagnosticsEngine & | getDiagnostics () const |
FullSourceLoc | getFullLoc (SourceLocation Loc) const |
TargetCXXABI::Kind | getCXXABIKind () const |
Return the C++ ABI kind that should be used. | |
void | cacheRawCommentForDecl (const Decl &OriginalD, const RawComment &Comment) const |
Attaches Comment to OriginalD and to its redeclaration chain and removes the redeclaration chain from the set of commentless chains. | |
RawComment * | getRawCommentForDeclNoCacheImpl (const Decl *D, const SourceLocation RepresentativeLocForDecl, const std::map< unsigned, RawComment * > &CommentsInFile) const |
RawComment * | getRawCommentForDeclNoCache (const Decl *D) const |
Return the documentation comment attached to a given declaration, without looking into cache. | |
void | addComment (const RawComment &RC) |
const RawComment * | getRawCommentForAnyRedecl (const Decl *D, const Decl **OriginalDecl=nullptr) const |
Return the documentation comment attached to a given declaration. | |
void | attachCommentsToJustParsedDecls (ArrayRef< Decl * > Decls, const Preprocessor *PP) |
Searches existing comments for doc comments that should be attached to Decls . | |
comments::FullComment * | getCommentForDecl (const Decl *D, const Preprocessor *PP) const |
Return parsed documentation comment attached to a given declaration. | |
comments::FullComment * | getLocalCommentForDeclUncached (const Decl *D) const |
Return parsed documentation comment attached to a given declaration. | |
comments::FullComment * | cloneFullComment (comments::FullComment *FC, const Decl *D) const |
comments::CommandTraits & | getCommentCommandTraits () const |
AttrVec & | getDeclAttrs (const Decl *D) |
Retrieve the attributes for the given declaration. | |
void | eraseDeclAttrs (const Decl *D) |
Erase the attributes corresponding to the given declaration. | |
MemberSpecializationInfo * | getInstantiatedFromStaticDataMember (const VarDecl *Var) |
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. | |
void | setInstantiatedFromStaticDataMember (VarDecl *Inst, VarDecl *Tmpl, TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation()) |
Note that the static data member Inst is an instantiation of the static data member template Tmpl of a class template. | |
TemplateOrSpecializationInfo | getTemplateOrSpecializationInfo (const VarDecl *Var) |
void | setTemplateOrSpecializationInfo (VarDecl *Inst, TemplateOrSpecializationInfo TSI) |
NamedDecl * | getInstantiatedFromUsingDecl (NamedDecl *Inst) |
If the given using decl Inst is an instantiation of another (possibly unresolved) using decl, return it. | |
void | setInstantiatedFromUsingDecl (NamedDecl *Inst, NamedDecl *Pattern) |
Remember that the using decl Inst is an instantiation of the using decl Pattern of a class template. | |
UsingEnumDecl * | getInstantiatedFromUsingEnumDecl (UsingEnumDecl *Inst) |
If the given using-enum decl Inst is an instantiation of another using-enum decl, return it. | |
void | setInstantiatedFromUsingEnumDecl (UsingEnumDecl *Inst, UsingEnumDecl *Pattern) |
Remember that the using enum decl Inst is an instantiation of the using enum decl Pattern of a class template. | |
UsingShadowDecl * | getInstantiatedFromUsingShadowDecl (UsingShadowDecl *Inst) |
void | setInstantiatedFromUsingShadowDecl (UsingShadowDecl *Inst, UsingShadowDecl *Pattern) |
FieldDecl * | getInstantiatedFromUnnamedFieldDecl (FieldDecl *Field) const |
void | setInstantiatedFromUnnamedFieldDecl (FieldDecl *Inst, FieldDecl *Tmpl) |
overridden_cxx_method_iterator | overridden_methods_begin (const CXXMethodDecl *Method) const |
overridden_cxx_method_iterator | overridden_methods_end (const CXXMethodDecl *Method) const |
unsigned | overridden_methods_size (const CXXMethodDecl *Method) const |
overridden_method_range | overridden_methods (const CXXMethodDecl *Method) const |
void | addOverriddenMethod (const CXXMethodDecl *Method, const CXXMethodDecl *Overridden) |
Note that the given C++ Method overrides the given Overridden method. | |
void | getOverriddenMethods (const NamedDecl *Method, SmallVectorImpl< const NamedDecl * > &Overridden) const |
Return C++ or ObjC overridden methods for the given Method . | |
void | addedLocalImportDecl (ImportDecl *Import) |
Notify the AST context that a new import declaration has been parsed or implicitly created within this translation unit. | |
import_range | local_imports () const |
Decl * | getPrimaryMergedDecl (Decl *D) |
void | setPrimaryMergedDecl (Decl *D, Decl *Primary) |
void | mergeDefinitionIntoModule (NamedDecl *ND, Module *M, bool NotifyListeners=true) |
Note that the definition ND has been merged into module M , and should be visible whenever M is visible. | |
void | deduplicateMergedDefinitionsFor (NamedDecl *ND) |
Clean up the merged definition list. | |
ArrayRef< Module * > | getModulesWithMergedDefinition (const NamedDecl *Def) |
Get the additional modules in which the definition Def has been merged. | |
void | addModuleInitializer (Module *M, Decl *Init) |
Add a declaration to the list of declarations that are initialized for a module. | |
void | addLazyModuleInitializers (Module *M, ArrayRef< GlobalDeclID > IDs) |
ArrayRef< Decl * > | getModuleInitializers (Module *M) |
Get the initializations to perform when importing a module, if any. | |
void | setCurrentNamedModule (Module *M) |
Set the (C++20) module we are building. | |
Module * | getCurrentNamedModule () const |
Get module under construction, nullptr if this is not a C++20 module. | |
bool | isInSameModule (const Module *M1, const Module *M2) const |
If the two module M1 and M2 are in the same module. | |
TranslationUnitDecl * | getTranslationUnitDecl () const |
void | addTranslationUnitDecl () |
ExternCContextDecl * | getExternCContextDecl () const |
ASTContext (LangOptions &LOpts, SourceManager &SM, IdentifierTable &idents, SelectorTable &sels, Builtin::Context &builtins, TranslationUnitKind TUKind) | |
ASTContext (const ASTContext &)=delete | |
ASTContext & | operator= (const ASTContext &)=delete |
~ASTContext () | |
void | setExternalSource (IntrusiveRefCntPtr< ExternalASTSource > Source) |
Attach an external AST source to the AST context. | |
ExternalASTSource * | getExternalSource () const |
Retrieve a pointer to the external AST source associated with this AST context, if any. | |
IntrusiveRefCntPtr< ExternalASTSource > | getExternalSourcePtr () const |
Retrieve a pointer to the external AST source associated with this AST context, if any. | |
void | setASTMutationListener (ASTMutationListener *Listener) |
Attach an AST mutation listener to the AST context. | |
ASTMutationListener * | getASTMutationListener () const |
Retrieve a pointer to the AST mutation listener associated with this AST context, if any. | |
void | PrintStats () const |
const SmallVectorImpl< Type * > & | getTypes () const |
BuiltinTemplateDecl * | buildBuiltinTemplateDecl (BuiltinTemplateKind BTK, const IdentifierInfo *II) const |
RecordDecl * | buildImplicitRecord (StringRef Name, RecordDecl::TagKind TK=RecordDecl::TagKind::Struct) const |
Create a new implicit TU-level CXXRecordDecl or RecordDecl declaration. | |
TypedefDecl * | buildImplicitTypedef (QualType T, StringRef Name) const |
Create a new implicit TU-level typedef declaration. | |
TypedefDecl * | getInt128Decl () const |
Retrieve the declaration for the 128-bit signed integer type. | |
TypedefDecl * | getUInt128Decl () const |
Retrieve the declaration for the 128-bit unsigned integer type. | |
QualType | getAddrSpaceQualType (QualType T, LangAS AddressSpace) const |
Return the uniqued reference to the type for an address space qualified type with the specified type and address space. | |
QualType | removeAddrSpaceQualType (QualType T) const |
Remove any existing address space on the type and returns the type with qualifiers intact (or that's the idea anyway) | |
uint16_t | getPointerAuthVTablePointerDiscriminator (const CXXRecordDecl *RD) |
Return the "other" discriminator used for the pointer auth schema used for vtable pointers in instances of the requested type. | |
uint16_t | getPointerAuthTypeDiscriminator (QualType T) |
Return the "other" type-specific discriminator for the given type. | |
QualType | applyObjCProtocolQualifiers (QualType type, ArrayRef< ObjCProtocolDecl * > protocols, bool &hasError, bool allowOnPointerType=false) const |
Apply Objective-C protocol qualifiers to the given type. | |
QualType | getObjCGCQualType (QualType T, Qualifiers::GC gcAttr) const |
Return the uniqued reference to the type for an Objective-C gc-qualified type. | |
QualType | removePtrSizeAddrSpace (QualType T) const |
Remove the existing address space on the type if it is a pointer size address space and return the type with qualifiers intact. | |
QualType | getRestrictType (QualType T) const |
Return the uniqued reference to the type for a restrict qualified type. | |
QualType | getVolatileType (QualType T) const |
Return the uniqued reference to the type for a volatile qualified type. | |
QualType | getConstType (QualType T) const |
Return the uniqued reference to the type for a const qualified type. | |
QualType | adjustType (QualType OldType, llvm::function_ref< QualType(QualType)> Adjust) const |
Rebuild a type, preserving any existing type sugar. | |
const FunctionType * | adjustFunctionType (const FunctionType *Fn, FunctionType::ExtInfo EInfo) |
Change the ExtInfo on a function type. | |
QualType | adjustFunctionResultType (QualType FunctionType, QualType NewResultType) |
Change the result type of a function type, preserving sugar such as attributed types. | |
CanQualType | getCanonicalFunctionResultType (QualType ResultType) const |
Adjust the given function result type. | |
void | adjustDeducedFunctionResultType (FunctionDecl *FD, QualType ResultType) |
Change the result type of a function type once it is deduced. | |
QualType | getFunctionTypeWithExceptionSpec (QualType Orig, const FunctionProtoType::ExceptionSpecInfo &ESI) const |
Get a function type and produce the equivalent function type with the specified exception specification. | |
bool | hasSameFunctionTypeIgnoringExceptionSpec (QualType T, QualType U) const |
Determine whether two function types are the same, ignoring exception specifications in cases where they're part of the type. | |
void | adjustExceptionSpec (FunctionDecl *FD, const FunctionProtoType::ExceptionSpecInfo &ESI, bool AsWritten=false) |
Change the exception specification on a function once it is delay-parsed, instantiated, or computed. | |
QualType | getFunctionTypeWithoutPtrSizes (QualType T) |
Get a function type and produce the equivalent function type where pointer size address spaces in the return type and parameter types are replaced with the default address space. | |
bool | hasSameFunctionTypeIgnoringPtrSizes (QualType T, QualType U) |
Determine whether two function types are the same, ignoring pointer sizes in the return type and parameter types. | |
QualType | getFunctionTypeWithoutParamABIs (QualType T) const |
Get or construct a function type that is equivalent to the input type except that the parameter ABI annotations are stripped. | |
bool | hasSameFunctionTypeIgnoringParamABI (QualType T, QualType U) const |
Determine if two function types are the same, ignoring parameter ABI annotations. | |
QualType | getComplexType (QualType T) const |
Return the uniqued reference to the type for a complex number with the specified element type. | |
CanQualType | getComplexType (CanQualType T) const |
QualType | getPointerType (QualType T) const |
Return the uniqued reference to the type for a pointer to the specified type. | |
CanQualType | getPointerType (CanQualType T) const |
QualType | getCountAttributedType (QualType T, Expr *CountExpr, bool CountInBytes, bool OrNull, ArrayRef< TypeCoupledDeclRefInfo > DependentDecls) const |
QualType | getAdjustedType (QualType Orig, QualType New) const |
Return the uniqued reference to a type adjusted from the original type to a new type. | |
CanQualType | getAdjustedType (CanQualType Orig, CanQualType New) const |
QualType | getDecayedType (QualType T) const |
Return the uniqued reference to the decayed version of the given type. | |
CanQualType | getDecayedType (CanQualType T) const |
QualType | getDecayedType (QualType Orig, QualType Decayed) const |
Return the uniqued reference to a specified decay from the original type to the decayed type. | |
QualType | getArrayParameterType (QualType Ty) const |
Return the uniqued reference to a specified array parameter type from the original array type. | |
QualType | getAtomicType (QualType T) const |
Return the uniqued reference to the atomic type for the specified type. | |
QualType | getBlockPointerType (QualType T) const |
Return the uniqued reference to the type for a block of the specified type. | |
QualType | getBlockDescriptorType () const |
Gets the struct used to keep track of the descriptor for pointer to blocks. | |
QualType | getReadPipeType (QualType T) const |
Return a read_only pipe type for the specified type. | |
QualType | getWritePipeType (QualType T) const |
Return a write_only pipe type for the specified type. | |
QualType | getBitIntType (bool Unsigned, unsigned NumBits) const |
Return a bit-precise integer type with the specified signedness and bit count. | |
QualType | getDependentBitIntType (bool Unsigned, Expr *BitsExpr) const |
Return a dependent bit-precise integer type with the specified signedness and bit count. | |
QualType | getPredefinedSugarType (PredefinedSugarType::Kind KD) const |
QualType | getBlockDescriptorExtendedType () const |
Gets the struct used to keep track of the extended descriptor for pointer to blocks. | |
OpenCLTypeKind | getOpenCLTypeKind (const Type *T) const |
Map an AST Type to an OpenCLTypeKind enum value. | |
LangAS | getOpenCLTypeAddrSpace (const Type *T) const |
Get address space for OpenCL type. | |
LangAS | getDefaultOpenCLPointeeAddrSpace () |
Returns default address space based on OpenCL version and enabled features. | |
void | setcudaConfigureCallDecl (FunctionDecl *FD) |
FunctionDecl * | getcudaConfigureCallDecl () |
bool | BlockRequiresCopying (QualType Ty, const VarDecl *D) |
Returns true iff we need copy/dispose helpers for the given type. | |
bool | getByrefLifetime (QualType Ty, Qualifiers::ObjCLifetime &Lifetime, bool &HasByrefExtendedLayout) const |
Returns true, if given type has a known lifetime. | |
QualType | getLValueReferenceType (QualType T, bool SpelledAsLValue=true) const |
Return the uniqued reference to the type for an lvalue reference to the specified type. | |
QualType | getRValueReferenceType (QualType T) const |
Return the uniqued reference to the type for an rvalue reference to the specified type. | |
QualType | getMemberPointerType (QualType T, NestedNameSpecifier Qualifier, const CXXRecordDecl *Cls) const |
Return the uniqued reference to the type for a member pointer to the specified type in the specified nested name. | |
QualType | getVariableArrayType (QualType EltTy, Expr *NumElts, ArraySizeModifier ASM, unsigned IndexTypeQuals) const |
Return a non-unique reference to the type for a variable array of the specified element type. | |
QualType | getDependentSizedArrayType (QualType EltTy, Expr *NumElts, ArraySizeModifier ASM, unsigned IndexTypeQuals) const |
Return a non-unique reference to the type for a dependently-sized array of the specified element type. | |
QualType | getIncompleteArrayType (QualType EltTy, ArraySizeModifier ASM, unsigned IndexTypeQuals) const |
Return a unique reference to the type for an incomplete array of the specified element type. | |
QualType | getConstantArrayType (QualType EltTy, const llvm::APInt &ArySize, const Expr *SizeExpr, ArraySizeModifier ASM, unsigned IndexTypeQuals) const |
Return the unique reference to the type for a constant array of the specified element type. | |
QualType | getStringLiteralArrayType (QualType EltTy, unsigned Length) const |
Return a type for a constant array for a string literal of the specified element type and length. | |
QualType | getVariableArrayDecayedType (QualType Ty) const |
Returns a vla type where known sizes are replaced with [*]. | |
BuiltinVectorTypeInfo | getBuiltinVectorTypeInfo (const BuiltinType *VecTy) const |
Returns the element type, element count and number of vectors (in case of tuple) for a builtin vector type. | |
QualType | getScalableVectorType (QualType EltTy, unsigned NumElts, unsigned NumFields=1) const |
Return the unique reference to a scalable vector type of the specified element type and scalable number of elements. | |
QualType | getWebAssemblyExternrefType () const |
Return a WebAssembly externref type. | |
QualType | getVectorType (QualType VectorType, unsigned NumElts, VectorKind VecKind) const |
Return the unique reference to a vector type of the specified element type and size. | |
QualType | getDependentVectorType (QualType VectorType, Expr *SizeExpr, SourceLocation AttrLoc, VectorKind VecKind) const |
Return the unique reference to the type for a dependently sized vector of the specified element type. | |
QualType | getExtVectorType (QualType VectorType, unsigned NumElts) const |
Return the unique reference to an extended vector type of the specified element type and size. | |
QualType | getDependentSizedExtVectorType (QualType VectorType, Expr *SizeExpr, SourceLocation AttrLoc) const |
QualType | getConstantMatrixType (QualType ElementType, unsigned NumRows, unsigned NumColumns) const |
Return the unique reference to the matrix type of the specified element type and size. | |
QualType | getDependentSizedMatrixType (QualType ElementType, Expr *RowExpr, Expr *ColumnExpr, SourceLocation AttrLoc) const |
Return the unique reference to the matrix type of the specified element type and size. | |
QualType | getDependentAddressSpaceType (QualType PointeeType, Expr *AddrSpaceExpr, SourceLocation AttrLoc) const |
QualType | getFunctionNoProtoType (QualType ResultTy, const FunctionType::ExtInfo &Info) const |
Return a K&R style C function type like 'int()'. | |
QualType | getFunctionNoProtoType (QualType ResultTy) const |
QualType | getFunctionType (QualType ResultTy, ArrayRef< QualType > Args, const FunctionProtoType::ExtProtoInfo &EPI) const |
Return a normal function type with a typed argument list. | |
QualType | adjustStringLiteralBaseType (QualType StrLTy) const |
QualType | getTypeDeclType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, const TypeDecl *Decl) const |
QualType | getTypeDeclType (const TypeDecl *Decl) const |
Return the unique reference to the type for the specified type declaration. | |
QualType | getTypeDeclType (const TagDecl *) const =delete |
Use the normal 'getFooBarType' constructors to obtain these types. | |
QualType | getTypeDeclType (const TypedefDecl *) const =delete |
QualType | getTypeDeclType (const TypeAliasDecl *) const =delete |
QualType | getTypeDeclType (const UnresolvedUsingTypenameDecl *) const =delete |
CanQualType | getCanonicalTypeDeclType (const TypeDecl *TD) const |
QualType | getUsingType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, const UsingShadowDecl *D, QualType UnderlyingType=QualType()) const |
QualType | getTypedefType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, const TypedefNameDecl *Decl, QualType UnderlyingType=QualType(), std::optional< bool > TypeMatchesDeclOrNone=std::nullopt) const |
Return the unique reference to the type for the specified typedef-name decl. | |
CanQualType | getCanonicalTagType (const TagDecl *TD) const |
QualType | getTagType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, const TagDecl *TD, bool OwnsTag) const |
bool | computeBestEnumTypes (bool IsPacked, unsigned NumNegativeBits, unsigned NumPositiveBits, QualType &BestType, QualType &BestPromotionType) |
Compute BestType and BestPromotionType for an enum based on the highest number of negative and positive bits of its elements. | |
bool | isRepresentableIntegerValue (llvm::APSInt &Value, QualType T) |
Determine whether the given integral value is representable within the given type T. | |
template<typename RangeT> | |
bool | computeEnumBits (RangeT EnumConstants, unsigned &NumNegativeBits, unsigned &NumPositiveBits) |
Compute NumNegativeBits and NumPositiveBits for an enum based on the constant values of its enumerators. | |
CanQualType | getCanonicalUnresolvedUsingType (const UnresolvedUsingTypenameDecl *D) const |
QualType | getUnresolvedUsingType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, const UnresolvedUsingTypenameDecl *D) const |
QualType | getAttributedType (attr::Kind attrKind, QualType modifiedType, QualType equivalentType, const Attr *attr=nullptr) const |
QualType | getAttributedType (const Attr *attr, QualType modifiedType, QualType equivalentType) const |
QualType | getAttributedType (NullabilityKind nullability, QualType modifiedType, QualType equivalentType) |
QualType | getBTFTagAttributedType (const BTFTypeTagAttr *BTFAttr, QualType Wrapped) const |
QualType | getHLSLAttributedResourceType (QualType Wrapped, QualType Contained, const HLSLAttributedResourceType::Attributes &Attrs) |
QualType | getHLSLInlineSpirvType (uint32_t Opcode, uint32_t Size, uint32_t Alignment, ArrayRef< SpirvOperand > Operands) |
QualType | getSubstTemplateTypeParmType (QualType Replacement, Decl *AssociatedDecl, unsigned Index, UnsignedOrNone PackIndex, bool Final) const |
Retrieve a substitution-result type. | |
QualType | getSubstTemplateTypeParmPackType (Decl *AssociatedDecl, unsigned Index, bool Final, const TemplateArgument &ArgPack) |
QualType | getSubstBuiltinTemplatePack (const TemplateArgument &ArgPack) |
QualType | getTemplateTypeParmType (unsigned Depth, unsigned Index, bool ParameterPack, TemplateTypeParmDecl *ParmDecl=nullptr) const |
Retrieve the template type parameter type for a template parameter or parameter pack with the given depth, index, and (optionally) name. | |
QualType | getCanonicalTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName T, ArrayRef< TemplateArgument > CanonicalArgs) const |
QualType | getTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName T, ArrayRef< TemplateArgument > SpecifiedArgs, ArrayRef< TemplateArgument > CanonicalArgs, QualType Underlying=QualType()) const |
QualType | getTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName T, ArrayRef< TemplateArgumentLoc > SpecifiedArgs, ArrayRef< TemplateArgument > CanonicalArgs, QualType Canon=QualType()) const |
TypeSourceInfo * | getTemplateSpecializationTypeInfo (ElaboratedTypeKeyword Keyword, SourceLocation ElaboratedKeywordLoc, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKeywordLoc, TemplateName T, SourceLocation TLoc, const TemplateArgumentListInfo &SpecifiedArgs, ArrayRef< TemplateArgument > CanonicalArgs, QualType Canon=QualType()) const |
QualType | getParenType (QualType NamedType) const |
QualType | getMacroQualifiedType (QualType UnderlyingTy, const IdentifierInfo *MacroII) const |
QualType | getDependentNameType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier NNS, const IdentifierInfo *Name) const |
TemplateArgument | getInjectedTemplateArg (NamedDecl *ParamDecl) const |
QualType | getPackExpansionType (QualType Pattern, UnsignedOrNone NumExpansions, bool ExpectPackInType=true) const |
Form a pack expansion type with the given pattern. | |
QualType | getObjCInterfaceType (const ObjCInterfaceDecl *Decl, ObjCInterfaceDecl *PrevDecl=nullptr) const |
getObjCInterfaceType - Return the unique reference to the type for the specified ObjC interface decl. | |
QualType | getObjCObjectType (QualType Base, ObjCProtocolDecl *const *Protocols, unsigned NumProtocols) const |
Legacy interface: cannot provide type arguments or __kindof. | |
QualType | getObjCObjectType (QualType Base, ArrayRef< QualType > typeArgs, ArrayRef< ObjCProtocolDecl * > protocols, bool isKindOf) const |
QualType | getObjCTypeParamType (const ObjCTypeParamDecl *Decl, ArrayRef< ObjCProtocolDecl * > protocols) const |
void | adjustObjCTypeParamBoundType (const ObjCTypeParamDecl *Orig, ObjCTypeParamDecl *New) const |
bool | ObjCObjectAdoptsQTypeProtocols (QualType QT, ObjCInterfaceDecl *Decl) |
ObjCObjectAdoptsQTypeProtocols - Checks that protocols in IC's protocol list adopt all protocols in QT's qualified-id protocol list. | |
bool | QIdProtocolsAdoptObjCObjectProtocols (QualType QT, ObjCInterfaceDecl *IDecl) |
QIdProtocolsAdoptObjCObjectProtocols - Checks that protocols in QT's qualified-id protocol list adopt all protocols in IDecl's list of protocols. | |
QualType | getObjCObjectPointerType (QualType OIT) const |
Return a ObjCObjectPointerType type for the given ObjCObjectType. | |
QualType | getTypeOfExprType (Expr *E, TypeOfKind Kind) const |
C23 feature and GCC extension. | |
QualType | getTypeOfType (QualType QT, TypeOfKind Kind) const |
getTypeOfType - Unlike many "get<Type>" functions, we don't unique TypeOfType nodes. | |
QualType | getReferenceQualifiedType (const Expr *e) const |
getReferenceQualifiedType - Given an expr, will return the type for that expression, as in [dcl.type.simple]p4 but without taking id-expressions and class member access into account. | |
QualType | getDecltypeType (Expr *e, QualType UnderlyingType) const |
C++11 decltype. | |
QualType | getPackIndexingType (QualType Pattern, Expr *IndexExpr, bool FullySubstituted=false, ArrayRef< QualType > Expansions={}, UnsignedOrNone Index=std::nullopt) const |
QualType | getUnaryTransformType (QualType BaseType, QualType UnderlyingType, UnaryTransformType::UTTKind UKind) const |
Unary type transforms. | |
QualType | getAutoType (QualType DeducedType, AutoTypeKeyword Keyword, bool IsDependent, bool IsPack=false, TemplateDecl *TypeConstraintConcept=nullptr, ArrayRef< TemplateArgument > TypeConstraintArgs={}) const |
C++11 deduced auto type. | |
QualType | getAutoDeductType () const |
C++11 deduction pattern for 'auto' type. | |
QualType | getAutoRRefDeductType () const |
C++11 deduction pattern for 'auto &&' type. | |
QualType | getUnconstrainedType (QualType T) const |
Remove any type constraints from a template parameter type, for equivalence comparison of template parameters. | |
QualType | getDeducedTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName Template, QualType DeducedType, bool IsDependent) const |
C++17 deduced class template specialization type. | |
QualType | getSizeType () const |
Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>. | |
CanQualType | getCanonicalSizeType () const |
QualType | getSignedSizeType () const |
Return the unique signed counterpart of the integer type corresponding to size_t. | |
CanQualType | getIntMaxType () const |
Return the unique type for "intmax_t" (C99 7.18.1.5), defined in <stdint.h>. | |
CanQualType | getUIntMaxType () const |
Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in <stdint.h>. | |
QualType | getWCharType () const |
Return the unique wchar_t type available in C++ (and available as __wchar_t as a Microsoft extension). | |
QualType | getWideCharType () const |
Return the type of wide characters. | |
QualType | getSignedWCharType () const |
Return the type of "signed wchar_t". | |
QualType | getUnsignedWCharType () const |
Return the type of "unsigned wchar_t". | |
QualType | getWIntType () const |
In C99, this returns a type compatible with the type defined in <stddef.h> as defined by the target. | |
QualType | getIntPtrType () const |
Return a type compatible with "intptr_t" (C99 7.18.1.4), as defined by the target. | |
QualType | getUIntPtrType () const |
Return a type compatible with "uintptr_t" (C99 7.18.1.4), as defined by the target. | |
QualType | getPointerDiffType () const |
Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef.h>. | |
QualType | getUnsignedPointerDiffType () const |
Return the unique unsigned counterpart of "ptrdiff_t" integer type. | |
QualType | getProcessIDType () const |
Return the unique type for "pid_t" defined in <sys/types.h>. | |
QualType | getCFConstantStringType () const |
Return the C structure type used to represent constant CFStrings. | |
QualType | getObjCSuperType () const |
Returns the C struct type for objc_super. | |
void | setObjCSuperType (QualType ST) |
QualType | getRawCFConstantStringType () const |
Get the structure type used to representation CFStrings, or NULL if it hasn't yet been built. | |
void | setCFConstantStringType (QualType T) |
TypedefDecl * | getCFConstantStringDecl () const |
RecordDecl * | getCFConstantStringTagDecl () const |
void | setObjCConstantStringInterface (ObjCInterfaceDecl *Decl) |
QualType | getObjCConstantStringInterface () const |
QualType | getObjCNSStringType () const |
void | setObjCNSStringType (QualType T) |
QualType | getObjCIdRedefinitionType () const |
Retrieve the type that id has been defined to, which may be different from the built-in id if id has been typedef'd. | |
void | setObjCIdRedefinitionType (QualType RedefType) |
Set the user-written type that redefines id . | |
QualType | getObjCClassRedefinitionType () const |
Retrieve the type that Class has been defined to, which may be different from the built-in Class if Class has been typedef'd. | |
void | setObjCClassRedefinitionType (QualType RedefType) |
Set the user-written type that redefines 'SEL'. | |
QualType | getObjCSelRedefinitionType () const |
Retrieve the type that 'SEL' has been defined to, which may be different from the built-in 'SEL' if 'SEL' has been typedef'd. | |
void | setObjCSelRedefinitionType (QualType RedefType) |
Set the user-written type that redefines 'SEL'. | |
IdentifierInfo * | getNSObjectName () const |
Retrieve the identifier 'NSObject'. | |
IdentifierInfo * | getNSCopyingName () |
Retrieve the identifier 'NSCopying'. | |
CanQualType | getNSUIntegerType () const |
CanQualType | getNSIntegerType () const |
IdentifierInfo * | getBoolName () const |
Retrieve the identifier 'bool'. | |
QualType | getObjCInstanceType () |
Retrieve the Objective-C "instancetype" type. | |
TypedefDecl * | getObjCInstanceTypeDecl () |
Retrieve the typedef declaration corresponding to the Objective-C "instancetype" type. | |
void | setFILEDecl (TypeDecl *FILEDecl) |
Set the type for the C FILE type. | |
QualType | getFILEType () const |
Retrieve the C FILE type. | |
void | setjmp_bufDecl (TypeDecl *jmp_bufDecl) |
Set the type for the C jmp_buf type. | |
QualType | getjmp_bufType () const |
Retrieve the C jmp_buf type. | |
void | setsigjmp_bufDecl (TypeDecl *sigjmp_bufDecl) |
Set the type for the C sigjmp_buf type. | |
QualType | getsigjmp_bufType () const |
Retrieve the C sigjmp_buf type. | |
void | setucontext_tDecl (TypeDecl *ucontext_tDecl) |
Set the type for the C ucontext_t type. | |
QualType | getucontext_tType () const |
Retrieve the C ucontext_t type. | |
CanQualType | getLogicalOperationType () const |
The result type of logical operations, '<', '>', '!=', etc. | |
void | getObjCEncodingForType (QualType T, std::string &S, const FieldDecl *Field=nullptr, QualType *NotEncodedT=nullptr) const |
Emit the Objective-CC type encoding for the given type T into S . | |
void | getObjCEncodingForPropertyType (QualType T, std::string &S) const |
Emit the Objective-C property type encoding for the given type T into S . | |
void | getLegacyIntegralTypeEncoding (QualType &t) const |
getLegacyIntegralTypeEncoding - Another legacy compatibility encoding: 32-bit longs are encoded as 'l' or 'L' , but not always. | |
void | getObjCEncodingForTypeQualifier (Decl::ObjCDeclQualifier QT, std::string &S) const |
Put the string version of the type qualifiers QT into S . | |
std::string | getObjCEncodingForFunctionDecl (const FunctionDecl *Decl) const |
Emit the encoded type for the function Decl into S . | |
std::string | getObjCEncodingForMethodDecl (const ObjCMethodDecl *Decl, bool Extended=false) const |
Emit the encoded type for the method declaration Decl into S . | |
std::string | getObjCEncodingForBlock (const BlockExpr *blockExpr) const |
Return the encoded type for this block declaration. | |
std::string | getObjCEncodingForPropertyDecl (const ObjCPropertyDecl *PD, const Decl *Container) const |
getObjCEncodingForPropertyDecl - Return the encoded type for this method declaration. | |
bool | ProtocolCompatibleWithProtocol (ObjCProtocolDecl *lProto, ObjCProtocolDecl *rProto) const |
ProtocolCompatibleWithProtocol - return 'true' if 'lProto' is in the inheritance hierarchy of 'rProto'. | |
ObjCPropertyImplDecl * | getObjCPropertyImplDeclForPropertyDecl (const ObjCPropertyDecl *PD, const Decl *Container) const |
CharUnits | getObjCEncodingTypeSize (QualType T) const |
Return the size of type T for Objective-C encoding purpose, in characters. | |
TypedefDecl * | getObjCIdDecl () const |
Retrieve the typedef corresponding to the predefined id type in Objective-C. | |
QualType | getObjCIdType () const |
Represents the Objective-CC id type. | |
TypedefDecl * | getObjCSelDecl () const |
Retrieve the typedef corresponding to the predefined 'SEL' type in Objective-C. | |
QualType | getObjCSelType () const |
Retrieve the type that corresponds to the predefined Objective-C 'SEL' type. | |
PointerAuthQualifier | getObjCMemberSelTypePtrAuth () |
TypedefDecl * | getObjCClassDecl () const |
Retrieve the typedef declaration corresponding to the predefined Objective-C 'Class' type. | |
QualType | getObjCClassType () const |
Represents the Objective-C Class type. | |
ObjCInterfaceDecl * | getObjCProtocolDecl () const |
Retrieve the Objective-C class declaration corresponding to the predefined Protocol class. | |
TypedefDecl * | getBOOLDecl () const |
Retrieve declaration of 'BOOL' typedef. | |
void | setBOOLDecl (TypedefDecl *TD) |
Save declaration of 'BOOL' typedef. | |
QualType | getBOOLType () const |
type of 'BOOL' type. | |
QualType | getObjCProtoType () const |
Retrieve the type of the Objective-C Protocol class. | |
TypedefDecl * | getBuiltinVaListDecl () const |
Retrieve the C type declaration corresponding to the predefined __builtin_va_list type. | |
QualType | getBuiltinVaListType () const |
Retrieve the type of the __builtin_va_list type. | |
Decl * | getVaListTagDecl () const |
Retrieve the C type declaration corresponding to the predefined __va_list_tag type used to help define the __builtin_va_list type for some targets. | |
TypedefDecl * | getBuiltinMSVaListDecl () const |
Retrieve the C type declaration corresponding to the predefined __builtin_ms_va_list type. | |
QualType | getBuiltinMSVaListType () const |
Retrieve the type of the __builtin_ms_va_list type. | |
TagDecl * | getMSGuidTagDecl () const |
Retrieve the implicitly-predeclared 'struct _GUID' declaration. | |
CanQualType | getMSGuidType () const |
Retrieve the implicitly-predeclared 'struct _GUID' type. | |
TagDecl * | getMSTypeInfoTagDecl () const |
Retrieve the implicitly-predeclared 'struct type_info' declaration. | |
bool | canBuiltinBeRedeclared (const FunctionDecl *) const |
Return whether a declaration to a builtin is allowed to be overloaded/redeclared. | |
QualType | getCVRQualifiedType (QualType T, unsigned CVR) const |
Return a type with additional const , volatile , or restrict qualifiers. | |
QualType | getQualifiedType (SplitQualType split) const |
Un-split a SplitQualType. | |
QualType | getQualifiedType (QualType T, Qualifiers Qs) const |
Return a type with additional qualifiers. | |
QualType | getQualifiedType (const Type *T, Qualifiers Qs) const |
Return a type with additional qualifiers. | |
QualType | getLifetimeQualifiedType (QualType type, Qualifiers::ObjCLifetime lifetime) |
Return a type with the given lifetime qualifier. | |
QualType | getUnqualifiedObjCPointerType (QualType type) const |
getUnqualifiedObjCPointerType - Returns version of Objective-C pointer type with lifetime qualifier removed. | |
QualType | getPointerAuthType (QualType Ty, PointerAuthQualifier PointerAuth) |
Return a type with the given __ptrauth qualifier. | |
unsigned char | getFixedPointScale (QualType Ty) const |
unsigned char | getFixedPointIBits (QualType Ty) const |
llvm::FixedPointSemantics | getFixedPointSemantics (QualType Ty) const |
llvm::APFixedPoint | getFixedPointMax (QualType Ty) const |
llvm::APFixedPoint | getFixedPointMin (QualType Ty) const |
DeclarationNameInfo | getNameForTemplate (TemplateName Name, SourceLocation NameLoc) const |
TemplateName | getOverloadedTemplateName (UnresolvedSetIterator Begin, UnresolvedSetIterator End) const |
Retrieve the template name that corresponds to a non-empty lookup. | |
TemplateName | getAssumedTemplateName (DeclarationName Name) const |
Retrieve a template name representing an unqualified-id that has been assumed to name a template for ADL purposes. | |
TemplateName | getQualifiedTemplateName (NestedNameSpecifier Qualifier, bool TemplateKeyword, TemplateName Template) const |
Retrieve the template name that represents a qualified template name such as std::vector . | |
TemplateName | getDependentTemplateName (const DependentTemplateStorage &Name) const |
Retrieve the template name that represents a dependent template name such as MetaFun::template operator+. | |
TemplateName | getSubstTemplateTemplateParm (TemplateName replacement, Decl *AssociatedDecl, unsigned Index, UnsignedOrNone PackIndex, bool Final) const |
TemplateName | getSubstTemplateTemplateParmPack (const TemplateArgument &ArgPack, Decl *AssociatedDecl, unsigned Index, bool Final) const |
TemplateName | getDeducedTemplateName (TemplateName Underlying, DefaultArguments DefaultArgs) const |
Represents a TemplateName which had some of its default arguments deduced. | |
QualType | DecodeTypeStr (const char *&Str, const ASTContext &Context, ASTContext::GetBuiltinTypeError &Error, bool &RequireICE, bool AllowTypeModifiers) const |
QualType | GetBuiltinType (unsigned ID, GetBuiltinTypeError &Error, unsigned *IntegerConstantArgs=nullptr) const |
Return the type for the specified builtin. | |
Qualifiers::GC | getObjCGCAttrKind (QualType Ty) const |
Return one of the GCNone, Weak or Strong Objective-C garbage collection attributes. | |
bool | areCompatibleVectorTypes (QualType FirstVec, QualType SecondVec) |
Return true if the given vector types are of the same unqualified type or if they are equivalent to the same GCC vector type. | |
bool | areCompatibleRVVTypes (QualType FirstType, QualType SecondType) |
Return true if the given types are an RISC-V vector builtin type and a VectorType that is a fixed-length representation of the RISC-V vector builtin type for a specific vector-length. | |
bool | areLaxCompatibleRVVTypes (QualType FirstType, QualType SecondType) |
Return true if the given vector types are lax-compatible RISC-V vector types as defined by -flax-vector-conversions=, which permits implicit conversions between vectors with different number of elements and/or incompatible element types, false otherwise. | |
bool | hasDirectOwnershipQualifier (QualType Ty) const |
Return true if the type has been explicitly qualified with ObjC ownership. | |
const llvm::fltSemantics & | getFloatTypeSemantics (QualType T) const |
Return the APFloat 'semantics' for the specified scalar floating point type. | |
TypeInfo | getTypeInfo (const Type *T) const |
Get the size and alignment of the specified complete type in bits. | |
TypeInfo | getTypeInfo (QualType T) const |
unsigned | getOpenMPDefaultSimdAlign (QualType T) const |
Get default simd alignment of the specified complete type in bits. | |
uint64_t | getTypeSize (QualType T) const |
Return the size of the specified (complete) type T , in bits. | |
uint64_t | getTypeSize (const Type *T) const |
uint64_t | getCharWidth () const |
Return the size of the character type, in bits. | |
CharUnits | toCharUnitsFromBits (int64_t BitSize) const |
Convert a size in bits to a size in characters. | |
int64_t | toBits (CharUnits CharSize) const |
Convert a size in characters to a size in bits. | |
CharUnits | getTypeSizeInChars (QualType T) const |
Return the size of the specified (complete) type T , in characters. | |
CharUnits | getTypeSizeInChars (const Type *T) const |
std::optional< CharUnits > | getTypeSizeInCharsIfKnown (QualType Ty) const |
std::optional< CharUnits > | getTypeSizeInCharsIfKnown (const Type *Ty) const |
unsigned | getTypeAlign (QualType T) const |
Return the ABI-specified alignment of a (complete) type T , in bits. | |
unsigned | getTypeAlign (const Type *T) const |
unsigned | getTypeUnadjustedAlign (QualType T) const |
Return the ABI-specified natural alignment of a (complete) type T , before alignment adjustments, in bits. | |
unsigned | getTypeUnadjustedAlign (const Type *T) const |
unsigned | getTypeAlignIfKnown (QualType T, bool NeedsPreferredAlignment=false) const |
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). | |
CharUnits | getTypeAlignInChars (QualType T) const |
Return the ABI-specified alignment of a (complete) type T , in characters. | |
CharUnits | getTypeAlignInChars (const Type *T) const |
CharUnits | getPreferredTypeAlignInChars (QualType T) const |
Return the PreferredAlignment of a (complete) type T , in characters. | |
CharUnits | getTypeUnadjustedAlignInChars (QualType T) const |
getTypeUnadjustedAlignInChars - Return the ABI-specified alignment of a type, in characters, before alignment adjustments. | |
CharUnits | getTypeUnadjustedAlignInChars (const Type *T) const |
TypeInfoChars | getTypeInfoDataSizeInChars (QualType T) const |
TypeInfoChars | getTypeInfoInChars (const Type *T) const |
TypeInfoChars | getTypeInfoInChars (QualType T) const |
bool | isAlignmentRequired (const Type *T) const |
Determine if the alignment the type has was required using an alignment attribute. | |
bool | isAlignmentRequired (QualType T) const |
bool | isPromotableIntegerType (QualType T) const |
More type predicates useful for type checking/promotion. | |
unsigned | getPreferredTypeAlign (QualType T) const |
Return the "preferred" alignment of the specified type T for the current target, in bits. | |
unsigned | getPreferredTypeAlign (const Type *T) const |
getPreferredTypeAlign - Return the "preferred" alignment of the specified type for the current target in bits. | |
unsigned | getTargetDefaultAlignForAttributeAligned () const |
Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified. | |
unsigned | getAlignOfGlobalVar (QualType T, const VarDecl *VD) const |
Return the alignment in bits that should be given to a global variable with type T . | |
CharUnits | getAlignOfGlobalVarInChars (QualType T, const VarDecl *VD) const |
Return the alignment in characters that should be given to a global variable with type T . | |
unsigned | getMinGlobalAlignOfVar (uint64_t Size, const VarDecl *VD) const |
Return the minimum alignment as specified by the target. | |
CharUnits | getDeclAlign (const Decl *D, bool ForAlignof=false) const |
Return a conservative estimate of the alignment of the specified decl D . | |
CharUnits | getExnObjectAlignment () const |
Return the alignment (in bytes) of the thrown exception object. | |
const ASTRecordLayout & | getASTRecordLayout (const RecordDecl *D) const |
Get or compute information about the layout of the specified record (struct/union/class) D , which indicates its size and field position information. | |
const ASTRecordLayout & | getASTObjCInterfaceLayout (const ObjCInterfaceDecl *D) const |
Get or compute information about the layout of the specified Objective-C interface. | |
void | DumpRecordLayout (const RecordDecl *RD, raw_ostream &OS, bool Simple=false) const |
const CXXMethodDecl * | getCurrentKeyFunction (const CXXRecordDecl *RD) |
Get our current best idea for the key function of the given record decl, or nullptr if there isn't one. | |
void | setNonKeyFunction (const CXXMethodDecl *method) |
Observe that the given method cannot be a key function. | |
CharUnits | getOffsetOfBaseWithVBPtr (const CXXRecordDecl *RD) const |
Loading virtual member pointers using the virtual inheritance model always results in an adjustment using the vbtable even if the index is zero. | |
uint64_t | getFieldOffset (const ValueDecl *FD) const |
Get the offset of a FieldDecl or IndirectFieldDecl, in bits. | |
uint64_t | lookupFieldBitOffset (const ObjCInterfaceDecl *OID, const ObjCIvarDecl *Ivar) const |
Get the offset of an ObjCIvarDecl in bits. | |
CharUnits | getMemberPointerPathAdjustment (const APValue &MP) const |
Find the 'this' offset for the member path in a pointer-to-member APValue. | |
bool | isNearlyEmpty (const CXXRecordDecl *RD) const |
VTableContextBase * | getVTableContext () |
MangleContext * | createMangleContext (const TargetInfo *T=nullptr) |
If T is null pointer, assume the target in ASTContext. | |
MangleContext * | createDeviceMangleContext (const TargetInfo &T) |
Creates a device mangle context to correctly mangle lambdas in a mixed architecture compile by setting the lambda mangling number source to the DeviceLambdaManglingNumber. | |
void | DeepCollectObjCIvars (const ObjCInterfaceDecl *OI, bool leafClass, SmallVectorImpl< const ObjCIvarDecl * > &Ivars) const |
DeepCollectObjCIvars - This routine first collects all declared, but not synthesized, ivars in super class and then collects all ivars, including those synthesized for current class. | |
unsigned | CountNonClassIvars (const ObjCInterfaceDecl *OI) const |
void | CollectInheritedProtocols (const Decl *CDecl, llvm::SmallPtrSet< ObjCProtocolDecl *, 8 > &Protocols) |
CollectInheritedProtocols - Collect all protocols in current class and those inherited by it. | |
bool | hasUniqueObjectRepresentations (QualType Ty, bool CheckIfTriviallyCopyable=true) const |
Return true if the specified type has unique object representations according to (C++17 [meta.unary.prop]p9) | |
CanQualType | getCanonicalType (QualType T) const |
Return the canonical (structural) type corresponding to the specified potentially non-canonical type T . | |
const Type * | getCanonicalType (const Type *T) const |
CanQualType | getCanonicalParamType (QualType T) const |
Return the canonical parameter type corresponding to the specific potentially non-canonical one. | |
bool | hasSameType (QualType T1, QualType T2) const |
Determine whether the given types T1 and T2 are equivalent. | |
bool | hasSameType (const Type *T1, const Type *T2) const |
bool | hasSameExpr (const Expr *X, const Expr *Y) const |
Determine whether the given expressions X and Y are equivalent. | |
QualType | getUnqualifiedArrayType (QualType T, Qualifiers &Quals) const |
Return this type as a completely-unqualified array type, capturing the qualifiers in Quals . | |
QualType | getUnqualifiedArrayType (QualType T) const |
bool | hasSameUnqualifiedType (QualType T1, QualType T2) const |
Determine whether the given types are equivalent after cvr-qualifiers have been removed. | |
bool | hasSameNullabilityTypeQualifier (QualType SubT, QualType SuperT, bool IsParam) const |
bool | ObjCMethodsAreEqual (const ObjCMethodDecl *MethodDecl, const ObjCMethodDecl *MethodImp) |
bool | UnwrapSimilarTypes (QualType &T1, QualType &T2, bool AllowPiMismatch=true) const |
Attempt to unwrap two types that may be similar (C++ [conv.qual]). | |
void | UnwrapSimilarArrayTypes (QualType &T1, QualType &T2, bool AllowPiMismatch=true) const |
Attempt to unwrap two types that may both be array types with the same bound (or both be array types of unknown bound) for the purpose of comparing the cv-decomposition of two types per C++ [conv.qual]. | |
bool | hasSimilarType (QualType T1, QualType T2) const |
Determine if two types are similar, according to the C++ rules. | |
bool | hasCvrSimilarType (QualType T1, QualType T2) |
Determine if two types are similar, ignoring only CVR qualifiers. | |
CallingConv | getDefaultCallingConvention (bool IsVariadic, bool IsCXXMethod) const |
Retrieves the default calling convention for the current context. | |
TemplateName | getCanonicalTemplateName (TemplateName Name, bool IgnoreDeduced=false) const |
Retrieves the "canonical" template name that refers to a given template. | |
bool | hasSameTemplateName (const TemplateName &X, const TemplateName &Y, bool IgnoreDeduced=false) const |
Determine whether the given template names refer to the same template. | |
bool | isSameEntity (const NamedDecl *X, const NamedDecl *Y) const |
Determine whether the two declarations refer to the same entity. | |
bool | isSameTemplateParameterList (const TemplateParameterList *X, const TemplateParameterList *Y) const |
Determine whether two template parameter lists are similar enough that they may be used in declarations of the same template. | |
bool | isSameTemplateParameter (const NamedDecl *X, const NamedDecl *Y) const |
Determine whether two template parameters are similar enough that they may be used in declarations of the same template. | |
bool | isSameAssociatedConstraint (const AssociatedConstraint &ACX, const AssociatedConstraint &ACY) const |
Determine whether two 'requires' expressions are similar enough that they may be used in re-declarations. | |
bool | isSameConstraintExpr (const Expr *XCE, const Expr *YCE) const |
Determine whether two 'requires' expressions are similar enough that they may be used in re-declarations. | |
bool | isSameTypeConstraint (const TypeConstraint *XTC, const TypeConstraint *YTC) const |
Determine whether two type contraint are similar enough that they could used in declarations of the same template. | |
bool | isSameDefaultTemplateArgument (const NamedDecl *X, const NamedDecl *Y) const |
Determine whether two default template arguments are similar enough that they may be used in declarations of the same template. | |
TemplateArgument | getCanonicalTemplateArgument (const TemplateArgument &Arg) const |
Retrieve the "canonical" template argument. | |
bool | canonicalizeTemplateArguments (MutableArrayRef< TemplateArgument > Args) const |
Canonicalize the given template argument list. | |
TemplateTemplateParmDecl * | getCanonicalTemplateTemplateParmDecl (TemplateTemplateParmDecl *TTP) const |
Canonicalize the given TemplateTemplateParmDecl. | |
TemplateTemplateParmDecl * | findCanonicalTemplateTemplateParmDeclInternal (TemplateTemplateParmDecl *TTP) const |
TemplateTemplateParmDecl * | insertCanonicalTemplateTemplateParmDeclInternal (TemplateTemplateParmDecl *CanonTTP) const |
bool | isSameTemplateArgument (const TemplateArgument &Arg1, const TemplateArgument &Arg2) const |
Determine whether the given template arguments Arg1 and Arg2 are equivalent. | |
const ArrayType * | getAsArrayType (QualType T) const |
Type Query functions. | |
const ConstantArrayType * | getAsConstantArrayType (QualType T) const |
const VariableArrayType * | getAsVariableArrayType (QualType T) const |
const IncompleteArrayType * | getAsIncompleteArrayType (QualType T) const |
const DependentSizedArrayType * | getAsDependentSizedArrayType (QualType T) const |
QualType | getBaseElementType (const ArrayType *VAT) const |
Return the innermost element type of an array type. | |
QualType | getBaseElementType (QualType QT) const |
Return the innermost element type of a type (which needn't actually be an array type). | |
uint64_t | getConstantArrayElementCount (const ConstantArrayType *CA) const |
Return number of constant array elements. | |
uint64_t | getArrayInitLoopExprElementCount (const ArrayInitLoopExpr *AILE) const |
Return number of elements initialized in an ArrayInitLoopExpr. | |
QualType | getAdjustedParameterType (QualType T) const |
Perform adjustment on the parameter type of a function. | |
QualType | getSignatureParameterType (QualType T) const |
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. | |
QualType | getExceptionObjectType (QualType T) const |
QualType | getArrayDecayedType (QualType T) const |
Return the properly qualified result of decaying the specified array type to a pointer. | |
QualType | getPromotedIntegerType (QualType PromotableType) const |
Return the type that PromotableType will promote to: C99 6.3.1.1p2, assuming that PromotableType is a promotable integer type. | |
Qualifiers::ObjCLifetime | getInnerObjCOwnership (QualType T) const |
Recurses in pointer/array types until it finds an Objective-C retainable type and returns its ownership. | |
QualType | isPromotableBitField (Expr *E) const |
Whether this is a promotable bitfield reference according to C99 6.3.1.1p2, bullet 2 (and GCC extensions). | |
int | getIntegerTypeOrder (QualType LHS, QualType RHS) const |
Return the highest ranked integer type, see C99 6.3.1.8p1. | |
int | getFloatingTypeOrder (QualType LHS, QualType RHS) const |
Compare the rank of the two specified floating point types, ignoring the domain of the type (i.e. | |
int | getFloatingTypeSemanticOrder (QualType LHS, QualType RHS) const |
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. | |
unsigned | getTargetAddressSpace (LangAS AS) const |
LangAS | getLangASForBuiltinAddressSpace (unsigned AS) const |
uint64_t | getTargetNullPointerValue (QualType QT) const |
Get target-dependent integer value for null pointer which is used for constant folding. | |
bool | addressSpaceMapManglingFor (LangAS AS) const |
bool | hasAnyFunctionEffects () const |
FunctionProtoType::ExceptionSpecInfo | mergeExceptionSpecs (FunctionProtoType::ExceptionSpecInfo ESI1, FunctionProtoType::ExceptionSpecInfo ESI2, SmallVectorImpl< QualType > &ExceptionTypeStorage, bool AcceptDependent) const |
QualType | getCommonSugaredType (QualType X, QualType Y, bool Unqualified=false) const |
bool | typesAreCompatible (QualType T1, QualType T2, bool CompareUnqualified=false) |
Compatibility predicates used to check assignment expressions. | |
bool | propertyTypesAreCompatible (QualType, QualType) |
bool | typesAreBlockPointerCompatible (QualType, QualType) |
bool | isObjCIdType (QualType T) const |
bool | isObjCClassType (QualType T) const |
bool | isObjCSelType (QualType T) const |
bool | ObjCQualifiedIdTypesAreCompatible (const ObjCObjectPointerType *LHS, const ObjCObjectPointerType *RHS, bool ForCompare) |
ObjCQualifiedIdTypesAreCompatible - We know that one of lhs/rhs is an ObjCQualifiedIDType. | |
bool | ObjCQualifiedClassTypesAreCompatible (const ObjCObjectPointerType *LHS, const ObjCObjectPointerType *RHS) |
ObjCQualifiedClassTypesAreCompatible - compare Class<pr,...> and Class<pr1, ...>. | |
bool | canAssignObjCInterfaces (const ObjCObjectPointerType *LHSOPT, const ObjCObjectPointerType *RHSOPT) |
canAssignObjCInterfaces - Return true if the two interface types are compatible for assignment from RHS to LHS. | |
bool | canAssignObjCInterfaces (const ObjCObjectType *LHS, const ObjCObjectType *RHS) |
bool | canAssignObjCInterfacesInBlockPointer (const ObjCObjectPointerType *LHSOPT, const ObjCObjectPointerType *RHSOPT, bool BlockReturnType) |
canAssignObjCInterfacesInBlockPointer - This routine is specifically written for providing type-safety for objective-c pointers used to pass/return arguments in block literals. | |
bool | areComparableObjCPointerTypes (QualType LHS, QualType RHS) |
QualType | areCommonBaseCompatible (const ObjCObjectPointerType *LHSOPT, const ObjCObjectPointerType *RHSOPT) |
bool | canBindObjCObjectType (QualType To, QualType From) |
QualType | mergeTypes (QualType, QualType, bool OfBlockPointer=false, bool Unqualified=false, bool BlockReturnType=false, bool IsConditionalOperator=false) |
QualType | mergeFunctionTypes (QualType, QualType, bool OfBlockPointer=false, bool Unqualified=false, bool AllowCXX=false, bool IsConditionalOperator=false) |
QualType | mergeFunctionParameterTypes (QualType, QualType, bool OfBlockPointer=false, bool Unqualified=false) |
mergeFunctionParameterTypes - merge two types which appear as function parameter types | |
QualType | mergeTransparentUnionType (QualType, QualType, bool OfBlockPointer=false, bool Unqualified=false) |
mergeTransparentUnionType - if T is a transparent union type and a member of T is compatible with SubType, return the merged type, else return QualType() | |
QualType | mergeTagDefinitions (QualType, QualType) |
QualType | mergeObjCGCQualifiers (QualType, QualType) |
mergeObjCGCQualifiers - This routine merges ObjC's GC attribute of 'LHS' and 'RHS' attributes and returns the merged version; including for function return types. | |
bool | mergeExtParameterInfo (const FunctionProtoType *FirstFnType, const FunctionProtoType *SecondFnType, bool &CanUseFirst, bool &CanUseSecond, SmallVectorImpl< FunctionProtoType::ExtParameterInfo > &NewParamInfos) |
This function merges the ExtParameterInfo lists of two functions. | |
void | ResetObjCLayout (const ObjCInterfaceDecl *D) |
void | addObjCSubClass (const ObjCInterfaceDecl *D, const ObjCInterfaceDecl *SubClass) |
unsigned | getIntWidth (QualType T) const |
QualType | getCorrespondingUnsignedType (QualType T) const |
QualType | getCorrespondingSignedType (QualType T) const |
QualType | getCorrespondingSaturatedType (QualType Ty) const |
QualType | getCorrespondingUnsaturatedType (QualType Ty) const |
QualType | getCorrespondingSignedFixedPointType (QualType Ty) const |
llvm::APSInt | MakeIntValue (uint64_t Value, QualType Type) const |
Make an APSInt of the appropriate width and signedness for the given Value and integer Type . | |
bool | isSentinelNullExpr (const Expr *E) |
ObjCImplementationDecl * | getObjCImplementation (ObjCInterfaceDecl *D) |
Get the implementation of the ObjCInterfaceDecl D , or nullptr if none exists. | |
ObjCCategoryImplDecl * | getObjCImplementation (ObjCCategoryDecl *D) |
Get the implementation of the ObjCCategoryDecl D , or nullptr if none exists. | |
bool | AnyObjCImplementation () |
Return true if there is at least one @implementation in the TU. | |
void | setObjCImplementation (ObjCInterfaceDecl *IFaceD, ObjCImplementationDecl *ImplD) |
Set the implementation of ObjCInterfaceDecl. | |
void | setObjCImplementation (ObjCCategoryDecl *CatD, ObjCCategoryImplDecl *ImplD) |
Set the implementation of ObjCCategoryDecl. | |
const ObjCMethodDecl * | getObjCMethodRedeclaration (const ObjCMethodDecl *MD) const |
Get the duplicate declaration of a ObjCMethod in the same interface, or null if none exists. | |
void | setObjCMethodRedeclaration (const ObjCMethodDecl *MD, const ObjCMethodDecl *Redecl) |
const ObjCInterfaceDecl * | getObjContainingInterface (const NamedDecl *ND) const |
Returns the Objective-C interface that ND belongs to if it is an Objective-C method/property/ivar etc. | |
void | setBlockVarCopyInit (const VarDecl *VD, Expr *CopyExpr, bool CanThrow) |
Set the copy initialization expression of a block var decl. | |
BlockVarCopyInit | getBlockVarCopyInit (const VarDecl *VD) const |
Get the copy initialization expression of the VarDecl VD , or nullptr if none exists. | |
TypeSourceInfo * | CreateTypeSourceInfo (QualType T, unsigned Size=0) const |
Allocate an uninitialized TypeSourceInfo. | |
TypeSourceInfo * | getTrivialTypeSourceInfo (QualType T, SourceLocation Loc=SourceLocation()) const |
Allocate a TypeSourceInfo where all locations have been initialized to a given location, which defaults to the empty location. | |
void | AddDeallocation (void(*Callback)(void *), void *Data) const |
Add a deallocation callback that will be invoked when the ASTContext is destroyed. | |
template<typename T> | |
void | addDestruction (T *Ptr) const |
If T isn't trivially destructible, calls AddDeallocation to register it for destruction. | |
GVALinkage | GetGVALinkageForFunction (const FunctionDecl *FD) const |
GVALinkage | GetGVALinkageForVariable (const VarDecl *VD) const |
bool | DeclMustBeEmitted (const Decl *D) |
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. | |
void | forEachMultiversionedFunctionVersion (const FunctionDecl *FD, llvm::function_ref< void(FunctionDecl *)> Pred) const |
Visits all versions of a multiversioned function with the passed predicate. | |
const CXXConstructorDecl * | getCopyConstructorForExceptionObject (CXXRecordDecl *RD) |
void | addCopyConstructorForExceptionObject (CXXRecordDecl *RD, CXXConstructorDecl *CD) |
void | addTypedefNameForUnnamedTagDecl (TagDecl *TD, TypedefNameDecl *TND) |
TypedefNameDecl * | getTypedefNameForUnnamedTagDecl (const TagDecl *TD) |
void | addDeclaratorForUnnamedTagDecl (TagDecl *TD, DeclaratorDecl *DD) |
DeclaratorDecl * | getDeclaratorForUnnamedTagDecl (const TagDecl *TD) |
void | setManglingNumber (const NamedDecl *ND, unsigned Number) |
unsigned | getManglingNumber (const NamedDecl *ND, bool ForAuxTarget=false) const |
void | setStaticLocalNumber (const VarDecl *VD, unsigned Number) |
unsigned | getStaticLocalNumber (const VarDecl *VD) const |
bool | hasSeenTypeAwareOperatorNewOrDelete () const |
void | setIsDestroyingOperatorDelete (const FunctionDecl *FD, bool IsDestroying) |
bool | isDestroyingOperatorDelete (const FunctionDecl *FD) const |
void | setIsTypeAwareOperatorNewOrDelete (const FunctionDecl *FD, bool IsTypeAware) |
bool | isTypeAwareOperatorNewOrDelete (const FunctionDecl *FD) const |
MangleNumberingContext & | getManglingNumberContext (const DeclContext *DC) |
Retrieve the context for computing mangling numbers in the given DeclContext. | |
MangleNumberingContext & | getManglingNumberContext (NeedExtraManglingDecl_t, const Decl *D) |
std::unique_ptr< MangleNumberingContext > | createMangleNumberingContext () const |
void | setParameterIndex (const ParmVarDecl *D, unsigned index) |
Used by ParmVarDecl to store on the side the index of the parameter when it exceeds the size of the normal bitfield. | |
unsigned | getParameterIndex (const ParmVarDecl *D) const |
Used by ParmVarDecl to retrieve on the side the index of the parameter when it exceeds the size of the normal bitfield. | |
StringLiteral * | getPredefinedStringLiteralFromCache (StringRef Key) const |
Return a string representing the human readable name for the specified function declaration or file name. | |
unsigned | getNextStringLiteralVersion () |
Return the next version number to be used for a string literal evaluated as part of constant evaluation. | |
MSGuidDecl * | getMSGuidDecl (MSGuidDeclParts Parts) const |
Return a declaration for the global GUID object representing the given GUID value. | |
UnnamedGlobalConstantDecl * | getUnnamedGlobalConstantDecl (QualType Ty, const APValue &Value) const |
Return a declaration for a uniquified anonymous global constant corresponding to a given APValue. | |
TemplateParamObjectDecl * | getTemplateParamObjectDecl (QualType T, const APValue &V) const |
Return the template parameter object of the given type with the given value. | |
ParsedTargetAttr | filterFunctionTargetAttrs (const TargetAttr *TD) const |
Parses the target attributes passed in, and returns only the ones that are valid feature names. | |
void | getFunctionFeatureMap (llvm::StringMap< bool > &FeatureMap, const FunctionDecl *) const |
void | getFunctionFeatureMap (llvm::StringMap< bool > &FeatureMap, GlobalDecl GD) const |
void | registerSYCLEntryPointFunction (FunctionDecl *FD) |
Generates and stores SYCL kernel metadata for the provided SYCL kernel entry point function. | |
const SYCLKernelInfo & | getSYCLKernelInfo (QualType T) const |
Given a type used as a SYCL kernel name, returns a reference to the metadata generated from the corresponding SYCL kernel entry point. | |
const SYCLKernelInfo * | findSYCLKernelInfo (QualType T) const |
Returns a pointer to the metadata generated from the corresponding SYCLkernel entry point if the provided type corresponds to a registered SYCL kernel name. | |
void | InitBuiltinTypes (const TargetInfo &Target, const TargetInfo *AuxTarget=nullptr) |
Initialize built-in types. | |
void | getObjCEncodingForMethodParameter (Decl::ObjCDeclQualifier QT, QualType T, std::string &S, bool Extended) const |
getObjCEncodingForMethodParameter - Return the encoded type for a single method parameter or return type. | |
bool | isMSStaticDataMemberInlineDefinition (const VarDecl *VD) const |
Returns true if this is an inline-initialized static data member which is treated as a definition for MSVC compatibility. | |
InlineVariableDefinitionKind | getInlineVariableDefinitionKind (const VarDecl *VD) const |
Determine whether a definition of this inline variable should be treated as a weak or strong definition. | |
OMPTraitInfo & | getNewOMPTraitInfo () |
Return a new OMPTraitInfo object owned by this context. | |
bool | mayExternalize (const Decl *D) const |
Whether a C++ static variable or CUDA/HIP kernel may be externalized. | |
bool | shouldExternalize (const Decl *D) const |
Whether a C++ static variable or CUDA/HIP kernel should be externalized. | |
const CXXRecordDecl * | baseForVTableAuthentication (const CXXRecordDecl *ThisClass) const |
Resolve the root record to be used to derive the vtable pointer authentication policy for the specified record. | |
bool | useAbbreviatedThunkName (GlobalDecl VirtualMethodDecl, StringRef MangledName) |
StringRef | getCUIDHash () const |
template<> | |
DynTypedNodeList | getParents (const DynTypedNode &Node) |
Static Public Member Functions | |
static ImportDecl * | getNextLocalImport (ImportDecl *Import) |
static bool | isObjCNSObjectType (QualType Ty) |
Return true if this is an NSObject object with its NSObject attribute set. |
Friends | |
class | NestedNameSpecifier |
class | ASTDeclReader |
class | ASTReader |
class | ASTWriter |
template<class> | |
class | serialization::AbstractTypeReader |
class | CXXRecordDecl |
class | IncrementalParser |
class | DeclarationNameTable |
class | DeclContext |
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic analysis of a file.
Definition at line 188 of file ASTContext.h.
using clang::ASTContext::import_range = llvm::iterator_range<import_iterator> |
Definition at line 1148 of file ASTContext.h.
using clang::ASTContext::overridden_cxx_method_iterator = CXXMethodVector::const_iterator |
Definition at line 1110 of file ASTContext.h.
Definition at line 1119 of file ASTContext.h.
A type synonym for the TemplateOrInstantiation mapping.
Definition at line 512 of file ASTContext.h.
Enumerator | |
---|---|
GE_None | No error. |
GE_Missing_type | Missing a type. |
GE_Missing_stdio | Missing a type from <stdio.h> |
GE_Missing_setjmp | Missing a type from <setjmp.h> |
GE_Missing_ucontext | Missing a type from <ucontext.h> |
Definition at line 2525 of file ASTContext.h.
|
strong |
Enumerator | |
---|---|
None | Not an inline variable. |
Weak | Weak definition of inline variable. |
WeakUnknown | Weak for now, might become strong later in this TU. |
Strong | Strong definition. |
Definition at line 3628 of file ASTContext.h.
Enumerator | |
---|---|
NeedExtraManglingDecl |
Definition at line 3444 of file ASTContext.h.
Enumerator | |
---|---|
PSF_None | |
PSF_Read | |
PSF_Write | |
PSF_Execute | |
PSF_Implicit | |
PSF_ZeroInit | |
PSF_Invalid |
Definition at line 3680 of file ASTContext.h.
ASTContext::ASTContext | ( | LangOptions & | LOpts, |
SourceManager & | SM, | ||
IdentifierTable & | idents, | ||
SelectorTable & | sels, | ||
Builtin::Context & | builtins, | ||
TranslationUnitKind | TUKind ) |
Definition at line 936 of file ASTContext.cpp.
References addTranslationUnitDecl(), BuiltinInfo, Comments, CompCategories, DeclarationNames, Idents, clang::nullptr, Selectors, SM, and TUKind.
Referenced by ASTContext(), buildImplicitRecord(), buildImplicitTypedef(), createDeviceMangleContext(), clang::ASTContext::CUDAConstantEvalContextRAII::CUDAConstantEvalContextRAII(), DecodeTypeStr(), getArrayDecayedType(), getCanonicalTemplateArgument(), getInjectedTemplateArg(), getPredefinedSugarType(), getSubstTemplateTemplateParmPack(), getTrivialTypeSourceInfo(), and operator=().
|
delete |
References ASTContext().
ASTContext::~ASTContext | ( | ) |
Definition at line 1002 of file ASTContext.cpp.
References cleanup().
void ASTContext::addComment | ( | const RawComment & | RC | ) |
Definition at line 348 of file ASTContext.cpp.
References Comments, clang::SourceRange::getBegin(), and clang::RawComment::getSourceRange().
void ASTContext::addCopyConstructorForExceptionObject | ( | CXXRecordDecl * | RD, |
CXXConstructorDecl * | CD ) |
Definition at line 13424 of file ASTContext.cpp.
References clang::cast(), CXXRecordDecl, and clang::Redeclarable< decl_type >::getFirstDecl().
void ASTContext::AddDeallocation | ( | void(* | Callback )(void *), |
void * | Data ) const |
Add a deallocation callback that will be invoked when the ASTContext is destroyed.
Callback | A callback function that will be invoked on destruction. |
Data | Pointer data that will be provided to the callback function when it is called. |
Definition at line 1009 of file ASTContext.cpp.
References clang::Data.
Referenced by addDestruction().
void ASTContext::addDeclaratorForUnnamedTagDecl | ( | TagDecl * | TD, |
DeclaratorDecl * | DD ) |
Definition at line 13441 of file ASTContext.cpp.
If T isn't trivially destructible, calls AddDeallocation to register it for destruction.
Definition at line 3387 of file ASTContext.h.
References AddDeallocation(), clang::T, and V.
Referenced by clang::MSGuidDecl::getAsAPValue(), clang::CompoundLiteralExpr::getOrCreateStaticValue(), clang::LifetimeExtendedTemporaryDecl::getOrCreateValue(), and clang::ASTDeclReader::VisitLifetimeExtendedTemporaryDecl().
void ASTContext::addedLocalImportDecl | ( | ImportDecl * | Import | ) |
Notify the AST context that a new import declaration has been parsed or implicitly created within this translation unit.
Definition at line 1778 of file ASTContext.cpp.
Referenced by clang::DeclContext::addHiddenDecl().
void ASTContext::addLazyModuleInitializers | ( | Module * | M, |
ArrayRef< GlobalDeclID > | IDs ) |
Definition at line 1154 of file ASTContext.cpp.
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.
Definition at line 1128 of file ASTContext.cpp.
References clang::isa().
|
inline |
Definition at line 3252 of file ASTContext.h.
Referenced by clang::SemaObjC::ActOnSuperClassOfClassInterface().
void ASTContext::addOverriddenMethod | ( | const CXXMethodDecl * | Method, |
const CXXMethodDecl * | Overridden ) |
Note that the given C++ Method
overrides the given Overridden
method.
Definition at line 1666 of file ASTContext.cpp.
References clang::Decl::isCanonicalDecl(), and clang::Method.
Referenced by clang::CXXMethodDecl::addOverriddenMethod().
Definition at line 3142 of file ASTContext.h.
References clang::isTargetAddressSpace().
|
inline |
Definition at line 1203 of file ASTContext.h.
References clang::TranslationUnitDecl::Create(), clang::Redeclarable< decl_type >::setPreviousDecl(), clang::TU_Incremental, and TUKind.
Referenced by ASTContext().
void ASTContext::addTypedefNameForUnnamedTagDecl | ( | TagDecl * | TD, |
TypedefNameDecl * | TND ) |
Definition at line 13431 of file ASTContext.cpp.
void ASTContext::adjustDeducedFunctionResultType | ( | FunctionDecl * | FD, |
QualType | ResultType ) |
Change the result type of a function type once it is deduced.
Definition at line 3785 of file ASTContext.cpp.
References adjustFunctionResultType(), getASTMutationListener(), clang::FunctionDecl::getMostRecentDecl(), clang::FunctionDecl::getPreviousDecl(), clang::ValueDecl::getType(), Next, and clang::ValueDecl::setType().
Referenced by clang::ASTReader::FinishedDeserializing().
void ASTContext::adjustExceptionSpec | ( | FunctionDecl * | FD, |
const FunctionProtoType::ExceptionSpecInfo & | ESI, | ||
bool | AsWritten = false ) |
Change the exception specification on a function once it is delay-parsed, instantiated, or computed.
Definition at line 3858 of file ASTContext.cpp.
References clang::TypeLoc::getFullDataSizeForType(), getFunctionTypeWithExceptionSpec(), clang::ValueDecl::getType(), clang::DeclaratorDecl::getTypeSourceInfo(), and clang::ValueDecl::setType().
Referenced by clang::ASTReader::FinishedDeserializing().
Change the result type of a function type, preserving sugar such as attributed types.
Definition at line 3773 of file ASTContext.cpp.
References adjustType(), clang::Type::castAs(), clang::Type::getAs(), getFunctionNoProtoType(), and getFunctionType().
Referenced by adjustDeducedFunctionResultType().
const FunctionType * ASTContext::adjustFunctionType | ( | const FunctionType * | Fn, |
FunctionType::ExtInfo | EInfo ) |
Change the ExtInfo on a function type.
Definition at line 3755 of file ASTContext.cpp.
References clang::cast(), clang::FunctionProtoType::ExtProtoInfo::ExtInfo, getFunctionNoProtoType(), getFunctionType(), clang::Result, and clang::T.
Referenced by handleFunctionTypeAttr().
void ASTContext::adjustObjCTypeParamBoundType | ( | const ObjCTypeParamDecl * | Orig, |
ObjCTypeParamDecl * | New ) const |
Definition at line 6449 of file ASTContext.cpp.
References clang::cast(), getObjCTypeParamType(), getTrivialTypeSourceInfo(), clang::QualType::getTypePtr(), clang::TypedefNameDecl::getUnderlyingType(), and New.
Referenced by checkTypeParamListConsistency().
Definition at line 5162 of file ASTContext.cpp.
References getAddrSpaceQualType(), and clang::opencl_constant.
Referenced by getStringLiteralArrayType().
QualType ASTContext::adjustType | ( | QualType | OldType, |
llvm::function_ref< QualType(QualType)> | Adjust ) const |
Rebuild a type, preserving any existing type sugar.
For function types, you probably want to just use adjustFunctionResultType
and friends instead.
Definition at line 3717 of file ASTContext.cpp.
References adjustType(), clang::cast(), getAdjustedType(), getAttributedType(), getBTFTagAttributedType(), getMacroQualifiedType(), getParenType(), and clang::Type::getTypeClass().
Referenced by adjustFunctionResultType(), adjustType(), and getFunctionTypeWithExceptionSpec().
Definition at line 814 of file ASTContext.h.
References Allocate(), clang::Num, and clang::T.
Definition at line 811 of file ASTContext.h.
Referenced by Allocate(), ASTAllocateString(), clang::CallExpr::Create(), clang::CaseStmt::Create(), clang::CUDAKernelCallExpr::Create(), clang::CXXConstructExpr::Create(), clang::CXXDefaultInitExpr::Create(), clang::CXXDependentScopeMemberExpr::Create(), clang::CXXMemberCallExpr::Create(), clang::CXXNewExpr::Create(), clang::CXXOperatorCallExpr::Create(), clang::CXXTemporaryObjectExpr::Create(), clang::IfStmt::Create(), clang::ParenListExpr::Create(), clang::PredefinedExpr::Create(), clang::RecoveryExpr::Create(), clang::ReturnStmt::Create(), clang::StringLiteral::Create(), clang::SwitchStmt::Create(), clang::UserDefinedLiteral::Create(), clang::WhileStmt::Create(), clang::ObjCTypeParamList::create(), clang::CallExpr::CreateEmpty(), clang::CaseStmt::CreateEmpty(), clang::CUDAKernelCallExpr::CreateEmpty(), clang::CXXConstructExpr::CreateEmpty(), clang::CXXDependentScopeMemberExpr::CreateEmpty(), clang::CXXMemberCallExpr::CreateEmpty(), clang::CXXNewExpr::CreateEmpty(), clang::CXXOperatorCallExpr::CreateEmpty(), clang::CXXTemporaryObjectExpr::CreateEmpty(), clang::IfStmt::CreateEmpty(), clang::ParenListExpr::CreateEmpty(), clang::PredefinedExpr::CreateEmpty(), clang::RecoveryExpr::CreateEmpty(), clang::ReturnStmt::CreateEmpty(), clang::StringLiteral::CreateEmpty(), clang::SwitchStmt::CreateEmpty(), clang::UserDefinedLiteral::CreateEmpty(), clang::WhileStmt::CreateEmpty(), getCanonicalTemplateSpecializationType(), getCountAttributedType(), getDeclAttrs(), getDeducedTemplateName(), getHLSLInlineSpirvType(), getObjCInterfaceType(), getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), getOverloadedTemplateName(), getPackIndexingType(), getSubstTemplateTypeParmType(), getTemplateSpecializationType(), getTypedefType(), and getUsingType().
|
inline |
Allocates a DeclListNode
or returns one from the ListNodeFreeList
pool.
Definition at line 827 of file ASTContext.h.
|
inline |
Return true if there is at least one @implementation in the TU.
Definition at line 3323 of file ASTContext.h.
QualType ASTContext::applyObjCProtocolQualifiers | ( | QualType | type, |
ArrayRef< ObjCProtocolDecl * > | protocols, | ||
bool & | hasError, | ||
bool | allowOnPointerType = false ) const |
Apply Objective-C protocol qualifiers to the given type.
allowOnPointerType | 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. |
If this is for the canonical type of a type parameter, we can apply protocol qualifiers on the ObjCObjectPointerType.
Definition at line 6348 of file ASTContext.cpp.
References getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), ObjCBuiltinClassTy, ObjCBuiltinIdTy, and clang::ast_matchers::type.
Referenced by getObjCTypeParamType().
QualType ASTContext::areCommonBaseCompatible | ( | const ObjCObjectPointerType * | LHSOPT, |
const ObjCObjectPointerType * | RHSOPT ) |
Definition at line 11137 of file ASTContext.cpp.
References clang::Type::castAs(), clang::declaresSameEntity(), getIntersectionOfProtocols(), getObjCInterfaceType(), getObjCObjectPointerType(), getObjCObjectType(), clang::ObjCObjectPointerType::getObjectType(), clang::QualType::isNull(), clang::Result, and sameObjCTypeArgs().
Definition at line 11322 of file ASTContext.cpp.
References canAssignObjCInterfaces(), and clang::Type::getAs().
Return true if the given types are an RISC-V vector builtin type and a VectorType that is a fixed-length representation of the RISC-V vector builtin type for a specific vector-length.
Definition at line 10624 of file ASTContext.cpp.
References BoolTy, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::Generic, clang::Type::getAs(), getBuiltinVectorTypeInfo(), getRVVTypeSize(), getTypeSize(), hasSameType(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isRVVVLSBuiltinType(), clang::Type::isVectorType(), clang::RVVFixedLengthData, clang::RVVFixedLengthMask, clang::RVVFixedLengthMask_1, clang::RVVFixedLengthMask_2, and clang::RVVFixedLengthMask_4.
Referenced by CompareStandardConversionSequences(), and IsVectorConversion().
Return true if the given vector types are of the same unqualified type or if they are equivalent to the same GCC vector type.
Definition at line 10569 of file ASTContext.cpp.
References clang::AltiVecBool, clang::AltiVecPixel, clang::Type::castAs(), clang::First, clang::VectorType::getElementType(), clang::VectorType::getNumElements(), clang::VectorType::getVectorKind(), hasSameType(), hasSameUnqualifiedType(), clang::Type::isVectorType(), clang::RVVFixedLengthData, clang::RVVFixedLengthMask, clang::RVVFixedLengthMask_1, clang::RVVFixedLengthMask_2, clang::RVVFixedLengthMask_4, clang::SveFixedLengthData, and clang::SveFixedLengthPredicate.
Referenced by CompareStandardConversionSequences(), and IsVectorConversion().
Return true if the given vector types are lax-compatible RISC-V vector types as defined by -flax-vector-conversions=, which permits implicit conversions between vectors with different number of elements and/or incompatible element types, false otherwise.
Definition at line 10673 of file ASTContext.cpp.
References clang::LangOptionsBase::All, clang::Generic, clang::Type::getAs(), getLangOpts(), clang::Type::getRVVEltType(), getRVVTypeSize(), getTypeSize(), clang::LangOptionsBase::Integer, clang::Type::isIntegerType(), clang::Type::isRVVSizelessBuiltinType(), and clang::Type::isVectorType().
Referenced by IsVectorConversion().
bool ASTContext::AtomicUsesUnsupportedLibcall | ( | const AtomicExpr * | E | ) | const |
Definition at line 13541 of file ASTContext.cpp.
References clang::TargetInfo::getMaxAtomicInlineWidth(), clang::Type::getPointeeType(), clang::AtomicExpr::getPtr(), clang::CharUnits::getQuantity(), getTargetInfo(), clang::TargetInfo::getTriple(), clang::Expr::getType(), getTypeAlignInChars(), getTypeSizeInChars(), clang::T, and toBits().
void ASTContext::attachCommentsToJustParsedDecls | ( | ArrayRef< Decl * > | Decls, |
const Preprocessor * | PP ) |
Searches existing comments for doc comments that should be attached to Decls
.
If any doc comment is found, it is parsed.
Requirement: All 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 Decls
.
Definition at line 532 of file ASTContext.cpp.
References adjustDeclToTemplate(), cacheRawCommentForDecl(), Comments, DeclRawComments, clang::File, getDeclLocsForCommentSearch(), getRawCommentForDeclNoCacheImpl(), clang::SourceLocation::isValid(), and ParsedComments.
|
inline |
Definition at line 819 of file ASTContext.h.
const CXXRecordDecl * ASTContext::baseForVTableAuthentication | ( | const CXXRecordDecl * | ThisClass | ) | const |
Resolve the root record to be used to derive the vtable pointer authentication policy for the specified record.
Definition at line 15122 of file ASTContext.cpp.
References CXXRecordDecl, getASTRecordLayout(), and clang::CXXRecordDecl::isPolymorphic().
Returns true iff we need copy/dispose helpers for the given type.
BlockRequiresCopying - Returns true if byref variable "D" of type "Ty" requires copy/dispose.
Note that this must match the logic in buildByrefHelpers.
Definition at line 8630 of file ASTContext.cpp.
References CXXRecordDecl, clang::Type::getAsCXXRecordDecl(), getBlockVarCopyInit(), clang::BlockVarCopyInit::getCopyExpr(), clang::Qualifiers::getObjCLifetime(), clang::QualType::getQualifiers(), clang::QualType::hasAddressDiscriminatedPointerAuth(), clang::Type::isBlockPointerType(), clang::QualType::isDestructedType(), clang::QualType::isNonTrivialToPrimitiveDestructiveMove(), isObjCNSObjectType(), clang::Type::isObjCObjectPointerType(), clang::Type::isObjCRetainableType(), clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.
Referenced by clang::CodeGen::CodeGenFunction::getBlockByrefInfo().
BuiltinTemplateDecl * ASTContext::buildBuiltinTemplateDecl | ( | BuiltinTemplateKind | BTK, |
const IdentifierInfo * | II ) const |
Definition at line 1213 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), BuiltinTemplate, clang::BuiltinTemplateDecl::Create(), and getTranslationUnitDecl().
RecordDecl * ASTContext::buildImplicitRecord | ( | StringRef | Name, |
RecordDecl::TagKind | TK = RecordDecl::TagKind::Struct ) const |
Create a new implicit TU-level CXXRecordDecl or RecordDecl declaration.
Definition at line 1232 of file ASTContext.cpp.
References clang::Decl::addAttr(), ASTContext(), clang::CPlusPlus, clang::CXXRecordDecl::Create(), clang::RecordDecl::Create(), getLangOpts(), getTranslationUnitDecl(), Idents, and clang::Decl::setImplicit().
Referenced by getBlockDescriptorExtendedType(), getBlockDescriptorType(), getCFConstantStringDecl(), getMSTypeInfoTagDecl(), getObjCSuperType(), and InitBuiltinTypes().
TypedefDecl * ASTContext::buildImplicitTypedef | ( | QualType | T, |
StringRef | Name ) const |
Create a new implicit TU-level typedef declaration.
Definition at line 1248 of file ASTContext.cpp.
References ASTContext(), clang::TypedefDecl::Create(), getTranslationUnitDecl(), getTrivialTypeSourceInfo(), Idents, clang::Decl::setImplicit(), and clang::T.
Referenced by getCFConstantStringDecl(), getInt128Decl(), getObjCClassDecl(), getObjCIdDecl(), getObjCInstanceTypeDecl(), getObjCSelDecl(), and getUInt128Decl().
void ASTContext::cacheRawCommentForDecl | ( | const Decl & | OriginalD, |
const RawComment & | Comment ) const |
Attaches Comment
to 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 OriginalD
or its redeclaration chain.
Definition at line 506 of file ASTContext.cpp.
References CommentlessRedeclChains, DeclRawComments, clang::Decl::getCanonicalDecl(), clang::RawComment::isDocumentation(), and RedeclChainComments.
Referenced by attachCommentsToJustParsedDecls(), and getRawCommentForAnyRedecl().
bool ASTContext::canAssignObjCInterfaces | ( | const ObjCObjectPointerType * | LHSOPT, |
const ObjCObjectPointerType * | RHSOPT ) |
canAssignObjCInterfaces - Return true if the two interface types are compatible for assignment from RHS to LHS.
This handles validation of any protocol qualifiers on the LHS or RHS.
Definition at line 10891 of file ASTContext.cpp.
References canAssignObjCInterfaces(), clang::ObjCObjectPointerType::getObjectType(), ObjCQualifiedClassTypesAreCompatible(), ObjCQualifiedIdTypesAreCompatible(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().
Referenced by clang::applyObjCTypeArgs(), areComparableObjCPointerTypes(), canAssignObjCInterfaces(), canAssignObjCObjectTypes(), canBindObjCObjectType(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), findMethodDecl(), and mergeTypes().
bool ASTContext::canAssignObjCInterfaces | ( | const ObjCObjectType * | LHS, |
const ObjCObjectType * | RHS ) |
Definition at line 11260 of file ASTContext.cpp.
References CollectInheritedProtocols(), clang::declaresSameEntity(), clang::ObjCInterfaceDecl::isSuperClassOf(), and sameObjCTypeArgs().
bool ASTContext::canAssignObjCInterfacesInBlockPointer | ( | const ObjCObjectPointerType * | LHSOPT, |
const ObjCObjectPointerType * | RHSOPT, | ||
bool | BlockReturnType ) |
canAssignObjCInterfacesInBlockPointer - This routine is specifically written for providing type-safety for objective-c pointers used to pass/return arguments in block literals.
When passed as arguments, passing 'A*' where 'id' is expected is not OK. Passing 'Sub *" where 'Super *" is expected is not OK. For the return type, the opposite is not OK.
Definition at line 10944 of file ASTContext.cpp.
References canAssignObjCInterfacesInBlockPointer(), clang::ObjCInterfaceType::getDecl(), clang::ObjCObjectPointerType::getInterfaceType(), getLangOpts(), clang::Type::isObjCBuiltinType(), clang::ObjCObjectPointerType::isObjCIdType(), clang::ObjCObjectPointerType::isObjCQualifiedIdType(), clang::ObjCInterfaceDecl::isSuperClassOf(), ObjCQualifiedIdTypesAreCompatible(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().
Referenced by canAssignObjCInterfacesInBlockPointer(), and mergeTypes().
Definition at line 11334 of file ASTContext.cpp.
References canAssignObjCInterfaces(), and getObjCObjectPointerType().
bool ASTContext::canBuiltinBeRedeclared | ( | const FunctionDecl * | FD | ) | const |
Return whether a declaration to a builtin is allowed to be overloaded/redeclared.
Definition at line 10322 of file ASTContext.cpp.
References BuiltinInfo, clang::FunctionDecl::getBuiltinID(), getTargetInfo(), and clang::Builtin::NotBuiltin.
bool ASTContext::canonicalizeTemplateArguments | ( | MutableArrayRef< TemplateArgument > | Args | ) | const |
Canonicalize the given template argument list.
Returns true if any arguments were non-canonical, false otherwise.
Definition at line 3212 of file ASTContext.cpp.
References getCanonicalTemplateArgument().
Referenced by clang::ClassTemplateDecl::getCanonicalInjectedSpecializationType(), and getTemplateSpecializationType().
void ASTContext::cleanup | ( | ) |
Definition at line 961 of file ASTContext.cpp.
References clang::Value::clear().
Referenced by ~ASTContext().
comments::FullComment * ASTContext::cloneFullComment | ( | comments::FullComment * | FC, |
const Decl * | D ) const |
Definition at line 594 of file ASTContext.cpp.
References clang::comments::DeclInfo::CommentDecl, clang::comments::FullComment::getBlocks(), clang::comments::FullComment::getDecl(), clang::comments::FullComment::getDeclInfo(), and clang::comments::DeclInfo::TemplateParameters.
Referenced by getCommentForDecl().
void ASTContext::CollectInheritedProtocols | ( | const Decl * | CDecl, |
llvm::SmallPtrSet< ObjCProtocolDecl *, 8 > & | Protocols ) |
CollectInheritedProtocols - Collect all protocols in current class and those inherited by it.
Definition at line 2811 of file ASTContext.cpp.
References CollectInheritedProtocols(), and clang::ObjCInterfaceDecl::getSuperClass().
Referenced by canAssignObjCInterfaces(), CollectInheritedProtocols(), ObjCQualifiedIdTypesAreCompatible(), and QIdProtocolsAdoptObjCObjectProtocols().
bool ASTContext::computeBestEnumTypes | ( | bool | IsPacked, |
unsigned | NumNegativeBits, | ||
unsigned | NumPositiveBits, | ||
QualType & | BestType, | ||
QualType & | BestPromotionType ) |
Compute BestType and BestPromotionType for an enum based on the highest number of negative and positive bits of its elements.
Returns true if enum width is too large.
Definition at line 5534 of file ASTContext.cpp.
References IntTy, LongLongTy, LongTy, ShortTy, SignedCharTy, UnsignedCharTy, UnsignedIntTy, UnsignedLongLongTy, UnsignedLongTy, and UnsignedShortTy.
|
inline |
Compute NumNegativeBits and NumPositiveBits for an enum based on the constant values of its enumerators.
Definition at line 1828 of file ASTContext.h.
References clang::EnumConstantDecl::getInitVal(), IntTy, and isRepresentableIntegerValue().
Examines a given type, and returns whether the type itself is address discriminated, or any transitively embedded types contain data that is address discriminated.
This includes implicitly authenticated values like vtable pointers, as well as explicitly qualified fields.
Definition at line 642 of file ASTContext.h.
References clang::T.
Referenced by IsEligibleForTrivialRelocation(), and IsTriviallyRelocatableType().
Examines a given type, and returns whether the type itself or any data it transitively contains has a pointer authentication schema that is not safely relocatable.
e.g. any data or fields with address discrimination other than any otherwise similar vtable pointers.
Definition at line 653 of file ASTContext.h.
References clang::T.
unsigned ASTContext::CountNonClassIvars | ( | const ObjCInterfaceDecl * | OI | ) | const |
Definition at line 3068 of file ASTContext.cpp.
References clang::ObjCInterfaceDecl::getImplementation(), and clang::ObjCInterfaceDecl::known_extensions().
MangleContext * ASTContext::createDeviceMangleContext | ( | const TargetInfo & | T | ) |
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.
Definition at line 13241 of file ASTContext.cpp.
References ASTContext(), clang::ItaniumMangleContext::create(), clang::MicrosoftMangleContext::create(), getDiagnostics(), and clang::T.
Referenced by InitDeviceMC().
MangleContext * ASTContext::createMangleContext | ( | const TargetInfo * | T = nullptr | ) |
If T
is null pointer, assume the target in ASTContext.
Definition at line 13220 of file ASTContext.cpp.
References clang::ItaniumMangleContext::create(), clang::MicrosoftMangleContext::create(), getDiagnostics(), and clang::T.
Referenced by clang::ASTNameGenerator::Implementation::getAllManglings(), getPointerAuthTypeDiscriminator(), getPointerAuthVTablePointerDiscriminator(), InitDeviceMC(), markUsedForAliasOrIfunc(), and useAbbreviatedThunkName().
std::unique_ptr< MangleNumberingContext > ASTContext::createMangleNumberingContext | ( | ) | const |
Definition at line 13414 of file ASTContext.cpp.
Referenced by getManglingNumberContext(), and getManglingNumberContext().
TypeSourceInfo * ASTContext::CreateTypeSourceInfo | ( | QualType | T, |
unsigned | Size = 0 ) const |
Allocate an uninitialized TypeSourceInfo.
The caller should initialize the memory held by TypeSourceInfo using the TypeLoc wrappers.
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. |
Size | the size of the type info to create, or 0 if the size should be calculated based on the type. |
Definition at line 3178 of file ASTContext.cpp.
References clang::TypeLoc::getFullDataSizeForType(), and clang::T.
Referenced by EvaluateBooleanTypeTrait(), getTemplateSpecializationTypeInfo(), getTrivialTypeSourceInfo(), and GetTypeSourceInfoForDeclarator().
|
inline |
Definition at line 817 of file ASTContext.h.
Referenced by clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::VarDecl::setInit(), and clang::TagDecl::setQualifierInfo().
|
inline |
Deallocates a DeclListNode
by returning it to the ListNodeFreeList
pool.
Definition at line 838 of file ASTContext.h.
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.
Definition at line 13018 of file ASTContext.cpp.
References clang::cast(), CXXRecordDecl, clang::VarDecl::DeclarationOnly, DeclMustBeEmitted(), clang::CXXMethodDecl::getCanonicalDecl(), getCurrentKeyFunction(), clang::Decl::getDeclContext(), GetGVALinkageForFunction(), GetGVALinkageForVariable(), clang::DeclContext::getParent(), getTargetInfo(), clang::GVA_AvailableExternally, clang::Decl::hasAttr(), clang::isa(), clang::DeclContext::isDependentContext(), clang::isDiscardableGVALinkage(), clang::CXXRecordDecl::isDynamicClass(), isMSStaticDataMemberInlineDefinition(), clang::SC_Register, and clang::FunctionDecl::TK_FunctionTemplate.
Referenced by DeclMustBeEmitted(), and clang::CIRGen::CIRGenModule::mustBeEmitted().
QualType ASTContext::DecodeTypeStr | ( | const char *& | Str, |
const ASTContext & | Context, | ||
ASTContext::GetBuiltinTypeError & | Error, | ||
bool & | RequireICE, | ||
bool | AllowTypeModifiers ) const |
Definition at line 12727 of file ASTContext.cpp.
References ASTContext(), DecodeTypeFromStr(), and clang::Error.
void ASTContext::deduplicateMergedDefinitionsFor | ( | NamedDecl * | ND | ) |
Clean up the merged definition list.
Call this if you might have added duplicates into the list.
Definition at line 1089 of file ASTContext.cpp.
References clang::cast(), clang::Found, and clang::Decl::getCanonicalDecl().
void ASTContext::DeepCollectObjCIvars | ( | const ObjCInterfaceDecl * | OI, |
bool | leafClass, | ||
SmallVectorImpl< const ObjCIvarDecl * > & | Ivars ) const |
DeepCollectObjCIvars - This routine first collects all declared, but not synthesized, ivars in super class and then collects all ivars, including those synthesized for current class.
This routine is used for implementation of current class when all ivars, declared and synthesized are known.
Definition at line 2794 of file ASTContext.cpp.
References DeepCollectObjCIvars(), clang::ObjCIvarDecl::getNextIvar(), clang::ObjCInterfaceDecl::getSuperClass(), and clang::ObjCInterfaceDecl::ivars().
Referenced by DeepCollectObjCIvars().
void ASTContext::DumpRecordLayout | ( | const RecordDecl * | RD, |
raw_ostream & | OS, | ||
bool | Simple = false ) const |
Definition at line 3764 of file RecordLayoutBuilder.cpp.
References CXXRecordDecl, DumpRecordLayout(), clang::ASTRecordLayout::getAlignment(), getASTRecordLayout(), getCanonicalTagType(), clang::ASTRecordLayout::getDataSize(), clang::ASTRecordLayout::getFieldCount(), clang::ASTRecordLayout::getFieldOffset(), clang::ASTRecordLayout::getPreferredAlignment(), clang::ASTRecordLayout::getSize(), getTargetInfo(), and toBits().
void ASTContext::eraseDeclAttrs | ( | const Decl * | D | ) |
Erase the attributes corresponding to the given declaration.
Definition at line 1538 of file ASTContext.cpp.
Referenced by clang::Decl::dropAttrs().
ParsedTargetAttr ASTContext::filterFunctionTargetAttrs | ( | const TargetAttr * | TD | ) | const |
Parses the target attributes passed in, and returns only the ones that are valid feature names.
Definition at line 14901 of file ASTContext.cpp.
Referenced by getFunctionFeatureMap().
TemplateTemplateParmDecl * ASTContext::findCanonicalTemplateTemplateParmDeclInternal | ( | TemplateTemplateParmDecl * | TTP | ) | const |
Definition at line 852 of file ASTContext.cpp.
const SYCLKernelInfo * ASTContext::findSYCLKernelInfo | ( | QualType | T | ) | const |
Returns a pointer to the metadata generated from the corresponding SYCLkernel entry point if the provided type corresponds to a registered SYCL kernel name.
Returns a null pointer otherwise.
Definition at line 15067 of file ASTContext.cpp.
References getCanonicalType(), SYCLKernels, and clang::T.
Referenced by clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl().
void ASTContext::forEachMultiversionedFunctionVersion | ( | const FunctionDecl * | FD, |
llvm::function_ref< void(FunctionDecl *)> | Pred ) const |
Visits all versions of a multiversioned function with the passed predicate.
Definition at line 13144 of file ASTContext.cpp.
References clang::Decl::getAsFunction(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getMostRecentDecl(), clang::DeclContext::getRedeclContext(), clang::ValueDecl::getType(), hasSameType(), clang::FunctionDecl::isMultiVersion(), and clang::DeclContext::lookup().
Referenced by isNonViableMultiVersionOverload(), and clang::Sema::PerformPendingInstantiations().
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.
Definition at line 3257 of file ASTContext.cpp.
References clang::Qualifiers::addAddressSpace(), clang::QualType::getAddressSpace(), getCanonicalType(), clang::Qualifiers::hasAddressSpace(), clang::QualifierCollector::strip(), and clang::T.
Referenced by clang::SemaHLSL::ActOnVariableDeclarator(), clang::hlsl::BuiltinTypeDeclBuilder::addAppendMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addConsumeMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleAccessFunction(), AdjustAddressSpaceForBuiltinOperandType(), AdjustFunctionParmAndArgTypesForDeduction(), adjustStringLiteralBaseType(), builtinAllocaAddrSpace(), checkConditionalPointerCompatibility(), createHostLayoutStructForBuffer(), deduceOpenCLPointeeAddrSpace(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), HandleAddressSpaceTypeAttribute(), handleMSPointerTypeQualifierAttr(), and HandleWebAssemblyFuncrefAttr().
Perform adjustment on the parameter type of a function.
This routine adjusts the given parameter type 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.
Definition at line 8024 of file ASTContext.cpp.
References getArrayParameterType(), getDecayedType(), getLangOpts(), clang::HLSL, and clang::T.
Referenced by DeduceNonTypeTemplateArgument(), and getSignatureParameterType().
|
inline |
Definition at line 1537 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), getAdjustedType(), and New.
Return the uniqued reference to a type adjusted from the original type to a new type.
Definition at line 3942 of file ASTContext.cpp.
References getCanonicalType(), New, and clang::AdjustedType::Profile().
Referenced by adjustType(), getAdjustedType(), and getCommonSugarTypeNode().
Return the alignment in bits that should be given to a global variable with type T
.
getAlignOfGlobalVar - Return the alignment in bits that should be given to a global variable of the specified type.
If VD
is non-null it will be considered specifically for the query.
Definition at line 2739 of file ASTContext.cpp.
References getMinGlobalAlignOfVar(), getPreferredTypeAlign(), getTypeSize(), and clang::T.
Referenced by getAlignOfGlobalVarInChars().
Return the alignment in characters that should be given to a global variable with type T
.
getAlignOfGlobalVarInChars - Return the alignment in characters that should be given to a global variable of the specified type.
If VD
is non-null it will be considered specifically for the query.
Definition at line 2747 of file ASTContext.cpp.
References getAlignOfGlobalVar(), clang::T, and toCharUnitsFromBits().
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfConstantCString(), clang::CodeGen::CodeGenModule::GetAddrOfConstantStringFromLiteral(), and clang::SemaOpenMP::isOpenMPCapturedByRef().
|
inline |
Definition at line 807 of file ASTContext.h.
Referenced by clang::Decl::getID().
Return the properly qualified result of decaying the specified array type to a pointer.
getArrayDecayedType - 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 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.
This operation is non-trivial when handling typedefs etc. The canonical type of "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.
Definition at line 8057 of file ASTContext.cpp.
References ASTContext(), getAsArrayType(), getAttributedType(), clang::ArrayType::getElementType(), clang::ArrayType::getIndexTypeQualifiers(), clang::Type::getNullability(), getPointerType(), getQualifiedType(), and clang::Result.
Referenced by BuildCookedLiteralOperatorCall(), CheckTemplateArgumentAddressOfObjectOrFunction(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), doRewriteToUTF8StringBoxedExpressionHelper(), GetBuiltinType(), getCanonicalParamType(), getDecayedType(), and IsStandardConversion().
uint64_t ASTContext::getArrayInitLoopExprElementCount | ( | const ArrayInitLoopExpr * | AILE | ) | const |
Return number of elements initialized in an ArrayInitLoopExpr.
Definition at line 8109 of file ASTContext.cpp.
References clang::ArrayInitLoopExpr::getArraySize(), and clang::ArrayInitLoopExpr::getSubExpr().
Return the uniqued reference to a specified array parameter type from the original array type.
Definition at line 4006 of file ASTContext.cpp.
References clang::cast(), getArrayParameterType(), getCanonicalType(), clang::QualType::getDesugaredType(), clang::Type::isArrayParameterType(), clang::QualType::isCanonical(), and clang::Type::isConstantArrayType().
Referenced by getAdjustedParameterType(), getArrayParameterType(), getCanonicalParamType(), getCommonNonSugarTypeNode(), and IsStandardConversion().
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.
Definition at line 7971 of file ASTContext.cpp.
References clang::cast(), clang::Qualifiers::empty(), getConstantArrayType(), getDependentSizedArrayType(), getIncompleteArrayType(), getQualifiedType(), getVariableArrayType(), clang::isa(), clang::SplitQualType::Quals, clang::T, and clang::SplitQualType::Ty.
Referenced by CheckC23ConstexprInitStringLiteral(), clang::Sema::CheckCountedByAttrOnField(), checkFormatStringExpr(), DeduceFromInitializerList(), DeduceTemplateArgumentsByTypeMatch(), diagnoseArrayStarInParamType(), DiagnoseDivisionSizeofPointerOrArray(), DiagnoseIsEmptyReason(), DiagnoseIsFinalReason(), clang::CIRGen::CIRGenFunction::emitArrayLength(), clang::CodeGen::CodeGenFunction::emitArrayLength(), clang::CIRGen::CIRGenFunction::emitDestroy(), clang::CodeGen::CodeGenFunction::emitDestroy(), clang::CodeGen::ReductionCodeGen::emitInitialization(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPartialArrayDestroy(), findSubobject(), getArrayDecayedType(), getAsConstantArrayType(), getAsDependentSizedArrayType(), getAsIncompleteArrayType(), getAsVariableArrayType(), getDeclAlign(), clang::CFGImplicitDtor::getDestructorDecl(), getLValueType(), handleInitPriorityAttr(), clang::interp::InterpretOffsetOf(), isDesignatorAtObjectEnd(), isSafeToConvert(), isSameEntity(), clang::extractapi::impl::ExtractAPIVisitorBase< std::conditional_t< std::is_same_v< Derived, void >, ExtractAPIVisitor<>, Derived > >::maybeMergeWithAnonymousTag(), mergeTypes(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), TryArrayCopy(), TryListConversion(), TryListInitialization(), tryObjCWritebackConversion(), TryOrBuildParenListInitialization(), TypeRequiresBuiltinLaunderImp(), and UnwrapSimilarArrayTypes().
|
inline |
Definition at line 3047 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by buildSingleCopyAssignRecursively(), CheckFormatString(), CompareImplicitConversionSequences(), clang::SemaOpenACC::CreateFirstPrivateInitRecipe(), DeduceTemplateArgumentsByTypeMatch(), EmitCXXNewAllocSize(), EmitMemberInitializer(), emitMemberInitializer(), EquivalentArrayTypes(), EvaluateAsStringImpl(), expandStringLiteral(), extractStringLiteralCharacter(), clang::analyze_scanf::ScanfSpecifier::fixType(), fixVarDeclWithArray(), fixVariable(), FixVarInitializerWithSpan(), clang::Sema::GetDecompositionElementCount(), clang::VarDecl::getFlexibleArrayInitChars(), clang::CIRGen::CIRGenFunction::getOpenACCDataOperandInfo(), HandleDestructionImpl(), clang::VarDecl::hasFlexibleArrayInit(), clang::Decl::isFlexibleArrayMemberLike(), isPtrBufferSafe(), isValidStructGUID(), isZeroSizedArray(), mergeTypes(), clang::InitializationSequence::Perform(), and TryOrBuildParenListInitialization().
|
inline |
Definition at line 3056 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by DeduceTemplateArgumentsByTypeMatch().
|
inline |
Definition at line 3053 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by DeduceTemplateArgumentsByTypeMatch(), clang::Decl::isFlexibleArrayMemberLike(), and clang::InitializationSequence::Perform().
TemplateName ASTContext::getAssumedTemplateName | ( | DeclarationName | Name | ) | const |
Retrieve a template name representing an unqualified-id that has been assumed to name a template for ADL purposes.
Definition at line 10369 of file ASTContext.cpp.
References clang::TemplateName.
|
inline |
Return the total amount of physical memory allocated for representing AST nodes and type information.
Definition at line 845 of file ASTContext.h.
|
inline |
Retrieve a pointer to the AST mutation listener associated with this AST context, if any.
Definition at line 1357 of file ASTContext.h.
References Listener.
Referenced by adjustDeducedFunctionResultType(), applyOMPAllocateAttribute(), clang::Decl::getASTMutationListener(), and mergeDefinitionIntoModule().
const ASTRecordLayout & ASTContext::getASTObjCInterfaceLayout | ( | const ObjCInterfaceDecl * | D | ) | const |
Get or compute information about the layout of the specified Objective-C interface.
Definition at line 3200 of file ASTContext.cpp.
Referenced by getTypeUnadjustedAlign(), and lookupFieldBitOffset().
const ASTRecordLayout & ASTContext::getASTRecordLayout | ( | const RecordDecl * | D | ) | const |
Get or compute information about the layout of the specified record (struct/union/class) D
, which indicates its size and field position information.
getASTRecordLayout - Get or compute information about the layout of the specified record (struct/union/class), which indicates its size and field position information.
Definition at line 3366 of file RecordLayoutBuilder.cpp.
References DumpRecordLayout(), clang::CharUnits::fromQuantity(), clang::RecordDecl::getDefinition(), getDiagnostics(), getExternalSource(), getLangOpts(), clang::Decl::getLocation(), clang::RecordDecl::getMostRecentDecl(), clang::NamedDecl::getName(), clang::CharUnits::getQuantity(), clang::ASTRecordLayout::getSize(), getTargetInfo(), clang::DeclContext::hasExternalLexicalStorage(), clang::TagDecl::isCompleteDefinition(), clang::CXXRecordDecl::isDynamicClass(), clang::Decl::isInvalidDecl(), mustSkipTailPadding(), and clang::CharUnits::Zero().
Referenced by clang::interp::IntPointer::atOffset(), clang::interp::IntPointer::baseCast(), baseForVTableAuthentication(), clang::CodeGen::CGCXXABI::buildThisParam(), calculateOffset(), CastToDerivedClass(), classifyType(), clang::RecordDecl::completeDefinition(), clang::interp::computePointerOffset(), DumpRecordLayout(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), EmitNullBaseClassInitialization(), EmitNullConstant(), EncodeBitField(), enumerateData(), clang::CodeGen::CodeGenFunction::GetAddressOfBaseClass(), clang::CodeGen::CodeGenFunction::GetAddressOfDirectBaseInCompleteClass(), clang::CIRGen::CIRGenFunction::getAddressOfDirectBaseInCompleteClass(), getBaseAlignmentAndOffsetFromLValue(), getBaseAlignmentAndOffsetFromPtr(), clang::CodeGen::CodeGenModule::getClassPointerAlignment(), getDeclAlign(), getDerivedToBaseAlignmentAndOffset(), clang::CIRGen::CIRGenModule::getDynamicOffsetAlignment(), clang::CodeGen::CodeGenModule::getDynamicOffsetAlignment(), GetFieldOffset(), getFieldOffsetInBits(), clang::VarDecl::getFlexibleArrayInitChars(), getMemberPointerPathAdjustment(), clang::CodeGen::CodeGenModule::getMinimumClassObjectSize(), getOffsetOfBaseWithVBPtr(), getPreferredTypeAlign(), getTypeInfoDataSizeInChars(), getTypeUnadjustedAlign(), clang::CIRGen::CIRGenModule::getVBaseAlignment(), clang::CodeGen::CodeGenModule::getVBaseAlignment(), clang::CIRGen::CIRGenFunction::getVTablePointers(), clang::CodeGen::CodeGenFunction::getVTablePointers(), clang::CodeGen::CodeGenFunction::GetVTTParameter(), clang::CIRGen::CIRGenFunction::getVTTParameter(), HandleClassZeroInitialization(), HandleConstructorCall(), HandleDestructionImpl(), HandleLValueBase(), HandleLValueDirectBase(), HandleLValueMember(), clang::interp::InterpretOffsetOf(), isDesignatorAtObjectEnd(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 3050 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by CheckICE(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), emitArraySubscriptGEP(), emitArraySubscriptPtr(), emitPointerArithmetic(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), EquivalentArrayTypes(), getFixedSizeElementType(), getFixedSizeElementType(), clang::CodeGen::CodeGenFunction::getVLAElements1D(), clang::CodeGen::CodeGenFunction::getVLASize(), mergeTypes(), TryOrBuildParenListInitialization(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
Return the uniqued reference to the atomic type for the specified type.
getAtomicType - Return the uniqued reference to the atomic type for the given value type.
Definition at line 6903 of file ASTContext.cpp.
References getAtomicType(), getCanonicalType(), New, clang::AtomicType::Profile(), and clang::T.
Referenced by getAtomicType(), getCommonNonSugarTypeNode(), getVariableArrayDecayedType(), makeQualifiedLValueReferenceType(), and mergeTypes().
QualType ASTContext::getAttributedType | ( | attr::Kind | attrKind, |
QualType | modifiedType, | ||
QualType | equivalentType, | ||
const Attr * | attr = nullptr ) const |
Definition at line 5691 of file ASTContext.cpp.
References getCanonicalType(), and clang::ast_matchers::type.
Referenced by adjustType(), CheckNullabilityTypeSpecifier(), computeConditionalNullability(), getArrayDecayedType(), getAttributedType(), getAttributedType(), getCommonSugarTypeNode(), clang::TypeName::getFullyQualifiedType(), mergeParamDeclTypes(), mergeTypeNullabilityForRedecl(), ProcessAPINotes(), and rebuildAttributedTypeWithoutNullability().
QualType ASTContext::getAttributedType | ( | const Attr * | attr, |
QualType | modifiedType, | ||
QualType | equivalentType ) const |
Definition at line 5714 of file ASTContext.cpp.
References getAttributedType().
QualType ASTContext::getAttributedType | ( | NullabilityKind | nullability, |
QualType | modifiedType, | ||
QualType | equivalentType ) |
Definition at line 5719 of file ASTContext.cpp.
References getAttributedType(), clang::NonNull, clang::Nullable, clang::NullableResult, and clang::Unspecified.
QualType ASTContext::getAutoDeductType | ( | ) | const |
C++11 deduction pattern for 'auto' type.
getAutoDeductType - Get type pattern for deducing against 'auto'.
Definition at line 6930 of file ASTContext.cpp.
References clang::Auto, and AutoDeductTy.
Referenced by getAutoRRefDeductType(), and getDummyLambdaType().
QualType ASTContext::getAutoRRefDeductType | ( | ) | const |
C++11 deduction pattern for 'auto &&' type.
getAutoRRefDeductType - Get type pattern for deducing against 'auto &&'.
Definition at line 6941 of file ASTContext.cpp.
References AutoRRefDeductTy, getAutoDeductType(), and getRValueReferenceType().
QualType ASTContext::getAutoType | ( | QualType | DeducedType, |
AutoTypeKeyword | Keyword, | ||
bool | IsDependent, | ||
bool | IsPack = false, | ||
TemplateDecl * | TypeConstraintConcept = nullptr, | ||
ArrayRef< TemplateArgument > | TypeConstraintArgs = {} ) const |
C++11 deduced auto type.
getAutoType - Return the uniqued reference to the 'auto' type which has been deduced to the given type, or to the canonical undeduced 'auto' type, or the canonical deduced-but-dependent 'auto' type.
Definition at line 6823 of file ASTContext.cpp.
References clang::QualType::isNull(), and clang::Keyword.
Referenced by ConvertDeclSpecToType(), getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), and getUnconstrainedType().
|
inline |
Definition at line 857 of file ASTContext.h.
Referenced by handleCodeModelAttr(), InitDeviceMC(), and ProcessStmtAttribute().
Return the innermost element type of an array type.
For example, will return "int" for int[m][n]
Definition at line 8079 of file ASTContext.cpp.
References getBaseElementType(), and clang::ArrayType::getElementType().
Referenced by clang::SemaOpenMP::ActOnOpenMPCopyinClause(), clang::SemaOpenMP::ActOnOpenMPCopyprivateClause(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::SemaOpenMP::ActOnOpenMPLastprivateClause(), BuildImplicitMemberInitializer(), CheckAggExprForMemSetUse(), CheckBitcastType(), CheckC23ConstexprVarType(), clang::interp::CheckNewTypeMismatch(), checkTrivialClassMembers(), defaultedSpecialMemberIsConstexpr(), DiagnoseDivisionSizeofPointerOrArray(), DiagnoseNonReplaceableReason(), diagnoseOpenCLTypes(), clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), EmitMemberInitializer(), emitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), emitReadOnlyPlacementAttrWarning(), clang::CodeGen::CGHLSLRuntime::emitResourceArraySubscriptExpr(), getBaseElementType(), getDeclAlign(), clang::CFGImplicitDtor::getDestructorDecl(), getInnerObjCOwnership(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), getTypeAlignIfKnown(), handleInitPriorityAttr(), hasUniqueObjectRepresentations(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), clang::Sema::IsCXXReplaceableType(), clang::Sema::IsCXXTriviallyRelocatableType(), clang::QualType::isNonConstantStorage(), IsTriviallyRelocatableType(), MarkFieldDestructorReferenced(), PerformConstructorInitialization(), clang::ento::ExprEngine::ProcessDeleteDtor(), resolveAllocationOverloadInterior(), TryDefaultInitialization(), TryValueInitialization(), and TypeRequiresBuiltinLaunderImp().
Return the innermost element type of a type (which needn't actually be an array type).
Definition at line 8083 of file ASTContext.cpp.
References clang::Qualifiers::addConsistentQualifiers(), clang::Type::getAsArrayTypeUnsafe(), clang::ArrayType::getElementType(), getQualifiedType(), clang::SplitQualType::Quals, clang::SplitQualType::Ty, and clang::ast_matchers::type.
Return a bit-precise integer type with the specified signedness and bit count.
Definition at line 5176 of file ASTContext.cpp.
References New, and clang::BitIntType::Profile().
Referenced by ChangeIntegralSignedness(), getCorrespondingSignedType(), and getCorrespondingUnsignedType().
QualType ASTContext::getBlockDescriptorExtendedType | ( | ) | const |
Gets the struct used to keep track of the extended descriptor for pointer to blocks.
Definition at line 8548 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, buildImplicitRecord(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), getCanonicalTagType(), getPointerType(), clang::ICIS_NoInit, Idents, clang::TagDecl::startDefinition(), UnsignedLongTy, and VoidPtrTy.
QualType ASTContext::getBlockDescriptorType | ( | ) | const |
Gets the struct used to keep track of the descriptor for pointer to blocks.
Definition at line 8513 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, buildImplicitRecord(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), getCanonicalTagType(), clang::ICIS_NoInit, Idents, clang::TagDecl::startDefinition(), and UnsignedLongTy.
Return the uniqued reference to the type for a block of the specified type.
getBlockPointerType - Return the uniqued reference to the type for a pointer to the specified block.
Definition at line 4040 of file ASTContext.cpp.
References getBlockPointerType(), getCanonicalType(), New, clang::BlockPointerType::Profile(), and clang::T.
Referenced by addBlockPointerConversion(), checkConditionalPointerCompatibility(), getBlockPointerType(), getCommonNonSugarTypeNode(), clang::ento::MemRegionManager::getVarRegion(), and mergeTypes().
BlockVarCopyInit ASTContext::getBlockVarCopyInit | ( | const VarDecl * | VD | ) | const |
Get the copy initialization expression of the VarDecl VD
, or nullptr if none exists.
Get the copy initialization expression of VarDecl, or nullptr if none exists.
Definition at line 3159 of file ASTContext.cpp.
References clang::Decl::hasAttr().
Referenced by BlockRequiresCopying(), and getBlockCaptureStr().
|
inline |
Retrieve declaration of 'BOOL' typedef.
Definition at line 2360 of file ASTContext.h.
Referenced by getBOOLType().
|
inline |
|
inline |
type of 'BOOL' type.
Definition at line 2370 of file ASTContext.h.
References getBOOLDecl(), getTypedefType(), and clang::None.
QualType ASTContext::getBTFTagAttributedType | ( | const BTFTypeTagAttr * | BTFAttr, |
QualType | Wrapped ) const |
Definition at line 5741 of file ASTContext.cpp.
References getCanonicalType().
Referenced by adjustType(), and getCommonSugarTypeNode().
TypedefDecl * ASTContext::getBuiltinMSVaListDecl | ( | ) | const |
Retrieve the C type declaration corresponding to the predefined __builtin_ms_va_list
type.
Definition at line 10315 of file ASTContext.cpp.
References CreateMSVaListDecl().
Referenced by getBuiltinMSVaListType().
|
inline |
Retrieve the type of the __builtin_ms_va_list
type.
Definition at line 2400 of file ASTContext.h.
References getBuiltinMSVaListDecl(), getTypedefType(), and clang::None.
QualType ASTContext::GetBuiltinType | ( | unsigned | ID, |
GetBuiltinTypeError & | Error, | ||
unsigned * | IntegerConstantArgs = nullptr ) const |
Return the type for the specified builtin.
GetBuiltinType - Return the type for the specified builtin.
If IntegerConstantArgs
is non-null, it is filled in with a bitmask of arguments to the builtin that are required to be integer constant expressions.
Definition at line 12734 of file ASTContext.cpp.
References BuiltinInfo, clang::CPlusPlus, DecodeTypeFromStr(), clang::Error, clang::EST_BasicNoexcept, clang::EST_DynamicNone, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::FunctionProtoType::ExtProtoInfo::ExtInfo, GE_Missing_type, GE_None, getArrayDecayedType(), getFunctionNoProtoType(), getFunctionType(), getLangOpts(), clang::Type::isArrayType(), clang::FunctionProtoType::ExceptionSpecInfo::Type, clang::FunctionProtoType::ExtProtoInfo::Variadic, and clang::FunctionType::ExtInfo::withNoReturn().
Referenced by clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitRISCVBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), and clang::CodeGen::CodeGenFunction::GetAArch64SVEProcessedOperands().
TypedefDecl * ASTContext::getBuiltinVaListDecl | ( | ) | const |
Retrieve the C type declaration corresponding to the predefined __builtin_va_list
type.
Definition at line 10297 of file ASTContext.cpp.
References CreateVaListDecl().
Referenced by getBuiltinVaListType(), GetFullTypeForDeclarator(), and getVaListTagDecl().
|
inline |
Retrieve the type of the __builtin_va_list
type.
Definition at line 2385 of file ASTContext.h.
References getBuiltinVaListDecl(), getTypedefType(), and clang::None.
Referenced by clang::CodeGen::getVAListElementType().
ASTContext::BuiltinVectorTypeInfo ASTContext::getBuiltinVectorTypeInfo | ( | const BuiltinType * | VecTy | ) | const |
Returns the element type, element count and number of vectors (in case of tuple) for a builtin vector type.
Definition at line 4516 of file ASTContext.cpp.
References clang::BuiltinType::getKind().
Referenced by areCompatibleRVVTypes(), clang::CheckInvalidVLENandLMUL(), checkSizelessVectorShift(), clang::Type::getRVVEltType(), clang::Type::getSveEltType(), and HandleRISCVRVVVectorBitsTypeAttr().
bool ASTContext::getByrefLifetime | ( | QualType | Ty, |
Qualifiers::ObjCLifetime & | Lifetime, | ||
bool & | HasByrefExtendedLayout ) const |
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.
Definition at line 8673 of file ASTContext.cpp.
References getLangOpts(), clang::QualType::getObjCLifetime(), clang::Type::isBlockPointerType(), clang::Type::isObjCObjectPointerType(), clang::Type::isRecordType(), clang::LangOptionsBase::NonGC, clang::ObjC, clang::Qualifiers::OCL_ExplicitNone, and clang::Qualifiers::OCL_None.
Referenced by clang::CodeGen::CodeGenFunction::emitByrefStructureInit().
CanQualType ASTContext::getCanonicalFunctionResultType | ( | QualType | ResultType | ) | const |
Adjust the given function result type.
Definition at line 4942 of file ASTContext.cpp.
References clang::CanQual< Type >::CreateUnsafe(), getCanonicalType(), getQualifiedType(), clang::CanQual< T >::getQualifiers(), clang::CanQual< T >::getUnqualifiedType(), clang::Qualifiers::hasObjCLifetime(), and clang::Qualifiers::removeObjCLifetime().
Referenced by getFunctionNoProtoType().
CanQualType ASTContext::getCanonicalParamType | ( | QualType | T | ) | const |
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.
Definition at line 7020 of file ASTContext.cpp.
References clang::CanQual< Type >::CreateUnsafe(), getArrayDecayedType(), getArrayParameterType(), getCanonicalType(), getLangOpts(), getPointerType(), getVariableArrayDecayedType(), clang::HLSL, clang::isa(), clang::Result, and clang::T.
Referenced by arrangeFreeFunctionLikeCall(), arrangeFreeFunctionLikeCall(), getArgTypesForCall(), and getArgTypesForDeclaration().
CanQualType ASTContext::getCanonicalSizeType | ( | ) | const |
Definition at line 6955 of file ASTContext.cpp.
Referenced by appendParameterTypes().
CanQualType ASTContext::getCanonicalTagType | ( | const TagDecl * | TD | ) | const |
Definition at line 5477 of file ASTContext.cpp.
References clang::CanQual< Type >::CreateUnsafe(), clang::TagDecl::getCanonicalDecl(), getNonInjectedClassName(), and clang::None.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addCopyAssignmentOperator(), clang::hlsl::BuiltinTypeDeclBuilder::addCopyConstructor(), clang::ODRHash::AddStructuralValue(), clang::CodeGen::CodeGenModule::AddVTableTypeMetadata(), BuildImplicitMemberInitializer(), clang::hlsl::BuiltinTypeMethodBuilder::BuiltinTypeMethodBuilder(), canPassInRegisters(), checkMemberDecomposition(), CheckOperatorDeleteDeclaration(), CheckOperatorNewDeleteTypes(), ComputeDefaultedSpecialMemberExceptionSpec(), clang::interp::computeFullDescSize(), createBufferHandleType(), createFieldForHostLayoutStruct(), createHostLayoutStruct(), DeduceTemplateArgumentsByTypeMatch(), clang::CIRGen::CIRGenTypes::deriveThisType(), clang::InitializationSequence::Diagnose(), DiagnoseBadAccess(), clang::Sema::DiagnoseInvalidExplicitObjectParameterInLambda(), DumpRecordLayout(), emitBadConversionNotes(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CIRGen::CIRGenFunction::emitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaCallOpBody(), clang::CodeGen::CodeGenFunction::EmitLambdaStaticInvokeBody(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLValueForLambdaField(), EmitMemberInitializer(), emitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), clang::CodeGen::CodeGenModule::EmitVTableTypeMetadata(), FindBaseInitializer(), findDecomposableBaseClass(), findSubobject(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GetAddressOfBaseClass(), clang::CodeGen::CodeGenFunction::GetAddressOfDerivedClass(), getBlockDescriptorExtendedType(), getBlockDescriptorType(), getCanonicalTypeDeclType(), getCFConstantStringDecl(), GetDeclSpecTypeForDeclarator(), clang::Expr::getEnumCoercedType(), clang::ento::CXXInstanceCall::getInitialStackFrameContents(), getLValueType(), getMemberPointerType(), getMSGuidType(), getObjCSuperType(), getOpenCLEnumType(), getTagType(), clang::interp::Descriptor::getType(), getTypeDeclType(), clang::interp::GetTypeidPtr(), getTypeSourceInfoForStdAlignValT(), clang::ento::CXXBaseObjectRegion::getValueType(), clang::ento::CXXDerivedObjectRegion::getValueType(), HandleConstructorCall(), HandleDynamicCast(), hasCopyOrMoveCtorParam(), HasNonDeletedDefaultedEqualityComparison(), clang::CodeGen::CodeGenFunction::InitCapturedStruct(), clang::dataflow::Environment::initialize(), clang::isBetterOverloadCandidate(), isNonPlacementDeallocationFunction(), IsOverloadOrOverrideImpl(), clang::Expr::isPotentialConstantExpr(), isSafeToConvert(), LookupSpecialMemberFromXValue(), MarkBaseDestructorsReferenced(), mergeAlignedAttrs(), recordFixedType(), ShouldDiagnoseSwitchCaseNotInEnum(), clang::interp::Pointer::toRValue(), TryDiagnoseProtectedAccess(), and TryObjectArgumentInitialization().
TemplateArgument ASTContext::getCanonicalTemplateArgument | ( | const TemplateArgument & | Arg | ) | const |
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.
Definition at line 7865 of file ASTContext.cpp.
References ASTContext(), clang::cast(), clang::TemplateArgument::CreatePackCopy(), clang::TemplateArgument::Declaration, clang::TemplateArgument::Expression, clang::TemplateArgument::getAsDecl(), clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsStructuralValue(), clang::TemplateArgument::getAsTemplate(), clang::TemplateArgument::getAsTemplateOrTemplatePattern(), clang::TemplateArgument::getAsType(), clang::Decl::getCanonicalDecl(), getCanonicalTemplateArguments(), getCanonicalTemplateName(), getCanonicalType(), clang::TemplateArgument::getIntegralType(), clang::TemplateArgument::getIsDefaulted(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getNullPtrType(), clang::TemplateArgument::getNumTemplateExpansions(), clang::TemplateArgument::getParamTypeForDecl(), clang::TemplateArgument::getStructuralValueType(), clang::TemplateArgument::Integral, clang::TemplateArgument::Null, clang::TemplateArgument::NullPtr, clang::TemplateArgument::Pack, clang::TemplateArgument::pack_elements(), clang::TemplateArgument::StructuralValue, clang::TemplateArgument::Template, clang::TemplateArgument::TemplateExpansion, and clang::TemplateArgument::Type.
Referenced by canonicalizeTemplateArguments(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentPointerToMember(), ConvertDeducedTemplateArguments(), getCanonicalTemplateName(), getCanonicalTemplateSpecializationType(), getSubstBuiltinTemplatePack(), getSubstTemplateTypeParmPackType(), isSubstitutedTemplateArgument(), and clang::ASTRecordReader::readTemplateArgument().
TemplateName ASTContext::getCanonicalTemplateName | ( | TemplateName | Name, |
bool | IgnoreDeduced = false ) const |
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.
Definition at line 7304 of file ASTContext.cpp.
References clang::DefaultArguments::Args, clang::TemplateParameterList::asArray(), clang::TemplateName::AssumedTemplate, clang::cast(), clang::TemplateName::DeducedTemplate, clang::TemplateName::DependentTemplate, clang::TemplateName::desugar(), clang::SubstTemplateTemplateParmPackStorage::getArgumentPack(), clang::TemplateName::getAsDeducedTemplateName(), clang::TemplateName::getAsDependentTemplateName(), clang::SubstTemplateTemplateParmPackStorage::getAssociatedDecl(), clang::TemplateName::getAsSubstTemplateTemplateParmPack(), clang::TemplateName::getAsTemplateDecl(), clang::Decl::getCanonicalDecl(), getCanonicalTemplateArgument(), getCanonicalTemplateArguments(), getCanonicalTemplateName(), getCanonicalTemplateTemplateParmDecl(), getDeducedTemplateName(), clang::DeducedTemplateStorage::getDefaultArguments(), getDefaultTemplateArgumentOrNone(), getDependentTemplateName(), clang::SubstTemplateTemplateParmPackStorage::getFinal(), clang::SubstTemplateTemplateParmPackStorage::getIndex(), clang::TemplateName::getKind(), clang::DependentTemplateStorage::getName(), clang::DependentTemplateStorage::getQualifier(), getSubstTemplateTemplateParmPack(), clang::TemplateDecl::getTemplateParameters(), clang::DeducedTemplateStorage::getUnderlying(), clang::DependentTemplateStorage::hasTemplateKeyword(), NestedNameSpecifier, clang::TemplateName::OverloadedTemplate, clang::TemplateName::QualifiedTemplate, clang::DefaultArguments::StartPos, clang::TemplateArgument::structurallyEquals(), clang::TemplateName::SubstTemplateTemplateParm, clang::TemplateName::SubstTemplateTemplateParmPack, clang::Template, clang::TemplateName::Template, clang::TemplateName, and clang::TemplateName::UsingTemplate.
Referenced by getCanonicalTemplateArgument(), getCanonicalTemplateName(), getCanonicalTemplateSpecializationType(), getCommonTemplateName(), getDeducedTemplateSpecializationType(), getTemplateSpecializationType(), hasSameTemplateName(), and isSameTemplateArgument().
QualType ASTContext::getCanonicalTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
TemplateName | T, | ||
ArrayRef< TemplateArgument > | CanonicalArgs ) const |
Definition at line 5995 of file ASTContext.cpp.
References Allocate(), getCanonicalTemplateArgument(), getCanonicalTemplateName(), clang::Keyword, clang::None, clang::T, and clang::Template.
Referenced by clang::ClassTemplateDecl::getCanonicalInjectedSpecializationType(), clang::ClassTemplatePartialSpecializationDecl::getCanonicalInjectedSpecializationType(), and getTemplateSpecializationType().
TemplateTemplateParmDecl * ASTContext::getCanonicalTemplateTemplateParmDecl | ( | TemplateTemplateParmDecl * | TTP | ) | const |
Canonicalize the given TemplateTemplateParmDecl.
Definition at line 766 of file ASTContext.cpp.
References clang::TemplateParameterList::begin(), clang::cast(), clang::NonTypeTemplateParmDecl::Create(), clang::TemplateParameterList::Create(), clang::TemplateTemplateParmDecl::Create(), clang::TemplateTypeParmDecl::Create(), clang::TemplateParameterList::end(), getCanonicalTemplateTemplateParmDecl(), getCanonicalType(), clang::TemplateTemplateParmDecl::getDepth(), clang::TemplateTemplateParmDecl::getIndex(), clang::TemplateTemplateParmDecl::getPosition(), clang::TemplateDecl::getTemplateParameters(), getTranslationUnitDecl(), getTrivialTypeSourceInfo(), getUnconstrainedType(), clang::TemplateTemplateParmDecl::isParameterPack(), clang::TemplateParameterList::size(), clang::T, and clang::TemplateTemplateParmDecl::templateParameterKind().
Referenced by getCanonicalTemplateName(), and getCanonicalTemplateTemplateParmDecl().
Definition at line 2846 of file ASTContext.h.
References clang::T.
|
inline |
Return the canonical (structural) type corresponding to the specified potentially non-canonical type 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.
Definition at line 2842 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), and clang::T.
Referenced by addBlockPointerConversion(), AddBuiltinAssignmentOperatorCandidates(), addFunctionPointerConversion(), buildDeclareReductionRef(), buildSingleCopyAssignRecursively(), buildUserDefinedMapperRef(), CheckC23ConstexprVarType(), clang::CheckEquivalentExceptionSpecImpl(), CheckOperatorDeleteDeclaration(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteTypes(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentPointerToMember(), CompareDerivedToBaseConversions(), CompareQualificationConversions(), CompareStandardConversionSequences(), clang::ConversionFixItGenerator::compareTypesSimple(), DiagnoseBadConversion(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CIRGen::CIRGenFunction::emitCall(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CIRGen::CIRGenFunction::emitUnaryOpLValue(), findDecomposableBaseClass(), findSubobject(), findSYCLKernelInfo(), getAddrSpaceQualType(), getAdjustedType(), getArrayParameterType(), getAtomicType(), getAttributedType(), getBlockPointerType(), getBTFTagAttributedType(), getCanonicalFunctionResultType(), getCanonicalParamType(), getCanonicalTemplateArgument(), getCanonicalTemplateTemplateParmDecl(), getCanonicalTypeDeclType(), getComplexType(), getConstantArrayType(), getConstantMatrixType(), getCountAttributedType(), getDecayedType(), getDecltypeType(), getDependentAddressSpaceType(), getDependentSizedArrayType(), getDependentSizedExtVectorType(), getDependentSizedMatrixType(), getDependentVectorType(), getExtVectorType(), getIncompleteArrayType(), getIntegerTypeOrder(), getLValueReferenceType(), getMacroQualifiedType(), getMemberPointerType(), getObjCGCQualType(), getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), getPackExpansionType(), getPackIndexingType(), getParenType(), getPointerType(), getPredefinedSugarType(), getRValueReferenceType(), getSYCLKernelInfo(), getTypeOfExprType(), getTypeOfType(), getVariableArrayType(), getVectorType(), hasSameType(), hasSameType(), hasSameUnqualifiedType(), hasUserDefinedMapper(), InitBuiltinTypes(), InitCatchParam(), IsImplicitBoolFloatConversion(), IsInvalidCmseNSCallConversion(), IsModifiable(), IsOverloadOrOverrideImpl(), IsStandardConversion(), clang::Expr::isUnusedResultAWarning(), LookupMemberExpr(), MarkUsedTemplateParameters(), mergeFunctionTypes(), mergeObjCGCQualifiers(), mergeTypeLists(), mergeTypes(), MightInstantiateTo(), OpenCLArithmeticConversions(), registerSYCLEntryPointFunction(), RemoveAddressSpaceFromPtr(), ResolveOverloadedFunctionForReferenceBinding(), SelectPropertyForSynthesisFromProtocols(), clang::cross_tu::shouldImport(), TryListConversion(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), clang::ConversionFixItGenerator::tryToFixConversion(), TryUserDefinedConversion(), clang::ento::ExprEngine::VisitBinaryOperator(), and clang::ento::ExprEngine::VisitBlockExpr().
CanQualType ASTContext::getCanonicalTypeDeclType | ( | const TypeDecl * | TD | ) | const |
Definition at line 5257 of file ASTContext.cpp.
References getCanonicalTagType(), getCanonicalType(), clang::Type::getCanonicalTypeUnqualified(), and getCanonicalUnresolvedUsingType().
Referenced by getUsingType().
CanQualType ASTContext::getCanonicalUnresolvedUsingType | ( | const UnresolvedUsingTypenameDecl * | D | ) | const |
Definition at line 5645 of file ASTContext.cpp.
References clang::CanQual< Type >::CreateUnsafe(), clang::UnresolvedUsingTypenameDecl::getCanonicalDecl(), and clang::None.
Referenced by getCanonicalTypeDeclType(), getTypeDeclType(), and getUnresolvedUsingType().
TypedefDecl * ASTContext::getCFConstantStringDecl | ( | ) | const |
Objective-C ABI
typedef struct __NSConstantString_tag { const int *isa; int flags; const char *str; long length; } __NSConstantString;
Swift ABI (4.1, 4.2)
typedef struct __NSConstantString_tag { uintptr_t _cfisa; uintptr_t _swift_rc; _Atomic(uint64_t) _cfinfoa; const char *_ptr; uint32_t _length; } __NSConstantString;
Swift ABI (5.0)
typedef struct __NSConstantString_tag { uintptr_t _cfisa; uintptr_t _swift_rc; _Atomic(uint64_t) _cfinfoa; const char *_ptr; uintptr_t _length; } __NSConstantString;
Definition at line 8402 of file ASTContext.cpp.
References clang::AS_public, buildImplicitRecord(), buildImplicitTypedef(), clang::LangOptions::CFRuntime, CharTy, clang::FieldDecl::Create(), getCanonicalTagType(), getLangOpts(), getPointerType(), getUIntPtrType(), clang::ICIS_NoInit, Idents, IntTy, LongTy, clang::LangOptionsBase::Swift, clang::LangOptionsBase::Swift4_1, clang::LangOptionsBase::Swift4_2, and clang::ast_matchers::tagType.
Referenced by getCFConstantStringTagDecl(), and getCFConstantStringType().
RecordDecl * ASTContext::getCFConstantStringTagDecl | ( | ) | const |
Definition at line 8486 of file ASTContext.cpp.
References getCFConstantStringDecl().
QualType ASTContext::getCFConstantStringType | ( | ) | const |
Return the C structure type used to represent constant CFStrings.
Definition at line 8493 of file ASTContext.cpp.
References getCFConstantStringDecl(), getTypedefType(), and clang::None.
|
inline |
Return the size of the character type, in bits.
Definition at line 2620 of file ASTContext.h.
References CharTy, and getTypeSize().
Referenced by calculateOffset(), CheckBitcastType(), CheckC23ConstexprInitStringLiteral(), collectSubRegionBindings(), diagnoseStringPlusChar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), HandleArmSveVectorBitsTypeAttr(), HandleRISCVRVVVectorBitsTypeAttr(), clang::interp::interp__builtin_memchr(), setUsedBits(), toBits(), and toCharUnitsFromBits().
|
inline |
Definition at line 1055 of file ASTContext.h.
Referenced by clang::Decl::dump().
comments::FullComment * ASTContext::getCommentForDecl | ( | const Decl * | D, |
const Preprocessor * | PP ) const |
Return parsed documentation comment attached to a given declaration.
Returns nullptr if no comment is attached.
PP | the Preprocessor used with this TU. Could be nullptr if preprocessor is not available. |
Definition at line 614 of file ASTContext.cpp.
References addRedeclaredMethods(), adjustDeclToTemplate(), clang::AS_public, cloneFullComment(), CXXRecordDecl, clang::ObjCPropertyDecl::findPropertyDecl(), clang::Type::getAs(), clang::Type::getAsCXXRecordDecl(), clang::Decl::getCanonicalDecl(), getCommentForDecl(), getOverriddenMethods(), getRawCommentForAnyRedecl(), clang::isa(), clang::Decl::isInvalidDecl(), clang::QualType::isNull(), clang::NonVirtualBase, clang::RawComment::parse(), ParsedComments, and clang::VirtualBase.
Referenced by getCommentForDecl().
QualType ASTContext::getCommonSugaredType | ( | QualType | X, |
QualType | Y, | ||
bool | Unqualified = false ) const |
Definition at line 14570 of file ASTContext.cpp.
References getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), getQualifiedType(), clang::QualType::getTypePtr(), clang::QualType::getTypePtrOrNull(), hasSameType(), hasSameUnqualifiedType(), clang::isa(), clang::QualType::isCanonical(), clang::SplitQualType::Quals, clang::Qualifiers::removeCommonQualifiers(), clang::QualType::split(), clang::SplitQualType::Ty, clang::Unqualified, unwrapSugar(), and X.
Referenced by checkConditionalPointerCompatibility(), getCommonArrayElementType(), getCommonElementType(), getCommonNNS(), getCommonNonSugarTypeNode(), getCommonPointeeType(), getCommonSugarTypeNode(), getCommonTemplateArgument(), getCommonTypes(), and mergeTypeLists().
|
inline |
Definition at line 1518 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), getComplexType(), and clang::T.
Return the uniqued reference to the type for a complex number with the specified element type.
getComplexType - Return the uniqued reference to the type for a complex number with the specified element type.
Definition at line 3888 of file ASTContext.cpp.
References getCanonicalType(), getComplexType(), New, clang::ComplexType::Profile(), and clang::T.
Referenced by getCommonNonSugarTypeNode(), getComplexType(), getComplexType(), handleComplexFloatConversion(), handleComplexIntConversion(), and handleIntToFloatConversion().
uint64_t ASTContext::getConstantArrayElementCount | ( | const ConstantArrayType * | CA | ) | const |
Return number of constant array elements.
getConstantArrayElementCount - Returns number of constant array elements.
Definition at line 8099 of file ASTContext.cpp.
References clang::Type::getAsArrayTypeUnsafe(), clang::ArrayType::getElementType(), and clang::ConstantArrayType::getZExtSize().
Referenced by clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), and clang::CodeGen::CGHLSLRuntime::emitResourceArraySubscriptExpr().
QualType ASTContext::getConstantArrayType | ( | QualType | EltTy, |
const llvm::APInt & | ArySize, | ||
const Expr * | SizeExpr, | ||
ArraySizeModifier | ASM, | ||
unsigned | IndexTypeQuals ) const |
Return the unique reference to the type for a constant array of the specified element type.
getConstantArrayType - Return the unique reference to the type for an array of the specified element type.
Definition at line 4197 of file ASTContext.cpp.
References getCanonicalType(), getConstantArrayType(), getQualifiedType(), clang::QualType::hasLocalQualifiers(), clang::QualType::isCanonical(), clang::Type::isConstantSizeType(), clang::Type::isDependentType(), clang::Type::isIncompleteType(), clang::Expr::isInstantiationDependent(), New, clang::ConstantArrayType::Profile(), clang::SplitQualType::Quals, clang::CanQual< T >::split(), and clang::SplitQualType::Ty.
Referenced by clang::interp::CheckNewTypeMismatch(), CheckStringInit(), diagnoseListInit(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), EmitDoacrossOrdered(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::Sema::FindCompositePointerType(), getAsArrayType(), getCommonNonSugarTypeNode(), clang::ArrayParameterType::getConstantArrayType(), getConstantArrayType(), clang::interp::Descriptor::getDataType(), getStringLiteralArrayType(), getUnqualifiedArrayType(), getVariableArrayDecayedType(), HandleOperatorNewCall(), clang::interp::interp__builtin_operator_new(), mergeTypes(), clang::InitializationSequence::Perform(), clang::interp::SubPtr(), TryInitializerListConstruction(), TryListConversion(), and TryOrBuildParenListInitialization().
QualType ASTContext::getConstantMatrixType | ( | QualType | ElementType, |
unsigned | NumRows, | ||
unsigned | NumColumns ) const |
Return the unique reference to the matrix type of the specified element type and size.
ElementType
must be a valid matrix element type (see MatrixType::isValidElementType). Definition at line 4788 of file ASTContext.cpp.
References getCanonicalType(), getConstantMatrixType(), clang::QualType::isCanonical(), clang::ConstantMatrixType::isDimensionValid(), clang::MatrixType::isValidElementType(), New, and clang::ConstantMatrixType::Profile().
Referenced by getCommonNonSugarTypeNode(), and getConstantMatrixType().
Return the uniqued reference to the type for a const
qualified type.
The resulting type has a union of the qualifiers from T
and const
.
It can be reasonably expected that this will always be equivalent to calling T.withConst().
Definition at line 1458 of file ASTContext.h.
References clang::T.
Referenced by EvaluateAsStringImpl(), makeAttributeArgExpr(), and makeLaunchBoundsArgExpr().
const CXXConstructorDecl * ASTContext::getCopyConstructorForExceptionObject | ( | CXXRecordDecl * | RD | ) |
Definition at line 13419 of file ASTContext.cpp.
References clang::cast(), CXXRecordDecl, and clang::Redeclarable< decl_type >::getFirstDecl().
Definition at line 14685 of file ASTContext.cpp.
References clang::Type::castAs(), clang::BuiltinType::getKind(), clang::Type::isFixedPointType(), clang::Type::isSaturatedFixedPointType(), SatAccumTy, SatFractTy, SatLongAccumTy, SatLongFractTy, SatShortAccumTy, SatShortFractTy, SatUnsignedAccumTy, SatUnsignedFractTy, SatUnsignedLongAccumTy, SatUnsignedLongFractTy, SatUnsignedShortAccumTy, and SatUnsignedShortFractTy.
Referenced by handleFixedPointConversion().
Definition at line 14852 of file ASTContext.cpp.
References AccumTy, clang::Type::castAs(), FractTy, clang::BuiltinType::getKind(), clang::Type::isUnsignedFixedPointType(), LongAccumTy, LongFractTy, SatAccumTy, SatFractTy, SatLongAccumTy, SatLongFractTy, SatShortAccumTy, SatShortFractTy, ShortAccumTy, and ShortFractTy.
Referenced by handleFixedPointConversion().
Definition at line 12279 of file ASTContext.cpp.
References AccumTy, FractTy, getBitIntType(), getCorrespondingSignedType(), clang::BuiltinType::getKind(), getSignedWCharType(), getVectorType(), Int128Ty, IntTy, LongAccumTy, LongFractTy, LongLongTy, LongTy, SatAccumTy, SatFractTy, SatLongAccumTy, SatLongFractTy, SatShortAccumTy, SatShortFractTy, ShortAccumTy, ShortFractTy, ShortTy, SignedCharTy, and clang::T.
Referenced by getCorrespondingSignedType().
Definition at line 14649 of file ASTContext.cpp.
References AccumTy, clang::Type::castAs(), FractTy, clang::BuiltinType::getKind(), clang::Type::isFixedPointType(), clang::Type::isUnsaturatedFixedPointType(), LongAccumTy, LongFractTy, ShortAccumTy, ShortFractTy, UnsignedAccumTy, UnsignedFractTy, UnsignedLongAccumTy, UnsignedLongFractTy, UnsignedShortAccumTy, and UnsignedShortFractTy.
Definition at line 12205 of file ASTContext.cpp.
References getBitIntType(), getCorrespondingUnsignedType(), clang::BuiltinType::getKind(), getUnsignedWCharType(), getVectorType(), SatUnsignedAccumTy, SatUnsignedFractTy, SatUnsignedLongAccumTy, SatUnsignedLongFractTy, SatUnsignedShortAccumTy, SatUnsignedShortFractTy, clang::T, UnsignedAccumTy, UnsignedCharTy, UnsignedFractTy, UnsignedInt128Ty, UnsignedIntTy, UnsignedLongAccumTy, UnsignedLongFractTy, UnsignedLongLongTy, UnsignedLongTy, UnsignedShortAccumTy, UnsignedShortFractTy, and UnsignedShortTy.
Referenced by checkPointerTypesForAssignment(), clang::ento::SMTConv::doIntTypeConversion(), getCorrespondingUnsignedType(), getUIntPtrType(), and handleIntegerConversion().
QualType ASTContext::getCountAttributedType | ( | QualType | T, |
Expr * | CountExpr, | ||
bool | CountInBytes, | ||
bool | OrNull, | ||
ArrayRef< TypeCoupledDeclRefInfo > | DependentDecls ) const |
Definition at line 3690 of file ASTContext.cpp.
References Allocate(), getCanonicalType(), clang::Type::isArrayType(), clang::Type::isPointerType(), clang::CountAttributedType::Profile(), and clang::TypeAlignment.
Referenced by getCommonSugarTypeNode().
|
inline |
Definition at line 1605 of file ASTContext.h.
Referenced by clang::SemaCUDA::ActOnExecConfigExpr().
StringRef ASTContext::getCUIDHash | ( | ) | const |
Definition at line 15112 of file ASTContext.cpp.
Referenced by clang::CodeGen::CodeGenModule::printPostfixForExternalizedDecl().
const CXXMethodDecl * ASTContext::getCurrentKeyFunction | ( | const CXXRecordDecl * | RD | ) |
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.
Definition at line 3469 of file RecordLayoutBuilder.cpp.
References computeKeyFunction(), CXXRecordDecl, clang::LazyOffsetPtr< T, OffsT, Get >::get(), clang::CXXRecordDecl::getDefinition(), getExternalSource(), getTargetInfo(), clang::LazyOffsetPtr< T, OffsT, Get >::isOffset(), clang::LazyOffsetPtr< T, OffsT, Get >::isValid(), and clang::Result.
Referenced by DeclMustBeEmitted(), clang::installapi::getVTableLinkage(), clang::installapi::hasVTable(), and clang::installapi::isRTTIWeakDef().
|
inline |
Get module under construction, nullptr if this is not a C++20 module.
Definition at line 1190 of file ASTContext.h.
Referenced by clang::CXX20ModulesGenerator::getEmittingModule(), clang::Decl::isInAnotherModuleUnit(), clang::Decl::isInCurrentModuleUnit(), and clang::CodeGen::CodeGenModule::Release().
Return a type with additional const
, volatile
, or restrict
qualifiers.
Definition at line 2428 of file ASTContext.h.
References clang::Qualifiers::fromCVRMask(), getQualifiedType(), and clang::T.
TargetCXXABI::Kind ASTContext::getCXXABIKind | ( | ) | const |
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.
Definition at line 884 of file ASTContext.cpp.
References clang::LangOptions::CXXABI, clang::TargetInfo::getCXXABI(), clang::TargetCXXABI::getKind(), getLangOpts(), and getTargetInfo().
Referenced by clang::CIRGen::CreateCIRGenItaniumCXXABI(), createCXXABI(), createCXXABI(), clang::CodeGen::CreateItaniumCXXABI(), and markUsedForAliasOrIfunc().
|
inline |
Definition at line 1546 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), getDecayedType(), and clang::T.
Return the uniqued reference to a specified decay from the original type to the decayed type.
Definition at line 3963 of file ASTContext.cpp.
References getCanonicalType(), and clang::AdjustedType::Profile().
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.
Definition at line 3983 of file ASTContext.cpp.
References getArrayDecayedType(), getDecayedType(), getPointerType(), and clang::T.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), BuiltinAlignment(), getAdjustedParameterType(), getCommonSugarTypeNode(), getDecayedType(), getDecayedType(), getExceptionObjectType(), and GetVTablePointer().
Return a conservative estimate of the alignment of the specified decl D
.
D
must not be a bitfield type, as bitfields do not have a valid alignment.If ForAlignof
, references are treated like their underlying type and large arrays don't get any special treatment. If not ForAlignof
it computes the value expected by CodeGen: references are treated like pointers and large arrays get extra alignment.
Definition at line 1823 of file ASTContext.cpp.
References clang::ast_matchers::arrayType, clang::cast(), clang::ASTRecordLayout::getAlignment(), getAsArrayType(), getASTRecordLayout(), getBaseElementType(), clang::ASTRecordLayout::getFieldOffset(), clang::TargetInfo::getMaxAlignedAttribute(), clang::Decl::getMaxAlignment(), getMinGlobalAlignOfVar(), clang::DeclContext::getParent(), getPointerType(), getPreferredTypeAlign(), clang::QualType::getQualifiers(), getTargetInfo(), getTypeSize(), clang::Qualifiers::hasUnaligned(), clang::isa(), clang::Type::isIncompleteType(), clang::Decl::isInvalidDecl(), clang::SC_Static, clang::T, toBits(), and toCharUnitsFromBits().
Referenced by emitAddrOfVarFromArray(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CIRGen::CIRGenFunction::emitAutoVarAlloca(), EmitFunctionDeclLValue(), emitFunctionDeclLValue(), EmitGlobalNamedRegister(), EmitGlobalVarDeclLValue(), emitGlobalVarDeclLValue(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(), clang::CIRGen::CIRGenFunction::emitStaticVarDecl(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), GetAlignOfExpr(), getBaseAlignment(), getBaseAlignmentAndOffsetFromLValue(), clang::CodeGen::CodeGenFunction::getBlockByrefInfo(), clang::CodeGen::CodeGenModule::GetWeakRefReference(), clang::interp::interp__builtin_assume_aligned(), clang::interp::interp__builtin_is_aligned_up_down(), clang::CIRGen::CIRGenFunction::startFunction(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
DeclaratorDecl * ASTContext::getDeclaratorForUnnamedTagDecl | ( | const TagDecl * | TD | ) |
Definition at line 13446 of file ASTContext.cpp.
Retrieve the attributes for the given declaration.
Definition at line 1527 of file ASTContext.cpp.
References Allocate(), and clang::Result.
Referenced by clang::Decl::getAttrs().
C++11 decltype.
Unlike many "get<Type>" functions, we don't unique DecltypeType nodes.
This would never be helpful, since each such type has its own expression, and would not give a significant memory saving, since there is an Expr tree under each such type.
Definition at line 6657 of file ASTContext.cpp.
References getCanonicalType(), getDecltypeType(), clang::Expr::isInstantiationDependent(), and clang::QualType::isNull().
Referenced by getDecltypeType().
TemplateName ASTContext::getDeducedTemplateName | ( | TemplateName | Underlying, |
DefaultArguments | DefaultArgs ) const |
Represents a TemplateName which had some of its default arguments deduced.
Retrieve the template name that represents a template name deduced from a specialization.
This both represents this default argument deduction as sugar, and provides the support for it's equivalences through canonicalization. For example DeducedTemplateNames which have the same set of default arguments are equivalent, and are also equivalent to the underlying template when the deduced template arguments are the same.
Definition at line 10469 of file ASTContext.cpp.
References Allocate(), clang::DefaultArguments::Args, clang::DeducedTemplateStorage::Profile(), and clang::TemplateName.
Referenced by DeduceTemplateArguments(), and getCanonicalTemplateName().
QualType ASTContext::getDeducedTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
TemplateName | Template, | ||
QualType | DeducedType, | ||
bool | IsDependent ) const |
C++17 deduced class template specialization type.
Return the uniqued reference to the deduced template specialization type which has been deduced to the given type, or to the canonical undeduced such type, or the canonical deduced-but-dependent such type.
Definition at line 6884 of file ASTContext.cpp.
References getCanonicalTemplateName(), clang::QualType::getCanonicalType(), clang::QualType::isNull(), clang::Keyword, clang::None, and clang::Template.
CallingConv ASTContext::getDefaultCallingConvention | ( | bool | IsVariadic, |
bool | IsCXXMethod ) const |
Retrieves the default calling convention for the current context.
The context's default calling convention may differ from the current target's default calling convention if the -fdefault-calling-conv option is used; to get the target's default calling convention, e.g. for built-in functions, call getTargetInfo().getDefaultCallingConv() instead.
Definition at line 13163 of file ASTContext.cpp.
References clang::CC_C, clang::CC_M68kRTD, clang::CC_X86FastCall, clang::CC_X86RegCall, clang::CC_X86StdCall, clang::CC_X86VectorCall, clang::LangOptionsBase::DCC_CDecl, clang::LangOptionsBase::DCC_FastCall, clang::LangOptionsBase::DCC_None, clang::LangOptionsBase::DCC_RegCall, clang::LangOptionsBase::DCC_RtdCall, clang::LangOptionsBase::DCC_StdCall, clang::LangOptionsBase::DCC_VectorCall, getTargetInfo(), and hasFeature().
Referenced by addBlockPointerConversion(), addFunctionPointerConversion(), compareConversionFunctions(), getCCForDeclaratorChunk(), getDummyLambdaType(), getImplicitMethodEPI(), getLambdaConversionFunctionCallConv(), and repeatForLambdaConversionFunctionCallingConvs().
|
inline |
Returns default address space based on OpenCL version and enabled features.
Definition at line 1596 of file ASTContext.h.
References clang::opencl_generic, and clang::opencl_private.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), deduceOpenCLPointeeAddrSpace(), clang::Sema::getDefaultCXXMethodAddrSpace(), and clang::Expr::isNullPointerConstant().
QualType ASTContext::getDependentAddressSpaceType | ( | QualType | PointeeType, |
Expr * | AddrSpaceExpr, | ||
SourceLocation | AttrLoc ) const |
Definition at line 4861 of file ASTContext.cpp.
References clang::DependentAddressSpaceType::getAddrSpaceExpr(), getCanonicalType(), clang::Expr::isInstantiationDependent(), and clang::DependentAddressSpaceType::Profile().
Referenced by getCommonNonSugarTypeNode().
Return a dependent bit-precise integer type with the specified signedness and bit count.
Definition at line 5190 of file ASTContext.cpp.
References clang::Expr::isInstantiationDependent(), New, and clang::DependentBitIntType::Profile().
QualType ASTContext::getDependentNameType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | NNS, | ||
const IdentifierInfo * | Name ) const |
Definition at line 6114 of file ASTContext.cpp.
References clang::NestedNameSpecifier::getCanonical(), getCanonicalElaboratedTypeKeyword(), getDependentNameType(), clang::QualType::isCanonical(), clang::Keyword, NestedNameSpecifier, and clang::T.
Referenced by getCommonNonSugarTypeNode(), and getDependentNameType().
QualType ASTContext::getDependentSizedArrayType | ( | QualType | EltTy, |
Expr * | NumElts, | ||
ArraySizeModifier | ASM, | ||
unsigned | IndexTypeQuals ) const |
Return a non-unique reference to the type for a dependently-sized array of the specified element type.
getDependentSizedArrayType - Returns 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.
Definition at line 4416 of file ASTContext.cpp.
References getCanonicalType(), getQualifiedType(), clang::DependentSizedArrayType::getSizeExpr(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), clang::DependentSizedArrayType::Profile(), clang::SplitQualType::Quals, clang::CanQual< T >::split(), and clang::SplitQualType::Ty.
Referenced by getAsArrayType(), getCommonNonSugarTypeNode(), getUnqualifiedArrayType(), getVariableArrayDecayedType(), and clang::InitializationSequence::Perform().
QualType ASTContext::getDependentSizedExtVectorType | ( | QualType | VectorType, |
Expr * | SizeExpr, | ||
SourceLocation | AttrLoc ) const |
FIXME: We will need these to be uniqued, or at least comparable, at some point.
Definition at line 4748 of file ASTContext.cpp.
References getCanonicalType(), getDependentSizedExtVectorType(), New, and clang::DependentSizedExtVectorType::Profile().
Referenced by getCommonNonSugarTypeNode(), and getDependentSizedExtVectorType().
QualType ASTContext::getDependentSizedMatrixType | ( | QualType | ElementType, |
Expr * | RowExpr, | ||
Expr * | ColumnExpr, | ||
SourceLocation | AttrLoc ) const |
Return the unique reference to the matrix type of the specified element type and size.
Definition at line 4820 of file ASTContext.cpp.
References getCanonicalType(), clang::MatrixType::getElementType(), clang::DependentSizedMatrixType::getRowExpr(), New, and clang::DependentSizedMatrixType::Profile().
Referenced by getCommonNonSugarTypeNode().
TemplateName ASTContext::getDependentTemplateName | ( | const DependentTemplateStorage & | Name | ) | const |
Retrieve the template name that represents a dependent template name such as MetaFun::template
operator+.
Definition at line 10407 of file ASTContext.cpp.
References clang::DependentTemplateStorage::Profile(), and clang::TemplateName.
Referenced by getCanonicalTemplateName().
QualType ASTContext::getDependentVectorType | ( | QualType | VectorType, |
Expr * | SizeExpr, | ||
SourceLocation | AttrLoc, | ||
VectorKind | VecKind ) const |
Return the unique reference to the type for a dependently sized vector of the specified element type.
Definition at line 4675 of file ASTContext.cpp.
References getCanonicalType(), getDependentVectorType(), New, and clang::DependentVectorType::Profile().
Referenced by getCommonNonSugarTypeNode(), and getDependentVectorType().
|
inline |
Definition at line 852 of file ASTContext.h.
DiagnosticsEngine & ASTContext::getDiagnostics | ( | ) | const |
Definition at line 1523 of file ASTContext.cpp.
Referenced by CheckedIntArithmetic(), checkNullabilityConsistency(), createDeviceMangleContext(), createMangleContext(), clang::Decl::dump(), clang::DeclContext::dumpAsDecl(), getASTRecordLayout(), getFunctionFeatureMap(), getFunctionFeatureMap(), clang::interp::handleFixedPointOverflow(), clang::installapi::InstallAPIVisitor::HandleTranslationUnit(), and rewriteToNumericBoxedExpression().
Definition at line 8038 of file ASTContext.cpp.
References getDecayedType(), getVariableArrayDecayedType(), and clang::T.
CharUnits ASTContext::getExnObjectAlignment | ( | ) | const |
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.
Definition at line 1922 of file ASTContext.cpp.
References toCharUnitsFromBits().
|
inline |
Retrieve a pointer to the external AST source associated with this AST context, if any.
Definition at line 1336 of file ASTContext.h.
References ExternalSource.
Referenced by adjustGVALinkageForExternalDefinitionKind(), clang::FrontendAction::BeginSourceFile(), clang::ExternalASTMerger::CompleteType(), clang::ExternalASTMerger::CompleteType(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), getASTRecordLayout(), getCurrentKeyFunction(), clang::CXXRecordDecl::getLambdaContextDecl(), clang::RedeclarableTemplateDecl::loadLazySpecializationsImpl(), clang::RedeclarableTemplateDecl::loadLazySpecializationsImpl(), clang::DeclContext::lookups(), clang::LazyGenerationalUpdatePtr< Owner, T, Update >::makeValue(), clang::ParseAST(), setNonKeyFunction(), clang::Decl::shouldEmitInExternalSource(), shouldOmitDefinition(), and clang::ASTNodeImporter::VisitRecordDecl().
|
inline |
Retrieve a pointer to the external AST source associated with this AST context, if any.
Returns as an IntrusiveRefCntPtr.
Definition at line 1342 of file ASTContext.h.
References ExternalSource.
Referenced by clang::FrontendAction::BeginSourceFile().
ExternCContextDecl * ASTContext::getExternCContextDecl | ( | ) | const |
Definition at line 1205 of file ASTContext.cpp.
References clang::ExternCContextDecl::Create(), and getTranslationUnitDecl().
Return the unique reference to an extended vector type of the specified element type and size.
getExtVectorType - Return the unique reference to an extended vector type of the specified element type and size.
VectorType
must be a built-in type.VectorType must be a built-in type.
Definition at line 4715 of file ASTContext.cpp.
References clang::Type::castAs(), clang::Generic, getCanonicalType(), getExtVectorType(), clang::BitIntType::getNumBits(), clang::Type::isBitIntType(), clang::Type::isBuiltinType(), clang::QualType::isCanonical(), clang::Type::isDependentType(), New, and clang::VectorType::Profile().
Referenced by castVector(), CheckExtVectorComponent(), CheckVectorSelect(), checkVectorShift(), convertVector(), getCommonNonSugarTypeNode(), getExtVectorType(), LookupMemberExpr(), OpenCLConvertScalarsToVectors(), and SetElementTypeAsReturnType().
uint64_t ASTContext::getFieldOffset | ( | const ValueDecl * | FD | ) | const |
Get the offset of a FieldDecl or IndirectFieldDecl, in bits.
Definition at line 3520 of file RecordLayoutBuilder.cpp.
References clang::cast(), clang::IndirectFieldDecl::chain(), and getFieldOffset().
Referenced by emitAddrOfZeroSizeField().
|
inline |
Retrieve the C FILE type.
Definition at line 2213 of file ASTContext.h.
References getTypeDeclType(), and clang::None.
Referenced by getGlobalStreamPointerByName(), libc_func_matchers::hasUnsafePrintfStringArg(), and isStdStreamVar().
Definition at line 14785 of file ASTContext.cpp.
References clang::Type::castAs(), clang::BuiltinType::getKind(), getTargetInfo(), and clang::Type::isFixedPointType().
llvm::APFixedPoint ASTContext::getFixedPointMax | ( | QualType | Ty | ) | const |
Definition at line 14842 of file ASTContext.cpp.
References getFixedPointSemantics(), and clang::Type::isFixedPointType().
llvm::APFixedPoint ASTContext::getFixedPointMin | ( | QualType | Ty | ) | const |
Definition at line 14847 of file ASTContext.cpp.
References getFixedPointSemantics(), and clang::Type::isFixedPointType().
Definition at line 14739 of file ASTContext.cpp.
References clang::Type::castAs(), clang::BuiltinType::getKind(), getTargetInfo(), and clang::Type::isFixedPointType().
Referenced by getFixedPointSemantics().
llvm::FixedPointSemantics ASTContext::getFixedPointSemantics | ( | QualType | Ty | ) | const |
Definition at line 14827 of file ASTContext.cpp.
References getFixedPointScale(), getIntWidth(), getTargetInfo(), getTypeSize(), clang::Type::isFixedPointType(), clang::Type::isIntegerType(), clang::Type::isSaturatedFixedPointType(), clang::Type::isSignedFixedPointType(), and clang::Type::isSignedIntegerType().
Referenced by DiagnoseBadShiftValues(), EvaluateComparisonBinaryOperator(), EvaluateFixedPointOrInteger(), getFixedPointMax(), getFixedPointMin(), and clang::interp::Compiler< Emitter >::VisitFixedPointBinOp().
Compare the rank of the two specified floating point types, ignoring the domain of the type (i.e.
getFloatingTypeOrder - Compare the rank of the two specified floating point types, ignoring the domain of the type (i.e.
'double' == '_Complex double').
If LHS
> RHS
, returns 1. If LHS
== RHS
, returns 0. If LHS
< RHS
, return -1.
'double' == '_Complex double'). If LHS > RHS, return 1. If LHS == RHS, return 0. If LHS < RHS, return -1.
Definition at line 8147 of file ASTContext.cpp.
References getFloatingRank().
Referenced by clang::ento::SMTConv::doFloatTypeConversion(), getFloatingTypeSemanticOrder(), clang::StandardConversionSequence::getNarrowingKind(), handleComplexConversion(), handleFloatConversion(), handleFloatVectorBinOpConversion(), isArithmeticArgumentPromotion(), tryGCCVectorConvertAndSplat(), and tryVectorConvertAndSplat().
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).
Definition at line 8158 of file ASTContext.cpp.
References getFloatingTypeOrder(), and getFloatTypeSemantics().
Referenced by AnalyzeCompoundAssignment(), and clang::Sema::CheckImplicitConversion().
const llvm::fltSemantics & ASTContext::getFloatTypeSemantics | ( | QualType | T | ) | const |
Return the APFloat 'semantics' for the specified scalar floating point type.
getFloatTypeSemantics - Return the APFloat 'semantics' for the specified scalar floating point type.
Definition at line 1798 of file ASTContext.cpp.
References clang::BuiltinType::getKind(), getLangOpts(), and clang::T.
Referenced by BuildFloatingLiteral(), canConvertIntTyToFloatTy(), CheckBitcastType(), DetectPrecisionLossInComplexDivision(), getFloatingTypeSemanticOrder(), clang::StandardConversionSequence::getNarrowingKind(), clang::ento::SMTConv::getZeroExpr(), HandleFloatToFloatCast(), HandleIntToFloatCast(), clang::interp::interp__builtin_inf(), clang::interp::interp__builtin_nan(), IsFloatingPointConversion(), tryGCCVectorConvertAndSplat(), and unsupportedTypeConversion().
|
inline |
Definition at line 914 of file ASTContext.h.
Referenced by clang::CodeGen::CGCXXABI::ErrorUnsupportedABI().
void ASTContext::getFunctionFeatureMap | ( | llvm::StringMap< bool > & | FeatureMap, |
const FunctionDecl * | FD ) const |
Definition at line 14911 of file ASTContext.cpp.
References getDiagnostics(), and getFunctionFeatureMap().
Referenced by clang::SemaAMDGPU::CheckAMDGCNBuiltinFunctionCall(), clang::checkArmStreamingBuiltin(), getFunctionFeatureMap(), initFeatureMaps(), and clang::CodeGen::CodeGenFunction::StartFunction().
void ASTContext::getFunctionFeatureMap | ( | llvm::StringMap< bool > & | FeatureMap, |
GlobalDecl | GD ) const |
Definition at line 14923 of file ASTContext.cpp.
References filterFunctionTargetAttrs(), clang::Decl::getAsFunction(), clang::Decl::getAttr(), clang::GlobalDecl::getDecl(), getDiagnostics(), getFMVBackendFeaturesFor(), and clang::GlobalDecl::getMultiVersionIndex().
Definition at line 1742 of file ASTContext.h.
References getFunctionNoProtoType().
QualType ASTContext::getFunctionNoProtoType | ( | QualType | ResultTy, |
const FunctionType::ExtInfo & | Info ) const |
Return a K&R style C function type like 'int()'.
getFunctionNoProtoType - Return a K&R style C function type like 'int()'.
Definition at line 4904 of file ASTContext.cpp.
References getCanonicalFunctionResultType(), getFunctionNoProtoType(), isCanonicalResultType(), New, and clang::FunctionNoProtoType::Profile().
Referenced by adjustFunctionResultType(), adjustFunctionType(), GeneralizeFunctionType(), GetBuiltinType(), getCommonNonSugarTypeNode(), getFunctionNoProtoType(), getFunctionNoProtoType(), getFunctionTypeWithoutPtrSizes(), mergeFunctionTypes(), and ProcessAPINotes().
|
inline |
Return a normal function type with a typed argument list.
Definition at line 1747 of file ASTContext.h.
Referenced by addBlockPointerConversion(), addFunctionPointerConversion(), adjustFunctionResultType(), adjustFunctionType(), buildTypeForLambdaCallOperator(), BuiltinCallWithStaticChain(), clang::CodeGen::CodeGenFunction::createAtExitStub(), clang::CodeGen::CodeGenModule::CreateKCFITypeId(), emitOutlinedFunctionPrologue(), GeneralizeFunctionType(), GetBuiltinType(), getCommonNonSugarTypeNode(), getDummyLambdaType(), getFunctionTypeWithExceptionSpec(), getFunctionTypeWithoutParamABIs(), getFunctionTypeWithoutPtrSizes(), clang::ento::MemRegionManager::getVarRegion(), handleFunctionTypeAttr(), handleNonBlockingNonAllocatingTypeAttr(), LookupDirect(), mergeFunctionTypes(), mergeObjCGCQualifiers(), and ProcessAPINotes().
QualType ASTContext::getFunctionTypeWithExceptionSpec | ( | QualType | Orig, |
const FunctionProtoType::ExceptionSpecInfo & | ESI ) const |
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.
Definition at line 3803 of file ASTContext.cpp.
References adjustType(), clang::Type::castAs(), and getFunctionType().
Referenced by adjustExceptionSpec(), extractPBaseFlags(), getPointerAuthTypeDiscriminator(), clang::CodeGen::CodeGenFunction::getUBSanFunctionTypeHash(), handleFunctionTypeAttr(), and hasSameFunctionTypeIgnoringExceptionSpec().
Get or construct a function type that is equivalent to the input type except that the parameter ABI annotations are stripped.
Definition at line 3843 of file ASTContext.cpp.
References clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, getFunctionType(), and clang::T.
Referenced by hasSameFunctionTypeIgnoringParamABI().
Get a function type and produce the equivalent function type where pointer size address spaces in the return type and parameter types are replaced with the default address space.
Definition at line 3820 of file ASTContext.cpp.
References getFunctionNoProtoType(), getFunctionType(), removePtrSizeAddrSpace(), and clang::T.
Referenced by hasSameFunctionTypeIgnoringPtrSizes().
GVALinkage ASTContext::GetGVALinkageForFunction | ( | const FunctionDecl * | FD | ) | const |
Definition at line 12919 of file ASTContext.cpp.
References adjustGVALinkageForAttributes(), adjustGVALinkageForExternalDefinitionKind(), and basicGVALinkageForFunction().
Referenced by DeclMustBeEmitted(), clang::CodeGen::CodeGenModule::getFunctionLinkage(), isFunctionDefinitionDiscarded(), MarkVarDeclODRUsed(), shouldBeInCOMDAT(), shouldBeInCOMDAT(), and shouldFunctionGenerateHereOnly().
GVALinkage ASTContext::GetGVALinkageForVariable | ( | const VarDecl * | VD | ) | const |
Definition at line 13012 of file ASTContext.cpp.
References adjustGVALinkageForAttributes(), adjustGVALinkageForExternalDefinitionKind(), and basicGVALinkageForVariable().
Referenced by DeclMustBeEmitted(), clang::CodeGen::CodeGenModule::getLLVMLinkageVarDefinition(), shouldBeInCOMDAT(), shouldBeInCOMDAT(), and shouldVarGenerateHereOnly().
Definition at line 859 of file ASTContext.h.
References clang::cast(), DoubleTy, FloatTy, and LongDoubleTy.
Referenced by DetectPrecisionLossInComplexDivision().
QualType ASTContext::getHLSLAttributedResourceType | ( | QualType | Wrapped, |
QualType | Contained, | ||
const HLSLAttributedResourceType::Attributes & | Attrs ) |
Definition at line 5762 of file ASTContext.cpp.
Referenced by createBufferHandleType(), and clang::CreateHLSLAttributedResourceType().
QualType ASTContext::getHLSLInlineSpirvType | ( | uint32_t | Opcode, |
uint32_t | Size, | ||
uint32_t | Alignment, | ||
ArrayRef< SpirvOperand > | Operands ) |
Definition at line 5784 of file ASTContext.cpp.
References Allocate().
QualType ASTContext::getIncompleteArrayType | ( | QualType | EltTy, |
ArraySizeModifier | ASM, | ||
unsigned | IndexTypeQuals ) const |
Return a unique reference to the type for an incomplete array of the specified element type.
Definition at line 4478 of file ASTContext.cpp.
References getCanonicalType(), getIncompleteArrayType(), getQualifiedType(), clang::QualType::hasLocalQualifiers(), clang::QualType::isCanonical(), clang::IncompleteArrayType::Profile(), clang::SplitQualType::Quals, clang::CanQual< T >::split(), and clang::SplitQualType::Ty.
Referenced by clang::Sema::FindCompositePointerType(), getAsArrayType(), getCommonNonSugarTypeNode(), getIncompleteArrayType(), getUnqualifiedArrayType(), and mergeTypes().
TemplateArgument ASTContext::getInjectedTemplateArg | ( | NamedDecl * | ParamDecl | ) | const |
Definition at line 6145 of file ASTContext.cpp.
References ASTContext(), clang::cast(), clang::TemplateArgument::CreatePackCopy(), getPackExpansionType(), getQualifiedTemplateName(), getTypeDeclType(), clang::Expr::getValueKindForType(), clang::T, clang::TemplateName, and clang::VK_LValue.
ASTContext::InlineVariableDefinitionKind ASTContext::getInlineVariableDefinitionKind | ( | const VarDecl * | VD | ) | const |
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.
Definition at line 8755 of file ASTContext.cpp.
References clang::First, clang::Redeclarable< decl_type >::getFirstDecl(), clang::Decl::getLexicalDeclContext(), clang::DeclContext::isFileContext(), clang::VarDecl::isInline(), None, clang::VarDecl::redecls(), Strong, Weak, and WeakUnknown.
Qualifiers::ObjCLifetime ASTContext::getInnerObjCOwnership | ( | QualType | T | ) | const |
Recurses in pointer/array types until it finds an Objective-C retainable type and returns its ownership.
Recurses in pointer/array types until it finds an objc retainable type and returns its ownership.
Definition at line 8328 of file ASTContext.cpp.
References getBaseElementType(), clang::Qualifiers::OCL_None, and clang::T.
MemberSpecializationInfo * ASTContext::getInstantiatedFromStaticDataMember | ( | const VarDecl * | Var | ) |
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.
Definition at line 1548 of file ASTContext.cpp.
References getTemplateOrSpecializationInfo(), and clang::VarDecl::isStaticDataMember().
Definition at line 1625 of file ASTContext.cpp.
Referenced by FindFieldDeclInstantiationPattern(), and isInstantiationOf().
If the given using decl Inst
is an instantiation of another (possibly unresolved) using decl, return it.
Definition at line 1583 of file ASTContext.cpp.
Referenced by isInstantiationOfUnresolvedUsingDecl().
UsingEnumDecl * ASTContext::getInstantiatedFromUsingEnumDecl | ( | UsingEnumDecl * | Inst | ) |
If the given using-enum decl Inst
is an instantiation of another using-enum decl, return it.
Definition at line 1602 of file ASTContext.cpp.
UsingShadowDecl * ASTContext::getInstantiatedFromUsingShadowDecl | ( | UsingShadowDecl * | Inst | ) |
Definition at line 1613 of file ASTContext.cpp.
TypedefDecl * ASTContext::getInt128Decl | ( | ) | const |
Retrieve the declaration for the 128-bit signed integer type.
Definition at line 1258 of file ASTContext.cpp.
References buildImplicitTypedef(), and Int128Ty.
Return the highest ranked integer type, see C99 6.3.1.8p1.
getIntegerTypeOrder - Returns the highest ranked integer type: C99 6.3.1.8p1.
If LHS
> RHS
, returns 1. If LHS
== RHS
, returns 0. If LHS
< RHS
, return -1.
If LHS > RHS, return 1. If LHS == RHS, return 0. If LHS < RHS, return -1.
Definition at line 8357 of file ASTContext.cpp.
References getCanonicalType(), getIntegerTypeForEnum(), clang::CanQual< T >::getTypePtr(), and clang::Type::isUnsignedIntegerType().
Referenced by canConvertIntToOtherIntTy(), clang::ento::SMTConv::doIntTypeConversion(), handleIntegerConversion(), handleIntegerVectorBinOpConversion(), tryGCCVectorConvertAndSplat(), and tryVectorConvertAndSplat().
interp::Context & ASTContext::getInterpContext | ( | ) |
Returns the clang bytecode interpreter context.
Definition at line 910 of file ASTContext.cpp.
Referenced by clang::Expr::EvaluateAsConstantExpr(), clang::Expr::EvaluateAsLValue(), EvaluateAsRValue(), EvaluateCharRangeAsStringImpl(), clang::Expr::isPotentialConstantExpr(), clang::Expr::isPotentialConstantExprUnevaluated(), and clang::Expr::tryEvaluateStrLen().
CanQualType ASTContext::getIntMaxType | ( | ) | const |
Return the unique type for "intmax_t" (C99 7.18.1.5), defined in <stdint.h>.
getIntMaxType - Return the unique type for "intmax_t" (C99 7.18.1.5).
Definition at line 6979 of file ASTContext.cpp.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType().
QualType ASTContext::getIntPtrType | ( | ) | const |
Return a type compatible with "intptr_t" (C99 7.18.1.4), as defined by the target.
Definition at line 7002 of file ASTContext.cpp.
Referenced by getUIntPtrType().
getIntTypeForBitwidth - sets integer QualTy according to specified details: bitwidth, signed/unsigned.
Returns empty type if there is no appropriate target types.
Definition at line 13292 of file ASTContext.cpp.
References clang::TargetInfo::getIntTypeByWidth(), getTargetInfo(), Int128Ty, clang::Signed, and UnsignedInt128Ty.
Referenced by clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), checkOpenMPLoop(), createKmpTaskTRecordDecl(), clang::CodeGen::CodeGenFunction::EmitAndRegisterVariableArrayDimensions(), EmitAsmStores(), clang::CodeGen::CGOpenMPRuntimeGPU::emitCriticalRegion(), EmitDoacrossOrdered(), clang::CodeGen::CGOpenMPRuntime::emitForNext(), emitRestoreIP(), clang::CodeGen::CGOpenMPRuntime::emitThreadIDAddress(), clang::ento::SMTConv::getAPSIntType(), clang::CodeGen::CGOpenMPRuntimeGPU::getDefaultDistScheduleAndChunk(), clang::CodeGen::CGOpenMPRuntime::getDefaultScheduleAndChunk(), and clang::CodeGen::CGOpenMPRuntimeGPU::getDefaultScheduleAndChunk().
Definition at line 12194 of file ASTContext.cpp.
References getTypeSize(), and clang::T.
Referenced by clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), AnalyzeComparison(), buildDistanceFunc(), BuiltinAlignment(), BuiltinOverflow(), canConvertIntToOtherIntTy(), canConvertIntTyToFloatTy(), CheckICE(), DeduceFromInitializerList(), DiagnoseBadShiftValues(), DiagnoseFloatingImpCast(), DiagnoseMixedUnicodeImplicitConversion(), getAlignmentArgument(), getFixedPointSemantics(), getIntegerWidthAndSignedness(), getLegacyIntegralTypeEncoding(), clang::StandardConversionSequence::getNarrowingKind(), getPromotedIntegerType(), clang::EnumDecl::getValueRange(), HandleFloatToIntCast(), handleIntegerConversion(), HandleIntToIntCast(), handleVectorUnaryOperator(), handleVectorVectorBinOp(), clang::interp::interp__builtin_is_aligned_up_down(), isOverflowingIntegerType(), isRepresentableIntegerValue(), isValidStructGUID(), MakeIntValue(), and clang::InitializationSequence::Perform().
|
inline |
Retrieve the C jmp_buf type.
Definition at line 2226 of file ASTContext.h.
References getTypeDeclType(), and clang::None.
Definition at line 14720 of file ASTContext.cpp.
References clang::TargetInfo::getCUDABuiltinAddressSpace(), clang::getLangASFromTargetAS(), clang::TargetInfo::getOpenCLBuiltinAddressSpace(), and getTargetInfo().
|
inline |
Definition at line 891 of file ASTContext.h.
Referenced by AlignOfType(), areLaxCompatibleRVVTypes(), buildGlobalBlock(), buildImplicitRecord(), builtinCommonTypeImpl(), CalculateHiddenNames(), canAssignObjCInterfacesInBlockPointer(), CheckConstexprFunction(), checkFloatingPointResult(), CheckForIncompatibleAttributes(), CheckICE(), ClassifyBinaryOp(), ClassifyConditional(), ClassifyDecl(), ClassifyInternal(), ClassifyMemberExpr(), ClassifyUnnamed(), clang::RecordDecl::completeDefinition(), clang::computeDependence(), clang::LinkageComputer::computeLVForDecl(), clang::analyze_os_log::computeOSLogBufferLayout(), computeOverflowPatternExclusion(), constructDebugPieceForTrackedCondition(), clang::CXXThisExpr::Create(), createDataFixit(), createOverloadsForFixedParams(), clang::tooling::createRenameAtomicChanges(), clang::CodeGen::CodeGenModule::CreateRuntimeVariable(), createSpanTypeForVarDecl(), clang::CIRGen::CIRGenFunction::emitAutoVarAlloca(), EmitDeclDestroy(), EmitDeclInit(), emitMappingInformation(), EncodeBitField(), clang::Expr::EvaluateAsInitializer(), EvaluateComparisonBinaryOperator(), clang::SourceLocExpr::EvaluateInContext(), clang::ASTMergeAction::ExecuteAction(), fixParamWithSpan(), fixUPCAddressofArraySubscriptWithSpan(), fixVarDeclWithArray(), FixVarInitializerWithSpan(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), GenerateFixForUnusedDecl(), clang::index::generateUSRForDecl(), clang::index::generateUSRForType(), getActiveRoundingMode(), getAdjustedParameterType(), GetAlignOfType(), getASTRecordLayout(), GetBuiltinType(), getByrefLifetime(), getCanonicalParamType(), getCFConstantStringDecl(), getConstField(), getCXXABIKind(), clang::LinkageComputer::getDeclLinkageAndVisibility(), clang::ento::retaincountchecker::RefLeakReportVisitor::getEndPath(), DerefSimplePtrArithFixableGadget::getFixits(), UPCPreIncrementGadget::getFixits(), UUCAddAssignGadget::getFixits(), getFloatTypeSemantics(), clang::AnalysisDeclContext::getFunctionName(), GetGCAttrTypeForType(), clang::Expr::getIntegerConstantExpr(), clang::Decl::getLangOpts(), getLiteralInfo(), getLogicalOperationType(), clang::LinkageComputer::getLVForDecl(), getMacroName(), getMoreSpecialized(), clang::CXXRecordDecl::getMSVtorDispMode(), clang::StandardConversionSequence::getNarrowingKind(), getNSArrayObjects(), getObjCEncodingForBlock(), getObjCGCAttrKind(), getObjCMemberSelTypePtrAuth(), clang::DeclContext::getRedeclContext(), getStringLiteralArrayType(), getTagType(), getTypeInfoDataSizeInChars(), getVTableContext(), clang::ento::retaincountchecker::RetainCountChecker::handleAutoreleaseCounts(), handleBuiltinAliasAttr(), clang::Decl::hasLocalOwningModuleStorage(), clang::installapi::hasRTTI(), hasSameCudaAttrs(), hasSameFunctionTypeIgnoringExceptionSpec(), libc_func_matchers::hasUnsafeFormatOrSArg(), higherPrecisionElementTypeForComplexArithmetic(), ignoreUnsafeLibcCall(), clang::Expr::isCXX11ConstantExpr(), clang::ParmVarDecl::isDestroyedInCallee(), clang::ObjCMethodDecl::isDirectMethod(), clang::ObjCPropertyDecl::isDirectProperty(), IsEquivalentFriend(), clang::Expr::isIntegerConstantExpr(), clang::Type::isIntegralType(), clang::VarDecl::isKnownToBeDefined(), clang::Type::isLiteralType(), IsModifiable(), clang::VarDecl::isNoDestroy(), clang::QualType::isNonConstantStorage(), clang::Expr::isNullPointerConstant(), clang::Type::isPackedVectorBoolType(), isPromotableBitField(), isPromotableIntegerType(), isSameEntity(), isTypeSubstitutable(), clang::Expr::isUnusedResultAWarning(), clang::FunctionDecl::isUsableAsGlobalAllocationFunctionInConstantEvaluation(), clang::interp::isUserWritingOffTheEnd(), isUserWritingOffTheEnd(), clang::CodeGen::ABIInfo::isZeroLengthBitfieldPermittedInHomogeneousAggregate(), clang::CXXRecordDecl::lambdaIsDefaultConstructibleAndAssignable(), MarkUsedTemplateParameters(), matchesPostDecrInWhile(), mergeTagDefinitions(), mergeTypes(), namedTypeToLengthModifierKind(), needsConversionOfHalfVec(), clang::ento::ConditionBRVisitor::patternMatch(), PrintStats(), clang::ento::retaincountchecker::RetainCountChecker::processLeaks(), ProcessStmtAttribute(), reportAnalyzerFunctionMisuse(), resolveAllocationOverloadInterior(), clang::edit::rewriteObjCRedundantCallWithLiteral(), clang::edit::rewriteToObjCLiteralSyntax(), setInstantiatedFromUnnamedFieldDecl(), setObjCGCLValueClass(), shouldFunctionGenerateHereOnly(), shouldNotRewriteImmediateMessageArgs(), clang::shouldSkipCheckingODR(), shouldVarGenerateHereOnly(), clang::CodeGen::CodeGenModule::stopAutoInit(), typesAreCompatible(), UnwrapSimilarArrayTypes(), UnwrapSimilarTypes(), clang::QualType::UseExcessPrecision(), and useInlineVisibilityHidden().
void ASTContext::getLegacyIntegralTypeEncoding | ( | QualType & | PointeeTy | ) | const |
getLegacyIntegralTypeEncoding - Another legacy compatibility encoding: 32-bit longs are encoded as 'l' or 'L' , but not always.
For typedefs, we need to use 'i' or 'I' instead if encoding a struct field, or a pointer!
Definition at line 9067 of file ASTContext.cpp.
References clang::Type::getAs(), getIntWidth(), IntTy, and UnsignedIntTy.
|
inline |
Return a type with the given lifetime qualifier.
lifetime
may be OCL_None
. Definition at line 2456 of file ASTContext.h.
References clang::Qualifiers::addObjCLifetime(), getQualifiedType(), clang::Qualifiers::OCL_None, and clang::ast_matchers::type.
comments::FullComment * ASTContext::getLocalCommentForDeclUncached | ( | const Decl * | D | ) | const |
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.
Definition at line 609 of file ASTContext.cpp.
References getRawCommentForDeclNoCache(), and clang::RawComment::parse().
Referenced by clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit().
|
inline |
The result type of logical operations, '<', '>', '!=', etc.
Definition at line 2260 of file ASTContext.h.
References BoolTy, getLangOpts(), and IntTy.
Referenced by checkArithmeticOrEnumeralCompare().
Return the uniqued reference to the type for an lvalue reference to the specified type.
getLValueReferenceType - Return the uniqued reference to the type for an lvalue reference to the specified type.
Definition at line 4073 of file ASTContext.cpp.
References getCanonicalType(), getLValueReferenceType(), New, clang::ReferenceType::Profile(), and clang::T.
Referenced by AddBuiltinAssignmentOperatorCandidates(), clang::hlsl::BuiltinTypeDeclBuilder::addCopyAssignmentOperator(), clang::hlsl::BuiltinTypeDeclBuilder::addCopyConstructor(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleAccessFunction(), AdjustFunctionParmAndArgTypesForDeduction(), alignReferenceTypes(), buildDistanceFunc(), buildLoopVarFunc(), captureInCapturedRegion(), captureInLambda(), checkDynamicType(), DeduceNonTypeTemplateArgument(), DiagnoseForRangeConstVariableCopies(), DiagnoseForRangeReferenceVariableCopies(), clang::Expr::EvaluateAsLValue(), findCompleteObject(), getCaptureFieldType(), getCommonNonSugarTypeNode(), clang::TypeName::getFullyQualifiedType(), getLValueReferenceType(), getReferenceQualifiedType(), getVariableArrayDecayedType(), HandleDestructionImpl(), clang::ento::ExprEngine::handleLValueBitCast(), clang::sema::isNormalAssignmentOperator(), lookupPromiseType(), makeQualifiedLValueReferenceType(), NoteSurrogateCandidate(), and clang::InitializationSequence::Perform().
QualType ASTContext::getMacroQualifiedType | ( | QualType | UnderlyingTy, |
const IdentifierInfo * | MacroII ) const |
Definition at line 6102 of file ASTContext.cpp.
References getCanonicalType(), and clang::QualType::isCanonical().
Referenced by adjustType(), and getCommonSugarTypeNode().
Definition at line 13338 of file ASTContext.cpp.
MangleNumberingContext & ASTContext::getManglingNumberContext | ( | const DeclContext * | DC | ) |
Retrieve the context for computing mangling numbers in the given DeclContext.
Definition at line 13395 of file ASTContext.cpp.
References createMangleNumberingContext(), and DeclContext.
MangleNumberingContext & ASTContext::getManglingNumberContext | ( | NeedExtraManglingDecl_t | , |
const Decl * | D ) |
Definition at line 13404 of file ASTContext.cpp.
References createMangleNumberingContext().
Find the 'this' offset for the member path in a pointer-to-member APValue.
Definition at line 2770 of file ASTContext.cpp.
References clang::cast(), CXXRecordDecl, getASTRecordLayout(), clang::ASTRecordLayout::getBaseClassOffset(), clang::Decl::getDeclContext(), clang::APValue::getMemberPointerDecl(), clang::APValue::getMemberPointerPath(), clang::APValue::isMemberPointerToDerivedMember(), and clang::CharUnits::Zero().
Referenced by clang::ODRHash::AddStructuralValue().
QualType ASTContext::getMemberPointerType | ( | QualType | T, |
NestedNameSpecifier | Qualifier, | ||
const CXXRecordDecl * | Cls ) const |
Return the uniqued reference to the type for a member pointer to the specified type in the specified nested name.
Definition at line 4150 of file ASTContext.cpp.
References clang::cast(), CXXRecordDecl, getCanonicalTagType(), getCanonicalType(), getMemberPointerType(), clang::NestedNameSpecifier::isCanonical(), NestedNameSpecifier, New, clang::MemberPointerType::Profile(), and clang::T.
Referenced by clang::Sema::FindCompositePointerType(), getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), clang::TypeName::getFullyQualifiedType(), clang::CodeGen::CodeGenModule::getMemberFunctionPointer(), getMemberPointerType(), getPointerAuthTypeDiscriminator(), GetTypeOfFunction(), and IsStandardConversion().
Return the minimum alignment as specified by the target.
If VD
is non-null it may be used to identify external or weak variables.
Definition at line 2752 of file ASTContext.cpp.
References clang::TargetInfo::getMinGlobalAlign(), getTargetInfo(), clang::VarDecl::hasDefinition(), and clang::ValueDecl::isWeak().
Referenced by getAlignOfGlobalVar(), and getDeclAlign().
Get the initializations to perform when importing a module, if any.
Definition at line 1163 of file ASTContext.cpp.
Referenced by clang::TextNodeDumper::VisitImportDecl().
Get the additional modules in which the definition Def
has been merged.
Definition at line 1103 of file ASTContext.cpp.
References clang::cast(), and clang::Decl::getCanonicalDecl().
Referenced by clang::TextNodeDumper::Visit().
MSGuidDecl * ASTContext::getMSGuidDecl | ( | MSGuidDeclParts | Parts | ) | const |
Return a declaration for the global GUID object representing the given GUID value.
Definition at line 13487 of file ASTContext.cpp.
References getMSGuidType(), MSGuidTagDecl, New, clang::MSGuidDecl::Profile(), and clang::CanQual< T >::withConst().
Referenced by handleUuidAttr().
|
inline |
Retrieve the implicitly-predeclared 'struct _GUID' declaration.
Definition at line 2406 of file ASTContext.h.
References MSGuidTagDecl.
|
inline |
Retrieve the implicitly-predeclared 'struct _GUID' type.
Definition at line 2409 of file ASTContext.h.
References getCanonicalTagType(), and MSGuidTagDecl.
Referenced by getMSGuidDecl().
|
inline |
Retrieve the implicitly-predeclared 'struct type_info' declaration.
Definition at line 2415 of file ASTContext.h.
References buildImplicitRecord(), clang::Class, and MSTypeInfoTagDecl.
DeclarationNameInfo ASTContext::getNameForTemplate | ( | TemplateName | Name, |
SourceLocation | NameLoc ) const |
Definition at line 7224 of file ASTContext.cpp.
References clang::TemplateName::AssumedTemplate, DeclarationNames, clang::TemplateName::DeducedTemplate, clang::TemplateName::DependentTemplate, clang::TemplateName::getAsAssumedTemplateName(), clang::TemplateName::getAsDeducedTemplateName(), clang::TemplateName::getAsDependentTemplateName(), clang::TemplateName::getAsOverloadedTemplate(), clang::TemplateName::getAsSubstTemplateTemplateParm(), clang::TemplateName::getAsSubstTemplateTemplateParmPack(), clang::TemplateName::getAsTemplateDecl(), clang::TemplateName::getAsUsingShadowDecl(), clang::NamedDecl::getDeclName(), clang::IdentifierOrOverloadedOperator::getIdentifier(), clang::TemplateName::getKind(), clang::DependentTemplateStorage::getName(), getNameForTemplate(), clang::IdentifierOrOverloadedOperator::getOperator(), clang::SubstTemplateTemplateParmStorage::getParameter(), clang::SubstTemplateTemplateParmPackStorage::getParameterPack(), clang::DeducedTemplateStorage::getUnderlying(), clang::DeclarationNameLoc::makeCXXOperatorNameLoc(), clang::TemplateName::OverloadedTemplate, clang::TemplateName::QualifiedTemplate, clang::TemplateName::SubstTemplateTemplateParm, clang::TemplateName::SubstTemplateTemplateParmPack, clang::TemplateName::Template, and clang::TemplateName::UsingTemplate.
Referenced by getNameForTemplate().
OMPTraitInfo & ASTContext::getNewOMPTraitInfo | ( | ) |
Return a new OMPTraitInfo object owned by this context.
Definition at line 15075 of file ASTContext.cpp.
Referenced by instantiateOMPDeclareVariantAttr(), clang::Parser::ParseOpenMPDeclareBeginVariantDirective(), and clang::ASTRecordReader::readOMPTraitInfo().
|
inlinestatic |
Definition at line 1144 of file ASTContext.h.
|
inline |
Return the next version number to be used for a string literal evaluated as part of constant evaluation.
Definition at line 3465 of file ASTContext.h.
|
inline |
Definition at line 901 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenModule::isInNoSanitizeList(), clang::CodeGen::CodeGenModule::isInNoSanitizeList(), and clang::CodeGen::CodeGenFunction::ShouldEmitVTableTypeCheckedLoad().
|
inline |
Retrieve the identifier 'NSCopying'.
Definition at line 2171 of file ASTContext.h.
References Idents.
Referenced by clang::Type::isBlockCompatibleObjCPointerType().
CanQualType ASTContext::getNSIntegerType | ( | ) | const |
Definition at line 8704 of file ASTContext.cpp.
References LongLongTy, LongTy, and clang::T.
|
inline |
Retrieve the identifier 'NSObject'.
Definition at line 2162 of file ASTContext.h.
References Idents.
Referenced by clang::ObjCMethodDecl::definedInNSObject(), and clang::Type::isBlockCompatibleObjCPointerType().
CanQualType ASTContext::getNSUIntegerType | ( | ) | const |
Definition at line 8695 of file ASTContext.cpp.
References clang::T, UnsignedLongLongTy, and UnsignedLongTy.
TypedefDecl * ASTContext::getObjCClassDecl | ( | ) | const |
Retrieve the typedef declaration corresponding to the predefined Objective-C 'Class' type.
Definition at line 9846 of file ASTContext.cpp.
References buildImplicitTypedef(), getObjCObjectPointerType(), getObjCObjectType(), ObjCBuiltinClassTy, and clang::T.
Referenced by getObjCClassType().
|
inline |
Retrieve the type that Class
has been defined to, which may be different from the built-in Class
if Class
has been typedef'd.
Definition at line 2137 of file ASTContext.h.
References getObjCClassType().
Referenced by ShouldTryAgainWithRedefinitionType().
|
inline |
Represents the Objective-C Class
type.
This is set up lazily, by Sema. Class
is always a (typedef for a) pointer type, a pointer to a struct.
Definition at line 2350 of file ASTContext.h.
References getObjCClassDecl(), getTypedefType(), and clang::None.
Referenced by getObjCClassRedefinitionType(), isObjCClassType(), and LookupMemberExpr().
|
inline |
Definition at line 2110 of file ASTContext.h.
std::string ASTContext::getObjCEncodingForBlock | ( | const BlockExpr * | blockExpr | ) | const |
Return the encoded type for this block declaration.
getObjCEncodingForBlock - Return the encoded type for this block declaration.
Definition at line 8781 of file ASTContext.cpp.
References clang::Type::castAs(), charUnitsToString(), clang::Type::getCanonicalTypeInternal(), getLangOpts(), getObjCEncodingForMethodParameter(), getObjCEncodingForType(), getObjCEncodingTypeSize(), getPointeeType(), clang::Expr::getType(), getTypeSizeInChars(), clang::isa(), clang::Type::isFunctionType(), clang::CharUnits::isPositive(), clang::CharUnits::isZero(), clang::Decl::OBJC_TQ_None, and VoidPtrTy.
Referenced by buildBlockDescriptor(), and getBlockDescriptorName().
std::string ASTContext::getObjCEncodingForFunctionDecl | ( | const FunctionDecl * | Decl | ) | const |
Emit the encoded type for the function Decl
into S
.
This is in the same format as Objective-C method encodings.
Definition at line 8837 of file ASTContext.cpp.
References charUnitsToString(), clang::Type::getCanonicalTypeInternal(), getObjCEncodingForType(), getObjCEncodingTypeSize(), clang::isa(), clang::Type::isFunctionType(), clang::CharUnits::isPositive(), clang::CharUnits::isZero(), and clang::CharUnits::Zero().
std::string ASTContext::getObjCEncodingForMethodDecl | ( | const ObjCMethodDecl * | Decl, |
bool | Extended = false ) const |
Emit the encoded type for the method declaration Decl
into S
.
getObjCEncodingForMethodDecl - Return the encoded type for this method declaration.
Definition at line 8895 of file ASTContext.cpp.
References charUnitsToString(), clang::Type::getCanonicalTypeInternal(), clang::ParmVarDecl::getObjCDeclQualifier(), getObjCEncodingForMethodParameter(), getObjCEncodingTypeSize(), clang::ParmVarDecl::getOriginalType(), clang::ValueDecl::getType(), getTypeSizeInChars(), clang::isa(), clang::Type::isFunctionType(), clang::CharUnits::isPositive(), clang::CharUnits::isZero(), and VoidPtrTy.
void ASTContext::getObjCEncodingForMethodParameter | ( | Decl::ObjCDeclQualifier | QT, |
QualType | T, | ||
std::string & | S, | ||
bool | Extended ) const |
getObjCEncodingForMethodParameter - Return the encoded type for a single method parameter or return type.
If Extended, include class names and block object types.
Definition at line 8878 of file ASTContext.cpp.
References getObjCEncodingForTypeQualifier(), and clang::T.
Referenced by getObjCEncodingForBlock(), and getObjCEncodingForMethodDecl().
std::string ASTContext::getObjCEncodingForPropertyDecl | ( | const ObjCPropertyDecl * | PD, |
const Decl * | Container ) const |
getObjCEncodingForPropertyDecl - Return the encoded type for this method declaration.
getObjCEncodingForPropertyDecl - Return the encoded type for this property declaration.
If non-NULL, Container must be either an ObjCCategoryImplDecl or ObjCImplementationDecl; it should only be NULL when getting encodings for protocol properties.
If non-NULL, Container must be either an ObjCCategoryImplDecl or ObjCImplementationDecl; it should only be NULL when getting encodings for protocol properties. Property attributes are stored as a comma-delimited C string. The simple attributes readonly and bycopy are encoded as single characters. The parametrized attributes, getter=name, setter=name, and ivar=name, are encoded as single characters, followed by an identifier. Property types are also encoded as a parametrized attribute. The characters used to encode these attributes are defined by the following enumeration:
Definition at line 8993 of file ASTContext.cpp.
References clang::ObjCPropertyDecl::Assign, clang::ObjCPropertyDecl::Copy, clang::ObjCPropertyImplDecl::Dynamic, clang::Selector::getAsString(), clang::ObjCPropertyDecl::getGetterName(), clang::NamedDecl::getNameAsString(), getObjCEncodingForPropertyType(), getObjCPropertyImplDeclForPropertyDecl(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ObjCPropertyImplDecl::getPropertyIvarDecl(), clang::ObjCPropertyDecl::getSetterKind(), clang::ObjCPropertyDecl::getSetterName(), clang::ObjCPropertyDecl::getType(), clang::ObjCPropertyDecl::isOptional(), clang::ObjCPropertyDecl::isReadOnly(), clang::ObjCPropertyAttribute::kind_copy, clang::ObjCPropertyAttribute::kind_getter, clang::ObjCPropertyAttribute::kind_nonatomic, clang::ObjCPropertyAttribute::kind_retain, clang::ObjCPropertyAttribute::kind_setter, clang::ObjCPropertyAttribute::kind_weak, clang::ObjCPropertyDecl::Retain, and clang::ObjCPropertyDecl::Weak.
void ASTContext::getObjCEncodingForPropertyType | ( | QualType | T, |
std::string & | S ) const |
Emit the Objective-C property type encoding for the given type T
into S
.
Definition at line 9094 of file ASTContext.cpp.
References clang::T.
Referenced by getObjCEncodingForPropertyDecl().
void ASTContext::getObjCEncodingForType | ( | QualType | T, |
std::string & | S, | ||
const FieldDecl * | Field = nullptr, | ||
QualType * | NotEncodedT = nullptr ) const |
Emit the Objective-CC type encoding for the given type T
into S
.
If Field
is specified then record field names are also encoded.
Definition at line 9079 of file ASTContext.cpp.
References clang::T.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), extractStringLiteralCharacter(), clang::CodeGen::CodeGenModule::GetAddrOfConstantStringFromObjCEncode(), GetLValueBaseAsString(), getObjCEncodingForBlock(), and getObjCEncodingForFunctionDecl().
void ASTContext::getObjCEncodingForTypeQualifier | ( | Decl::ObjCDeclQualifier | QT, |
std::string & | S ) const |
Put the string version of the type qualifiers QT
into S
.
Definition at line 9813 of file ASTContext.cpp.
References clang::Decl::OBJC_TQ_Bycopy, clang::Decl::OBJC_TQ_Byref, clang::Decl::OBJC_TQ_In, clang::Decl::OBJC_TQ_Inout, clang::Decl::OBJC_TQ_Oneway, and clang::Decl::OBJC_TQ_Out.
Referenced by getObjCEncodingForMethodParameter().
Return the size of type T
for Objective-C encoding purpose, in characters.
getObjCEncodingTypeSize returns size of type for objective-c encoding purpose.
Definition at line 8732 of file ASTContext.cpp.
References getTypeSizeInChars(), IntTy, clang::CharUnits::isPositive(), clang::ast_matchers::type, VoidPtrTy, and clang::CharUnits::Zero().
Referenced by getObjCEncodingForBlock(), getObjCEncodingForFunctionDecl(), and getObjCEncodingForMethodDecl().
Qualifiers::GC ASTContext::getObjCGCAttrKind | ( | QualType | Ty | ) | const |
Return one of the GCNone, Weak or Strong Objective-C garbage collection attributes.
getObjCGCAttr - Returns one of GCNone, Weak or Strong objc's garbage collection attribute.
Definition at line 10518 of file ASTContext.cpp.
References clang::Type::castAs(), clang::Qualifiers::GCNone, clang::Type::getCanonicalTypeInternal(), getLangOpts(), clang::QualType::getObjCGCAttr(), getObjCGCAttrKind(), clang::PointerType::getPointeeType(), clang::Type::isAnyPointerType(), clang::Type::isBlockPointerType(), clang::Type::isObjCObjectPointerType(), clang::Type::isPointerType(), clang::LangOptionsBase::NonGC, clang::ObjC, and clang::Qualifiers::Strong.
Referenced by getObjCGCAttrKind(), and clang::Expr::isOBJCGCCandidate().
QualType ASTContext::getObjCGCQualType | ( | QualType | T, |
Qualifiers::GC | gcAttr ) const |
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.
Definition at line 3652 of file ASTContext.cpp.
References clang::Qualifiers::addObjCGCAttr(), getCanonicalType(), clang::QualType::getObjCGCAttr(), getObjCGCQualType(), clang::Type::getPointeeType(), getPointerType(), clang::Qualifiers::hasObjCGCAttr(), clang::Type::isAnyPointerType(), clang::QualifierCollector::strip(), and clang::T.
Referenced by getObjCGCQualType(), handleObjCGCTypeAttr(), and mergeTypes().
TypedefDecl * ASTContext::getObjCIdDecl | ( | ) | const |
Retrieve the typedef corresponding to the predefined id
type in Objective-C.
Definition at line 9829 of file ASTContext.cpp.
References buildImplicitTypedef(), getObjCObjectPointerType(), getObjCObjectType(), ObjCBuiltinIdTy, and clang::T.
Referenced by getObjCIdType().
|
inline |
Retrieve the type that id
has been defined to, which may be different from the built-in id
if id
has been typedef'd.
Definition at line 2124 of file ASTContext.h.
References getObjCIdType().
Referenced by ShouldTryAgainWithRedefinitionType().
|
inline |
Represents the Objective-CC id
type.
This is set up lazily, by Sema. id
is always a (typedef for a) pointer type, a pointer to a struct.
Definition at line 2324 of file ASTContext.h.
References getObjCIdDecl(), getTypedefType(), and clang::None.
Referenced by getObjCIdRedefinitionType(), getObjCInstanceTypeDecl(), isObjCIdType(), and TryContextuallyConvertToObjCPointer().
ObjCCategoryImplDecl * ASTContext::getObjCImplementation | ( | ObjCCategoryDecl * | D | ) |
Get the implementation of the ObjCCategoryDecl D
, or nullptr if none exists.
Get the implementation of ObjCCategoryDecl, or nullptr if none exists.
Definition at line 3112 of file ASTContext.cpp.
References clang::cast().
ObjCImplementationDecl * ASTContext::getObjCImplementation | ( | ObjCInterfaceDecl * | D | ) |
Get the implementation of the ObjCInterfaceDecl D
, or nullptr if none exists.
Get the implementation of ObjCInterfaceDecl, or nullptr if none exists.
Definition at line 3102 of file ASTContext.cpp.
References clang::cast().
Referenced by clang::ObjCCategoryDecl::getImplementation(), and clang::ObjCInterfaceDecl::getImplementation().
|
inline |
Retrieve the Objective-C "instancetype" type.
Definition at line 2199 of file ASTContext.h.
References getObjCInstanceTypeDecl(), getTypedefType(), and clang::None.
Referenced by clang::ObjCMessageExpr::getCallReturnType().
TypedefDecl * ASTContext::getObjCInstanceTypeDecl | ( | ) |
Retrieve the typedef declaration corresponding to the Objective-C "instancetype" type.
Definition at line 8713 of file ASTContext.cpp.
References buildImplicitTypedef(), and getObjCIdType().
Referenced by getObjCInstanceType(), and handleFormatArgAttr().
QualType ASTContext::getObjCInterfaceType | ( | const ObjCInterfaceDecl * | Decl, |
ObjCInterfaceDecl * | PrevDecl = nullptr ) const |
getObjCInterfaceType - Return the unique reference to the type for the specified ObjC interface decl.
The list of protocols is optional.
Definition at line 6559 of file ASTContext.cpp.
References Allocate(), and clang::T.
Referenced by areCommonBaseCompatible(), getNSNumberFactoryMethod(), getObjCProtoType(), clang::ObjCPropertyRefExpr::getReceiverType(), GetReturnType(), LookupMethodInReceiverType(), and setObjCConstantStringInterface().
PointerAuthQualifier ASTContext::getObjCMemberSelTypePtrAuth | ( | ) |
Definition at line 9869 of file ASTContext.cpp.
References clang::PointerAuthQualifier::Create(), getLangOpts(), clang::SelPointerConstantDiscriminator, and clang::SignAndAuth.
const ObjCMethodDecl * ASTContext::getObjCMethodRedeclaration | ( | const ObjCMethodDecl * | MD | ) | const |
Get the duplicate declaration of a ObjCMethod in the same interface, or null if none exists.
Definition at line 3135 of file ASTContext.cpp.
References clang::DeclContext::lookup().
Referenced by setObjCMethodRedeclaration().
|
inline |
Definition at line 2114 of file ASTContext.h.
Return a ObjCObjectPointerType type for the given ObjCObjectType.
getObjCObjectPointerType - Return a ObjCObjectPointerType type for the given object type.
Definition at line 6528 of file ASTContext.cpp.
References Allocate(), getCanonicalType(), getObjCObjectPointerType(), clang::QualType::isCanonical(), and clang::ObjCObjectPointerType::Profile().
Referenced by applyObjCProtocolQualifiers(), areCommonBaseCompatible(), canBindObjCObjectType(), checkObjCKindOfType(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), clang::Sema::FindCompositePointerType(), getCommonNonSugarTypeNode(), clang::ento::TypedValueRegion::getLocationType(), getNSNumberFactoryMethod(), getObjCClassDecl(), getObjCIdDecl(), getObjCObjectPointerType(), GetReturnType(), clang::ObjCObjectPointerType::getSuperClassType(), handleFormatArgAttr(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().
QualType ASTContext::getObjCObjectType | ( | QualType | Base, |
ArrayRef< QualType > | typeArgs, | ||
ArrayRef< ObjCProtocolDecl * > | protocols, | ||
bool | isKindOf ) const |
Definition at line 6267 of file ASTContext.cpp.
References Allocate(), areSortedAndUniqued(), clang::Type::getAs(), getCanonicalType(), getObjCObjectType(), clang::isa(), clang::QualType::isCanonical(), SortAndUniqueProtocols(), clang::T, and clang::ast_matchers::type.
QualType ASTContext::getObjCObjectType | ( | QualType | Base, |
ObjCProtocolDecl *const * | Protocols, | ||
unsigned | NumProtocols ) const |
Legacy interface: cannot provide type arguments or __kindof.
Definition at line 6260 of file ASTContext.cpp.
References getObjCObjectType().
Referenced by applyObjCProtocolQualifiers(), clang::applyObjCTypeArgs(), areCommonBaseCompatible(), checkObjCKindOfType(), getCommonNonSugarTypeNode(), getObjCClassDecl(), getObjCIdDecl(), getObjCObjectType(), getObjCObjectType(), and clang::Type::getObjCSubstitutions().
const ObjCInterfaceDecl * ASTContext::getObjContainingInterface | ( | const NamedDecl * | ND | ) | const |
Returns the Objective-C interface that ND
belongs to if it is an Objective-C method/property/ivar etc.
that is part of an interface, otherwise returns null.
Definition at line 3145 of file ASTContext.cpp.
References clang::Decl::getDeclContext().
Referenced by clang::edit::rewriteToObjCSubscriptSyntax().
ObjCPropertyImplDecl * ASTContext::getObjCPropertyImplDeclForPropertyDecl | ( | const ObjCPropertyDecl * | PD, |
const Decl * | Container ) const |
Definition at line 8948 of file ASTContext.cpp.
References clang::cast().
Referenced by getObjCEncodingForPropertyDecl().
ObjCInterfaceDecl * ASTContext::getObjCProtocolDecl | ( | ) | const |
Retrieve the Objective-C class declaration corresponding to the predefined Protocol
class.
Definition at line 9855 of file ASTContext.cpp.
References clang::ObjCInterfaceDecl::Create(), getTranslationUnitDecl(), and Idents.
Referenced by getObjCProtoType().
|
inline |
Retrieve the type of the Objective-C Protocol
class.
Definition at line 2376 of file ASTContext.h.
References getObjCInterfaceType(), and getObjCProtocolDecl().
TypedefDecl * ASTContext::getObjCSelDecl | ( | ) | const |
Retrieve the typedef corresponding to the predefined 'SEL' type in Objective-C.
Definition at line 9838 of file ASTContext.cpp.
References buildImplicitTypedef(), getPointerType(), ObjCBuiltinSelTy, and clang::T.
Referenced by getObjCSelType().
|
inline |
Retrieve the type that 'SEL' has been defined to, which may be different from the built-in 'SEL' if 'SEL' has been typedef'd.
Definition at line 2150 of file ASTContext.h.
References getObjCSelType().
Referenced by LookupMemberExpr().
|
inline |
Retrieve the type that corresponds to the predefined Objective-C 'SEL' type.
Definition at line 2335 of file ASTContext.h.
References getObjCSelDecl(), getTypedefType(), and clang::None.
Referenced by emitCmdValueForGetterSetterBody(), getObjCSelRedefinitionType(), and isObjCSelType().
QualType ASTContext::getObjCSuperType | ( | ) | const |
Returns the C struct type for objc_super.
Definition at line 8498 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), buildImplicitRecord(), getCanonicalTagType(), and getTranslationUnitDecl().
QualType ASTContext::getObjCTypeParamType | ( | const ObjCTypeParamDecl * | Decl, |
ArrayRef< ObjCProtocolDecl * > | protocols ) const |
Definition at line 6419 of file ASTContext.cpp.
References Allocate(), applyObjCProtocolQualifiers(), and getCanonicalType().
Referenced by adjustObjCTypeParamBoundType(), applyObjCProtocolQualifiers(), and clang::ObjCTypeParamDecl::Create().
CharUnits ASTContext::getOffsetOfBaseWithVBPtr | ( | const CXXRecordDecl * | RD | ) | const |
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.
Definition at line 2760 of file ASTContext.cpp.
References CXXRecordDecl, getASTRecordLayout(), clang::ASTRecordLayout::getBaseClassOffset(), clang::ASTRecordLayout::getBaseSharingVBPtr(), and clang::CharUnits::Zero().
Get address space for OpenCL type.
Definition at line 8623 of file ASTContext.cpp.
References getOpenCLTypeKind(), and clang::T.
OpenCLTypeKind ASTContext::getOpenCLTypeKind | ( | const Type * | T | ) | const |
Map an AST Type to an OpenCLTypeKind enum value.
Definition at line 8587 of file ASTContext.cpp.
References clang::isa(), clang::OCLTK_ClkEvent, clang::OCLTK_Default, clang::OCLTK_Event, clang::OCLTK_Pipe, clang::OCLTK_Queue, clang::OCLTK_ReserveID, clang::OCLTK_Sampler, and clang::T.
Referenced by getOpenCLTypeAddrSpace().
Get default simd alignment of the specified complete type in bits.
Definition at line 2632 of file ASTContext.cpp.
References clang::TargetOptions::FeatureMap, getTargetInfo(), clang::TargetInfo::getTargetOpts(), and clang::T.
Referenced by emitAlignedClause(), GetAlignedMapping(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
TemplateName ASTContext::getOverloadedTemplateName | ( | UnresolvedSetIterator | Begin, |
UnresolvedSetIterator | End ) const |
Retrieve the template name that corresponds to a non-empty lookup.
Definition at line 10345 of file ASTContext.cpp.
References Allocate(), clang::NamedDecl::getUnderlyingDecl(), clang::isa(), and clang::TemplateName.
void ASTContext::getOverriddenMethods | ( | const NamedDecl * | Method, |
SmallVectorImpl< const NamedDecl * > & | Overridden ) const |
Return C++ or ObjC overridden methods for the given 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.
Definition at line 1672 of file ASTContext.cpp.
References clang::Method, overridden_methods_begin(), and overridden_methods_end().
Referenced by getCommentForDecl().
QualType ASTContext::getPackExpansionType | ( | QualType | Pattern, |
UnsignedOrNone | NumExpansions, | ||
bool | ExpectPackInType = true ) const |
Form a pack expansion type with the given pattern.
NumExpansions | The number of expansions for the pack, if known. |
ExpectPackInType | If false , we should not expect 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. |
Definition at line 6195 of file ASTContext.cpp.
References clang::Type::containsUnexpandedParameterPack(), getCanonicalType(), getPackExpansionType(), clang::QualType::isCanonical(), and clang::T.
Referenced by CheckBindingsCount(), getCommonNonSugarTypeNode(), getInjectedTemplateArg(), and getPackExpansionType().
QualType ASTContext::getPackIndexingType | ( | QualType | Pattern, |
Expr * | IndexExpr, | ||
bool | FullySubstituted = false, | ||
ArrayRef< QualType > | Expansions = {}, | ||
UnsignedOrNone | Index = std::nullopt ) const |
Definition at line 6689 of file ASTContext.cpp.
References Allocate(), getCanonicalType(), clang::QualType::getCanonicalType(), clang::T, and clang::TypeAlignment.
unsigned ASTContext::getParameterIndex | ( | const ParmVarDecl * | D | ) | const |
Used by ParmVarDecl to retrieve on the side the index of the parameter when it exceeds the size of the normal bitfield.
Definition at line 13454 of file ASTContext.cpp.
ParentMapContext & ASTContext::getParentMapContext | ( | ) |
Returns the dynamic AST node parent map context.
Definition at line 917 of file ASTContext.cpp.
Referenced by getParents(), getParents(), matchesPostDecrInWhile(), and setTraversalScope().
|
inline |
Definition at line 136 of file ParentMapContext.h.
References getParentMapContext(), and clang::ParentMapContext::getParents().
|
inline |
Forwards to get node parents from the ParentMapContext.
New callers should use ParentMapContext::getParents() directly.
Definition at line 131 of file ParentMapContext.h.
References getParentMapContext(), and clang::ParentMapContext::getParents().
Referenced by clang::diff::getEnclosingDeclContext(), and clang::installapi::InstallAPIVisitor::VisitFunctionDecl().
Definition at line 6078 of file ASTContext.cpp.
References getCanonicalType(), clang::QualType::isCanonical(), clang::ParenType::Profile(), and clang::T.
Referenced by adjustType(), and getCommonSugarTypeNode().
|
inline |
Return a type with the given __ptrauth qualifier.
Definition at line 2478 of file ASTContext.h.
References clang::QualType::getPointerAuth(), getQualifiedType(), and clang::Qualifiers::setPointerAuth().
Referenced by HandlePtrAuthQualifier().
uint16_t ASTContext::getPointerAuthTypeDiscriminator | ( | QualType | T | ) |
Return the "other" type-specific discriminator for the given type.
Definition at line 3602 of file ASTContext.cpp.
References clang::Type::castAs(), createMangleContext(), encodeTypeForFunctionPointerAuth(), clang::EST_None, clang::FunctionProtoType::getExceptionSpecType(), getFunctionTypeWithExceptionSpec(), getMemberPointerType(), clang::Type::getPointeeType(), and clang::T.
Referenced by clang::CodeGen::getPointerAuthTypeDiscriminator().
uint16_t ASTContext::getPointerAuthVTablePointerDiscriminator | ( | const CXXRecordDecl * | RD | ) |
Return the "other" discriminator used for the pointer auth schema used for vtable pointers in instances of the requested type.
Definition at line 3318 of file ASTContext.cpp.
References createMangleContext(), CXXRecordDecl, and clang::CXXRecordDecl::isPolymorphic().
QualType ASTContext::getPointerDiffType | ( | ) | const |
Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef.h>.
getPointerDiffType - Return the unique type for "ptrdiff_t" (C99 7.17) defined in <stddef.h>.
Pointer - pointer requires this (C99 6.5.6p9).
Definition at line 6967 of file ASTContext.cpp.
References getPredefinedSugarType(), and clang::Type::PtrdiffT.
Referenced by clang::ento::RangedConstraintManager::assumeSym(), clang::CodeGen::CodeGenFunction::EmitIvarOffsetAsPointerDiff(), clang::analyze_scanf::ScanfSpecifier::getArgType(), clang::ento::SMTConv::getBinExpr(), getItaniumDynamicCastFn(), getPreferredTypeAlign(), getPreferredTypeOfBinaryRHS(), and performTypeAdjustment().
|
inline |
Definition at line 1525 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), getPointerType(), and clang::T.
Return the uniqued reference to the type for a pointer to the specified type.
getPointerType - Return the uniqued reference to the type for a pointer to the specified type.
Definition at line 3916 of file ASTContext.cpp.
References getCanonicalType(), getPointerType(), New, clang::PointerType::Profile(), and clang::T.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addAppendMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addConsumeMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromImplicitBinding(), addFunctionPointerConversion(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleAccessFunction(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding(), adjustCVQualifiersForCXXThisWithinLambda(), buildMemcpyForAssignmentOp(), builtinAllocaAddrSpace(), BuiltinCallWithStaticChain(), BuiltinLaunder(), clang::hlsl::BuiltinTypeMethodBuilder::callBuiltin(), castValueFromUintptr(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::SemaHLSL::CheckBuiltinFunctionCall(), checkConditionalBlockPointerCompatibility(), checkConditionalObjectPointersCompatibility(), checkConditionalPointerCompatibility(), clang::checkGenericCastToPtr(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), CheckOperatorDeleteDeclaration(), clang::checkPipePacketType(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::ento::ExprEngine::computeObjectUnderConstruction(), clang::ento::SValBuilder::conjureSymbolVal(), clang::SYCLUniqueStableNameExpr::Create(), clang::SYCLUniqueStableNameExpr::CreateEmpty(), CreateFunctionRefExpr(), clang::CStyleCastPtrExpr(), clang::CIRGen::CIRGenTypes::deriveThisType(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), emitDeclTargetVarDeclLValue(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaCallOpBody(), clang::CodeGen::CodeGenFunction::EmitLambdaStaticInvokeBody(), clang::CodeGen::CodeGenFunction::EmitOMPUseDeviceAddrClause(), clang::CodeGen::CGOpenMPRuntimeGPU::emitParallelCall(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), EvaluateAsStringImpl(), EvaluateBooleanTypeTrait(), clang::Sema::FindCompositePointerType(), GeneralizeType(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), getArrayDecayedType(), getBlockDescriptorExtendedType(), getCanonicalParamType(), getCFConstantStringDecl(), getCommonNonSugarTypeNode(), clang::ento::SValBuilder::getCXXThis(), getDecayedType(), getDeclAlign(), clang::TypeName::getFullyQualifiedType(), getGlobalStreamPointerByName(), clang::ento::CXXInstanceCall::getInitialStackFrameContents(), clang::ento::FunctionCodeRegion::getLocationType(), clang::ento::TypedValueRegion::getLocationType(), getObjCGCQualType(), getObjCSelDecl(), getPointerType(), getPointerType(), getPreferredTypeOfUnaryArg(), GetTypeOfFunction(), getVariableArrayDecayedType(), GetVTablePointer(), handleCleanupAttr(), handleMSPointerTypeQualifierAttr(), HandleWebAssemblyFuncrefAttr(), InitBuiltinTypes(), IsStandardConversion(), LookupMemberExpr(), LookupStdSourceLocationImpl(), mergeTypes(), NoteSurrogateCandidate(), clang::CodeGen::CodeGenFunction::processInReduction(), recordFixedType(), RemoveAddressSpaceFromPtr(), removePtrSizeAddrSpace(), ResolveOverloadForDeduction(), tryObjCWritebackConversion(), clang::ConversionFixItGenerator::tryToFixConversion(), clang::ento::ExprEngine::VisitCast(), and clang::ento::ExprEngine::VisitDeclStmt().
StringLiteral * ASTContext::getPredefinedStringLiteralFromCache | ( | StringRef | Key | ) | const |
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.
Definition at line 13476 of file ASTContext.cpp.
References CharTy, clang::StringLiteral::Create(), getStringLiteralArrayType(), clang::Ordinary, and clang::Result.
Referenced by clang::SourceLocExpr::EvaluateInContext().
QualType ASTContext::getPredefinedSugarType | ( | PredefinedSugarType::Kind | KD | ) | const |
Definition at line 5210 of file ASTContext.cpp.
References ASTContext(), clang::Default, getCanonicalType(), clang::TargetInfo::getPtrDiffType(), clang::TargetInfo::getSignedSizeType(), clang::TargetInfo::getSizeType(), Idents, and New.
Referenced by getPointerDiffType(), getSignedSizeType(), and getSizeType().
getPreferredTypeAlign - Return the "preferred" alignment of the specified type 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.)
Definition at line 2681 of file ASTContext.cpp.
References clang::TypeInfo::Align, clang::TypeInfo::AlignRequirement, getASTRecordLayout(), getPointerDiffType(), getPreferredTypeAlign(), getTypeInfo(), getTypeSize(), clang::TypeInfo::isAlignRequired(), clang::Decl::isInvalidDecl(), clang::RequiredByTypedef, clang::T, and toBits().
Return the "preferred" alignment of the specified type 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.)
Definition at line 2707 of file ASTContext.h.
References getPreferredTypeAlign(), and clang::T.
Referenced by AlignOfType(), getAlignOfGlobalVar(), GetAlignOfType(), getDeclAlign(), getPreferredTypeAlign(), getPreferredTypeAlign(), getPreferredTypeAlignInChars(), and getTypeAlignIfKnown().
Return the PreferredAlignment of a (complete) type T
, in characters.
Definition at line 2675 of file ASTContext.h.
References getPreferredTypeAlign(), clang::T, and toCharUnitsFromBits().
Definition at line 1154 of file ASTContext.h.
References clang::Result.
Referenced by clang::getPrimaryMergedDecl().
|
inline |
Definition at line 790 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenTypes::addRecordTypeName(), addStaticToLambdaDeclSpecifier(), annotateConsumedSummaryMismatch(), checkTypeParamListConsistency(), convertCallArgsToString(), clang::ExtractAPIAction::CreateASTConsumer(), clang::WrappingExtractAPIAction::CreateASTConsumer(), clang::Decl::dump(), clang::ento::CallEvent::dump(), clang::DeclContext::dumpDeclContext(), clang::Expr::EvaluateWithSubstitution(), generateDiagnosticsForCallLike(), clang::extractapi::impl::ExtractAPIVisitorBase< std::conditional_t< std::is_same_v< Derived, void >, ExtractAPIVisitor<>, Derived > >::getBases(), clang::GetFullTypeName(), getStdTrait(), getTupleLikeElementType(), clang::Expr::isPotentialConstantExpr(), isTupleLike(), isTypeIgnoredBySanitizer(), clang::ento::Environment::printJson(), printObjectsUnderConstructionJson(), clang::APValue::printPretty(), QualTypeToString(), clang::TextNodeDumper::VisitUnresolvedUsingTypenameDecl(), clang::TextNodeDumper::VisitUnresolvedUsingValueDecl(), clang::JSONNodeDumper::VisitUsingDecl(), and clang::TextNodeDumper::VisitUsingDecl().
QualType ASTContext::getProcessIDType | ( | ) | const |
Return the unique type for "pid_t" defined in <sys/types.h>.
We need this to compute the correct type for vfork().
Definition at line 7012 of file ASTContext.cpp.
|
inline |
Definition at line 910 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenModule::isFunctionBlockedByProfileList().
Return the type that PromotableType
will promote to: C99 6.3.1.1p2, assuming that PromotableType
is a promotable integer type.
getPromotedIntegerType - Returns the type that Promotable will promote to: C99 6.3.1.1p2, assuming that Promotable is a promotable integer type.
Definition at line 8285 of file ASTContext.cpp.
References clang::Type::getAs(), clang::Type::getAsEnumDecl(), getIntWidth(), getTypeSize(), IntTy, clang::QualType::isNull(), isPromotableIntegerType(), clang::Type::isSignedIntegerType(), clang::Type::isUnsignedIntegerType(), LongLongTy, LongTy, UnsignedIntTy, UnsignedLongLongTy, and UnsignedLongTy.
Referenced by checkArithmeticOrEnumeralThreeWayCompare(), clang::ento::SMTConv::doIntTypeConversion(), and isArithmeticArgumentPromotion().
TemplateName ASTContext::getQualifiedTemplateName | ( | NestedNameSpecifier | Qualifier, |
bool | TemplateKeyword, | ||
TemplateName | Template ) const |
Retrieve the template name that represents a qualified template name such as std::vector
.
Definition at line 10376 of file ASTContext.cpp.
References NestedNameSpecifier, clang::QualifiedTemplateName::Profile(), clang::Template, clang::TemplateName::Template, clang::TemplateName, and clang::TemplateName::UsingTemplate.
Referenced by clang::TypeName::getFullyQualifiedTemplateName(), clang::TypeName::getFullyQualifiedTemplateType(), getInjectedTemplateArg(), and resolveAssumedTemplateNameAsType().
|
inline |
Return a type with additional qualifiers.
Definition at line 2447 of file ASTContext.h.
References clang::Qualifiers::getFastQualifiers(), clang::Qualifiers::hasNonFastQualifiers(), and clang::T.
|
inline |
Return a type with additional qualifiers.
Definition at line 2438 of file ASTContext.h.
References clang::Qualifiers::getFastQualifiers(), clang::Qualifiers::hasNonFastQualifiers(), clang::QualifierCollector::strip(), and clang::T.
|
inline |
Un-split a SplitQualType.
Definition at line 2433 of file ASTContext.h.
References getQualifiedType(), clang::SplitQualType::Quals, and clang::SplitQualType::Ty.
Referenced by BuildImplicitBaseInitializer(), checkARCPropertyImpl(), checkBlockPointerTypesForAssignment(), checkComplexDecomposition(), checkConditionalObjectPointersCompatibility(), checkConditionalPointerCompatibility(), clang::checkGenericCastToPtr(), checkMemberDecomposition(), checkVectorDecomposition(), CompareStandardConversionSequences(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::FindCompositePointerType(), getArrayDecayedType(), getAsArrayType(), getBaseElementType(), getCanonicalFunctionResultType(), getCommonSugaredType(), getCommonSugarTypeNode(), getConstantArrayType(), getCVRQualifiedType(), getDependentSizedArrayType(), clang::TypeName::getFullyQualifiedType(), getIncompleteArrayType(), getLifetimeQualifiedType(), getNonMemoryType(), getPointerAuthType(), getQualifiedType(), getUnconstrainedType(), getUnqualifiedObjCPointerType(), getVariableArrayDecayedType(), getVariableArrayType(), handleObjCOwnershipTypeAttr(), inferARCLifetimeForPointee(), inferARCWriteback(), InitBuiltinTypes(), isStdClassTemplate(), isSubstitutedType(), LookupMemberExpr(), RemoveAddressSpaceFromPtr(), transferARCOwnershipToDeclSpec(), TryObjectArgumentInitialization(), TryReferenceInitializationCore(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), and withoutUnaligned().
|
inline |
Get the structure type used to representation CFStrings, or NULL if it hasn't yet been built.
Definition at line 2097 of file ASTContext.h.
References getTypedefType(), and clang::None.
const RawComment * ASTContext::getRawCommentForAnyRedecl | ( | const Decl * | D, |
const Decl ** | OriginalDecl = nullptr ) const |
Return the documentation comment attached to a given declaration.
Returns nullptr if no comment is attached.
OriginalDecl | if not nullptr, is set to declaration AST node that had the comment, if the comment we found comes from a redeclaration. |
Definition at line 424 of file ASTContext.cpp.
References adjustDeclToTemplate(), cacheRawCommentForDecl(), CommentlessRedeclChains, DeclRawComments, clang::Decl::getCanonicalDecl(), getRawCommentForDeclNoCache(), RedeclChainComments, and clang::Decl::redecls().
Referenced by getCommentForDecl(), clang::getCompletionComment(), clang::getParameterComment(), and clang::getPatternCompletionComment().
RawComment * ASTContext::getRawCommentForDeclNoCache | ( | const Decl * | D | ) | const |
Return the documentation comment attached to a given declaration, without looking into cache.
Definition at line 315 of file ASTContext.cpp.
References Comments, CommentsLoaded, ExternalSource, clang::File, getDeclLocsForCommentSearch(), and getRawCommentForDeclNoCacheImpl().
Referenced by clang::tooling::getAssociatedRange(), getLocalCommentForDeclUncached(), and getRawCommentForAnyRedecl().
RawComment * ASTContext::getRawCommentForDeclNoCacheImpl | ( | const Decl * | D, |
const SourceLocation | RepresentativeLocForDecl, | ||
const std::map< unsigned, RawComment * > & | CommentsInFile ) const |
CommentsInFile
for doc comment for D
.RepresentativeLocForDecl
is used as a location for searching doc comments. CommentsInFile
is a mapping offset -> comment of files in the same file where RepresentativeLocForDecl
is.
Definition at line 237 of file ASTContext.cpp.
References Comments, clang::Invalid, clang::isa(), clang::RawComment::isDocumentation(), clang::SourceLocation::isFileID(), clang::SourceLocation::isInvalid(), clang::RawComment::isTrailingComment(), and clang::Text.
Referenced by attachCommentsToJustParsedDecls(), and getRawCommentForDeclNoCache().
Return a read_only pipe type for the specified type.
Definition at line 5168 of file ASTContext.cpp.
References clang::T.
QualType ASTContext::getRealTypeForBitwidth | ( | unsigned | DestWidth, |
FloatModeKind | ExplicitType ) const |
getRealTypeForBitwidth - sets floating point QualTy according to specified bitwidth.
Returns empty type if there is no appropriate target types.
Definition at line 13304 of file ASTContext.cpp.
References clang::Double, DoubleTy, clang::Float, clang::Float128, Float128Ty, FloatTy, clang::TargetInfo::getRealTypeByWidth(), getTargetInfo(), clang::Half, HalfTy, clang::Ibm128, Ibm128Ty, clang::LongDouble, LongDoubleTy, and clang::NoFloat.
getReferenceQualifiedType - Given an expr, will return the type for that expression, as in [dcl.type.simple]p4 but without taking id-expressions and class member access into account.
Definition at line 6633 of file ASTContext.cpp.
References getLValueReferenceType(), getRValueReferenceType(), clang::Expr::getType(), clang::Expr::getValueKind(), clang::T, clang::VK_LValue, clang::VK_PRValue, and clang::VK_XValue.
Referenced by diagnoseUnsatisfiedRequirement(), clang::ObjCMessageExpr::getCallReturnType(), and clang::ento::CallEvent::getResultType().
std::optional< ASTContext::CXXRecordDeclRelocationInfo > ASTContext::getRelocationInfoForCXXRecord | ( | const CXXRecordDecl * | RD | ) | const |
Definition at line 1693 of file ASTContext.cpp.
References CXXRecordDecl, and clang::CXXRecordDecl::getDefinition().
Referenced by IsCXXReplaceableType().
Return the uniqued reference to the type for a restrict
qualified type.
The resulting type has a union of the qualifiers from T
and restrict
.
Definition at line 1438 of file ASTContext.h.
References clang::Qualifiers::Restrict, and clang::T.
Return the uniqued reference to the type for an rvalue reference to the specified type.
getRValueReferenceType - Return the uniqued reference to the type for an rvalue reference to the specified type.
Definition at line 4113 of file ASTContext.cpp.
References getCanonicalType(), getRValueReferenceType(), New, clang::ReferenceType::Profile(), and clang::T.
Referenced by alignReferenceTypes(), DeduceNonTypeTemplateArgument(), DiagnoseNonAssignableReason(), DiagnoseNonConstructibleReason(), EvaluateBooleanTypeTrait(), getAutoRRefDeductType(), getCommonNonSugarTypeNode(), clang::TypeName::getFullyQualifiedType(), getReferenceQualifiedType(), getRValueReferenceType(), getVariableArrayDecayedType(), clang::ento::ExprEngine::handleLValueBitCast(), lookupPromiseType(), NoteSurrogateCandidate(), and clang::InitializationSequence::Perform().
QualType ASTContext::getScalableVectorType | ( | QualType | EltTy, |
unsigned | NumElts, | ||
unsigned | NumFields = 1 ) const |
Return the unique reference to a scalable vector type of the specified element type and scalable number of elements.
getScalableVectorType - Return the unique reference to a scalable vector type of the specified element type and size.
For RISC-V, number of fields is also provided when it fetching for tuple type.
EltTy
must be a built-in type.VectorType must be a built-in type.
Definition at line 4586 of file ASTContext.cpp.
References getTypeSize().
Referenced by checkSizelessVectorShift().
size_t ASTContext::getSideTableAllocatedMemory | ( | ) | const |
Return the total memory used for various side tables.
Definition at line 13272 of file ASTContext.cpp.
|
inline |
Retrieve the C sigjmp_buf type.
Definition at line 2239 of file ASTContext.h.
References getTypeDeclType(), and clang::None.
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.
Definition at line 8032 of file ASTContext.cpp.
References getAdjustedParameterType(), getVariableArrayDecayedType(), and clang::T.
Referenced by encodeTypeForFunctionPointerAuth().
QualType ASTContext::getSignedSizeType | ( | ) | const |
Return the unique signed counterpart of the integer type corresponding to size_t.
Definition at line 6961 of file ASTContext.cpp.
References getPredefinedSugarType(), and clang::Type::SignedSizeT.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType(), and lowerArrayDtorCtorIntoLoop().
QualType ASTContext::getSignedWCharType | ( | ) | const |
Return the type of "signed wchar_t".
getSignedWCharType - Return the type of "signed wchar_t".
Used when in C++, as a GCC extension.
Definition at line 6990 of file ASTContext.cpp.
References WCharTy.
Referenced by getCorrespondingSignedType().
QualType ASTContext::getSizeType | ( | ) | const |
Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>.
getSizeType - Return the unique type for "size_t" (C99 7.17), the result of the sizeof operator (C99 6.5.3.4p4).
The sizeof operator requires this (C99 6.5.3.4p4).
The value is target dependent and needs to agree with the definition in <stddef.h>.
Definition at line 6951 of file ASTContext.cpp.
References getPredefinedSugarType(), and clang::Type::SizeT.
Referenced by actOnOMPReductionKindClause(), buildMemcpyForAssignmentOp(), buildSingleCopyAssignRecursively(), BuiltinTriviallyRelocate(), checkArraySize(), clang::checkOpenCLEnqueueLocalSizeArgs(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteTypes(), checkTupleLikeDecomposition(), DeduceFromInitializerList(), DeduceTemplateArgumentsByTypeMatch(), diagnoseListInit(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), emitReduceCombFunction(), emitReduceFiniFunction(), emitReduceInitFunction(), emitStructSetterCall(), EvaluateAsStringImpl(), clang::CallExpr::evaluateBytesReturnedByAllocSizeCall(), EvaluateSizeTTypeTrait(), clang::analyze_scanf::ScanfSpecifier::getArgType(), clang::Sema::GetDecompositionElementCount(), getIndex(), getPointerAndSize(), getTupleLikeElementType(), clang::ento::SymbolExtent::getType(), libc_func_matchers::hasUnsafeFormatOrSArg(), isNonPlacementDeallocationFunction(), isStandardRealloc(), clang::FunctionDecl::isUsableAsGlobalAllocationFunctionInConstantEvaluation(), matchesStlAllocatorFn(), clang::InitializationSequence::Perform(), TryInitializerListConstruction(), and TryListConversion().
|
inline |
Definition at line 798 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenModule::AddDeferredUnusedCoverageMapping(), clang::StmtSequence::contains(), createDataFixit(), createOverloadsForFixedParams(), clang::tooling::createRenameAtomicChanges(), createSpanTypeForVarDecl(), disambiguateSpellingInScope(), clang::Decl::dump(), clang::LocationContext::dumpStack(), clang::CodeGen::CodeGenModule::EmitAnnotationLineNo(), clang::CodeGen::CodeGenModule::EmitAnnotationUnit(), emitBody(), clang::CodeGen::CodeGenFunction::EmitCheckSourceLocation(), emitMappingInformation(), emitTargetTeamsLoopCodegenStatus(), clang::CodeGen::CGOpenMPRuntime::emitUpdateLocation(), clang::SourceLocExpr::EvaluateInContext(), fixLocalVarDeclWithSpan(), fixParamWithSpan(), fixUPCAddressofArraySubscriptWithSpan(), fixVarDeclWithArray(), FixVarInitializerWithSpan(), GenerateFixForUnusedDecl(), getAsmSrcLocInfo(), getEnclosingStmtLocation(), getEntryInfoFromPresumedLoc(), getFixIts(), DerefSimplePtrArithFixableGadget::getFixits(), UPCPreIncrementGadget::getFixits(), UUCAddAssignGadget::getFixits(), clang::AnalysisDeclContext::getFunctionName(), getGlobalStreamPointerByName(), getIdentStringFromSourceLocation(), getLiteralInfo(), clang::CIRGen::CIRGenFunction::getLoc(), clang::FunctionDecl::getReturnTypeSourceRange(), clang::ento::AnalysisManager::getSourceManager(), clang::Sema::GloballyUniqueObjectMightBeAccidentallyDuplicated(), isForbiddenTypeAllowed(), clang::ento::AnalysisManager::isInCodeFile(), isStandardDelete(), isStandardNew(), makeLocation(), clang::LocationContext::printJson(), clang::CodeGen::CodeGenModule::printPostfixForExternalizedDecl(), and timeTraceMetadata().
|
inline |
Definition at line 799 of file ASTContext.h.
Definition at line 13363 of file ASTContext.cpp.
Return a type for a constant array for a string literal of the specified element type and length.
Definition at line 13461 of file ASTContext.cpp.
References adjustStringLiteralBaseType(), clang::CPlusPlus, getConstantArrayType(), getLangOpts(), clang::Normal, and clang::QualType::withConst().
Referenced by getPredefinedStringLiteralFromCache().
QualType ASTContext::getSubstBuiltinTemplatePack | ( | const TemplateArgument & | ArgPack | ) |
Definition at line 5873 of file ASTContext.cpp.
References getCanonicalTemplateArgument(), getSubstBuiltinTemplatePack(), clang::TemplateArgument::pack_elements(), clang::TemplateArgument::structurallyEquals(), and clang::T.
Referenced by getSubstBuiltinTemplatePack().
TemplateName ASTContext::getSubstTemplateTemplateParm | ( | TemplateName | replacement, |
Decl * | AssociatedDecl, | ||
unsigned | Index, | ||
UnsignedOrNone | PackIndex, | ||
bool | Final ) const |
Definition at line 10422 of file ASTContext.cpp.
References clang::SubstTemplateTemplateParmStorage::Profile(), and clang::TemplateName.
TemplateName ASTContext::getSubstTemplateTemplateParmPack | ( | const TemplateArgument & | ArgPack, |
Decl * | AssociatedDecl, | ||
unsigned | Index, | ||
bool | Final ) const |
Definition at line 10445 of file ASTContext.cpp.
References ASTContext(), clang::TemplateArgument::pack_elements(), clang::SubstTemplateTemplateParmPackStorage::Profile(), clang::Self, and clang::TemplateName.
Referenced by getCanonicalTemplateName(), and clang::TreeTransform< AdjustConstraintDepth >::RebuildTemplateName().
QualType ASTContext::getSubstTemplateTypeParmPackType | ( | Decl * | AssociatedDecl, |
unsigned | Index, | ||
bool | Final, | ||
const TemplateArgument & | ArgPack ) |
Definition at line 5835 of file ASTContext.cpp.
References clang::Decl::getCanonicalDecl(), getCanonicalTemplateArgument(), getSubstTemplateTypeParmPackType(), clang::Decl::isCanonicalDecl(), clang::TemplateArgument::pack_elements(), clang::TemplateArgument::structurallyEquals(), and clang::TemplateArgument::Type.
Referenced by getSubstTemplateTypeParmPackType().
QualType ASTContext::getSubstTemplateTypeParmType | ( | QualType | Replacement, |
Decl * | AssociatedDecl, | ||
unsigned | Index, | ||
UnsignedOrNone | PackIndex, | ||
bool | Final ) const |
Retrieve a substitution-result type.
Definition at line 5809 of file ASTContext.cpp.
References Allocate().
Referenced by getCommonSugarTypeNode().
const SYCLKernelInfo & ASTContext::getSYCLKernelInfo | ( | QualType | T | ) | const |
Given a type used as a SYCL kernel name, returns a reference to the metadata generated from the corresponding SYCL kernel entry point.
Aborts if the provided type is not a registered SYCL kernel name.
Definition at line 15062 of file ASTContext.cpp.
References getCanonicalType(), SYCLKernels, and clang::T.
Referenced by clang::SemaSYCL::BuildSYCLKernelCallStmt().
QualType ASTContext::getTagType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
const TagDecl * | TD, | ||
bool | OwnsTag ) const |
Definition at line 5491 of file ASTContext.cpp.
References getCanonicalTagType(), clang::KeywordHelpers::getKeywordForTagTypeKind(), getLangOpts(), getNonInjectedClassName(), clang::TagDecl::getTagKind(), clang::CanQual< T >::getTypePtr(), clang::Keyword, NestedNameSpecifier, clang::None, and clang::T.
Referenced by getCommonNonSugarTypeNode(), clang::TypeName::getFullyQualifiedTemplateType(), and getTypeDeclType().
Definition at line 13600 of file ASTContext.cpp.
References clang::TargetInfo::getTargetAddressSpace(), and getTargetInfo().
Referenced by clang::Sema::BuildCallExpr(), buildGlobalBlock(), castStringLiteralToDefaultAddressSpace(), clang::SemaAMDGPU::checkCoopAtomicFunctionCall(), createReferenceTemporary(), clang::CodeGen::CodeGenModule::createUnnamedGlobalFrom(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), EmitDeclDestroy(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenModule::EmitOMPAllocateDecl(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), GenerateStringLiteral(), clang::CodeGen::CodeGenModule::GetAddrOfGlobalTemporary(), clang::CodeGen::CodeGenModule::getBlockDescriptorType(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), and clang::CodeGen::CodeGenTypes::getTargetAddressSpace().
unsigned ASTContext::getTargetDefaultAlignForAttributeAligned | ( | ) | const |
Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified.
getTargetDefaultAlignForAttributeAligned - Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified.
Definition at line 2733 of file ASTContext.cpp.
References clang::TargetInfo::getDefaultAlignForAttributeAligned(), and getTargetInfo().
|
inline |
Definition at line 856 of file ASTContext.h.
Referenced by clang::SemaHLSL::ActOnTopLevelFunction(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), AtomicUsesUnsupportedLibcall(), clang::Sema::BuildBitIntType(), canBuiltinBeRedeclared(), canPassInRegisters(), clang::ento::SMTConstraintManager::canReasonAbout(), captureInLambda(), ChangeIntegralSignedness(), CheckBuiltinTargetInSupported(), CheckBuiltinTargetNotInUnsupported(), CheckDeclarationCausesMultiVersioning(), checkDLLAttributeRedeclaration(), clang::SemaHLSL::CheckEntryPoint(), CheckFormatString(), checkForMultipleExportedDefaultConstructors(), checkInheritableAttr(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionAdditionalRules(), CheckMultiVersionFunction(), CheckMultiVersionValue(), checkObjCMethodX86VectorTypes(), clang::interp::CheckPointerToIntegralCast(), checkVAStartABI(), clang::analyze_os_log::computeOSLogBufferLayout(), ConvertDeclSpecToType(), clang::AvailabilityInfo::createFromDecl(), DeclMustBeEmitted(), DetectPrecisionLossInComplexDivision(), DiagnoseObjCImplementedDeprecations(), clang::Sema::diagnoseUnavailableAlignedAllocation(), clang::interp::DoBitCast(), clang::interp::DoBitCastPtr(), DoEmitAvailabilityWarning(), DumpRecordLayout(), clang::CodeGen::CodeGenFunction::EmitAArch64MultiVersionResolver(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CIRGen::CIRGenFunction::emitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitMultiVersionResolver(), clang::CodeGen::CodeGenFunction::EmitRISCVMultiVersionResolver(), clang::CodeGen::CodeGenFunction::EmitX86MultiVersionResolver(), clang::SourceLocExpr::EvaluateInContext(), clang::HLSLFrontendAction::ExecuteAction(), clang::DeclSpec::Finish(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), funcHasParameterSizeMangling(), clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), clang::ASTNameGenerator::Implementation::getAllManglings(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getASTRecordLayout(), getCCForDeclaratorChunk(), getCreateFlagValue(), getCurrentKeyFunction(), getCXXABIKind(), getDeclAlign(), getDefaultCallingConvention(), getFixedPointIBits(), getFixedPointScale(), getFixedPointSemantics(), GetFullTypeForDeclarator(), getInstrProfSection(), getIntTypeForBitwidth(), getLangASForBuiltinAddressSpace(), clang::CodeGen::swiftcall::getMaximumVoluntaryIntegerSize(), getMinGlobalAlignOfVar(), getOpenMPDefaultSimdAlign(), getRealTypeForBitwidth(), getTargetAddressSpace(), getTargetDefaultAlignForAttributeAligned(), getTargetNullPointerValue(), getTypeInfoLinkage(), handleAliasAttr(), HandleArmSveVectorBitsTypeAttr(), handleAvailabilityAttr(), handleBuiltinAliasAttr(), handleCodeModelAttr(), handleCPUSpecificAttr(), handleDeclspecThreadAttr(), handleDeviceKernelAttr(), handleDLLAttr(), clang::SemaARM::handleInterruptAttr(), handleInterruptAttr(), handleMSPointerTypeQualifierAttr(), handleNakedAttr(), HandleNeonVectorTypeAttr(), clang::SemaHLSL::handleNumThreadsAttr(), handlePackedAttr(), handlePatchableFunctionEntryAttr(), HandleRISCVRVVVectorBitsTypeAttr(), handleTargetClonesAttr(), handleTargetVersionAttr(), handleVisibilityAttr(), handleWeakImportAttr(), hasNewExtendedAlignment(), libc_func_matchers::hasUnsafeFormatOrSArg(), higherPrecisionElementTypeForComplexArithmetic(), InitDeviceMC(), clang::CodeGen::initializationPatternFor(), clang::interp::interp__builtin_atomic_lock_free(), clang::interp::interp__builtin_c11_atomic_is_lock_free(), clang::interp::interp__builtin_eh_return_data_regno(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_nan(), isArc4RandomAvailable(), isDefaultStdCall(), clang::installapi::isInlined(), clang::CodeGen::swiftcall::isLegalIntegerType(), isMSStaticDataMemberInlineDefinition(), clang::FunctionDecl::isMSVCRTEntryPoint(), isNonViableMultiVersionOverload(), isPermittedNeonBaseType(), isStdBuiltin(), clang::Qualifiers::isTargetAddressSpaceSupersetOf(), isVarDeclStrongDefinition(), IsVectorConversion(), clang::FieldDecl::isZeroSize(), clang::MangleContext::mangleName(), MarkBaseDestructorsReferenced(), clang::SemaHLSL::mergeVkConstantIdAttr(), MultiVersionTypesCompatible(), needsConversionOfHalfVec(), parseModeAttrArg(), patchDefaultTargetVersion(), ProcessDeclAttribute(), ProcessStmtAttribute(), clang::interp::readPointerToBuffer(), ReferenceDllExportedMembers(), repeatForLambdaConversionFunctionCallingConvs(), ShouldDiagnoseAvailabilityInContext(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::TargetOMPContext::TargetOMPContext(), and clang::QualType::UseExcessPrecision().
uint64_t ASTContext::getTargetNullPointerValue | ( | QualType | QT | ) | const |
Get target-dependent integer value for null pointer which is used for constant folding.
Definition at line 13590 of file ASTContext.cpp.
References clang::Default, clang::QualType::getAddressSpace(), clang::TargetInfo::getNullPointerValue(), clang::Type::getPointeeType(), getTargetInfo(), clang::Type::getUnqualifiedDesugaredType(), and clang::Type::isNullPtrType().
Referenced by clang::APValue::toIntegralConstant().
ASTContext::TemplateOrSpecializationInfo ASTContext::getTemplateOrSpecializationInfo | ( | const VarDecl * | Var | ) |
Definition at line 1555 of file ASTContext.cpp.
Referenced by getInstantiatedFromStaticDataMember(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl(), and clang::installapi::InstallAPIVisitor::VisitVarDecl().
TemplateParamObjectDecl * ASTContext::getTemplateParamObjectDecl | ( | QualType | T, |
const APValue & | V ) const |
Return the template parameter object of the given type with the given value.
Definition at line 13521 of file ASTContext.cpp.
References New, clang::TemplateParamObjectDecl::Profile(), clang::T, and V.
Referenced by getAsSimpleValueDeclRef().
QualType ASTContext::getTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
TemplateName | T, | ||
ArrayRef< TemplateArgument > | SpecifiedArgs, | ||
ArrayRef< TemplateArgument > | CanonicalArgs, | ||
QualType | Underlying = QualType() ) const |
Definition at line 6027 of file ASTContext.cpp.
References Allocate(), canonicalizeTemplateArguments(), clang::TemplateName::getAsDependentTemplateName(), getCanonicalElaboratedTypeKeyword(), getCanonicalTemplateName(), getCanonicalTemplateSpecializationType(), hasAnyPackExpansions(), clang::QualType::isNull(), clang::Keyword, clang::None, clang::TemplateArgument::structurallyEquals(), and clang::Template.
Referenced by getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), clang::TypeName::getFullyQualifiedTemplateType(), clang::TypeName::getFullyQualifiedTemplateType(), getTemplateSpecializationType(), and getTemplateSpecializationTypeInfo().
QualType ASTContext::getTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
TemplateName | T, | ||
ArrayRef< TemplateArgumentLoc > | SpecifiedArgs, | ||
ArrayRef< TemplateArgument > | CanonicalArgs, | ||
QualType | Canon = QualType() ) const |
Definition at line 5974 of file ASTContext.cpp.
References getTemplateSpecializationType(), clang::Keyword, and clang::Template.
TypeSourceInfo * ASTContext::getTemplateSpecializationTypeInfo | ( | ElaboratedTypeKeyword | Keyword, |
SourceLocation | ElaboratedKeywordLoc, | ||
NestedNameSpecifierLoc | QualifierLoc, | ||
SourceLocation | TemplateKeywordLoc, | ||
TemplateName | T, | ||
SourceLocation | TLoc, | ||
const TemplateArgumentListInfo & | SpecifiedArgs, | ||
ArrayRef< TemplateArgument > | CanonicalArgs, | ||
QualType | Canon = QualType() ) const |
Definition at line 5958 of file ASTContext.cpp.
References clang::TemplateArgumentListInfo::arguments(), clang::TypeLoc::castAs(), CreateTypeSourceInfo(), getTemplateSpecializationType(), clang::TypeSourceInfo::getTypeLoc(), and clang::Keyword.
QualType ASTContext::getTemplateTypeParmType | ( | unsigned | Depth, |
unsigned | Index, | ||
bool | ParameterPack, | ||
TemplateTypeParmDecl * | ParmDecl = nullptr ) const |
Retrieve the template type parameter type for a template parameter or parameter pack with the given depth, index, and (optionally) name.
Definition at line 5903 of file ASTContext.cpp.
References getTemplateTypeParmType().
Referenced by getCommonNonSugarTypeNode(), and getTemplateTypeParmType().
|
inline |
Definition at line 1198 of file ASTContext.h.
Referenced by addFunctionPointerConversion(), buildBuiltinTemplateDecl(), buildImplicitRecord(), buildImplicitTypedef(), clang::Sema::BuildModuleInclude(), builtinCommonTypeImpl(), checkGlobalOrExternCConflict(), configureBlocksRuntimeObject(), CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), clang::Sema::createImplicitModuleImportForErrorRecovery(), DiagnoseNonAssignableReason(), DiagnoseNonConstructibleReason(), clang::CodeGen::CodeGenFunction::EmitBuiltinNewDeleteCall(), emitOutlinedFunctionPrologue(), EvaluateBooleanTypeTrait(), clang::ASTMergeAction::ExecuteAction(), clang::IncrementalSyntaxOnlyAction::ExecuteAction(), getCanonicalTemplateTemplateParmDecl(), getExternCContextDecl(), getObjCProtocolDecl(), getObjCSuperType(), clang::hlsl::HandleRootSignatureTarget(), clang::installapi::InstallAPIVisitor::HandleTranslationUnit(), HasNonDeletedDefaultedEqualityComparison(), InitBuiltinTypes(), clang::HLSLExternalSemaSource::InitializeSema(), InventTemplateParameter(), LookupGlobalDeallocationFunctions(), lookupStdNamespace(), makeLocation(), clang::ExternalASTMerger::MaybeRecordOrigin(), resolveAllocationOverloadInterior(), resolveBuiltinNewDeleteOverload(), and clang::RecursiveASTVisitor< RecursiveSymbolVisitor< T > >::TraverseAST().
Definition at line 783 of file ASTContext.h.
TypeSourceInfo * ASTContext::getTrivialTypeSourceInfo | ( | QualType | T, |
SourceLocation | Loc = SourceLocation() ) const |
Allocate a TypeSourceInfo where all locations have been initialized to a given location, which defaults to the empty location.
Definition at line 3192 of file ASTContext.cpp.
References ASTContext(), CreateTypeSourceInfo(), clang::TypeSourceInfo::getTypeLoc(), clang::TypeLoc::initialize(), and clang::T.
Referenced by clang::SemaOpenMP::ActOnOpenMPDeclareMapperDirectiveVarDecl(), clang::SemaSYCL::ActOnUniqueStableNameExpr(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleMember(), clang::hlsl::BuiltinTypeDeclBuilder::addMemberVariable(), adjustObjCTypeParamBoundType(), buildDistanceFunc(), BuildExpressionFromIntegralTemplateArgumentValue(), BuildImplicitBaseInitializer(), buildImplicitTypedef(), buildPostUpdate(), buildSingleCopyAssignRecursively(), BuildStdClassTemplate(), buildVarDecl(), buildVarDecl(), builtinCommonTypeImpl(), CastForMoving(), castForMoving(), checkBuiltinTemplateIdType(), CheckDeducedPlaceholderConstraints(), checkOpenMPLoop(), createFieldForHostLayoutStruct(), createHostLayoutStruct(), clang::CStyleCastPtrExpr(), clang::hlsl::BuiltinTypeMethodBuilder::declareLocalVar(), emitOutlinedFunctionPrologue(), getCanonicalTemplateTemplateParmDecl(), getDummyLambdaType(), getTypeSourceInfoForStdAlignValT(), handlePreferredName(), clang::ASTImporter::Import(), clang::TypeOfTypeLoc::initializeLocal(), clang::UnaryTransformTypeLoc::initializeLocal(), lookupCoroutineHandleType(), lookupPromiseType(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), ProcessAPINotes(), RebuildDeclaratorInCurrentInstantiation(), and translateTemplateArgument().
Definition at line 2648 of file ASTContext.h.
References clang::TypeInfo::Align, getTypeInfo(), and clang::T.
Return the ABI-specified alignment of a (complete) type T
, in bits.
Definition at line 2647 of file ASTContext.h.
References clang::TypeInfo::Align, getTypeInfo(), and clang::T.
Referenced by clang::CodeGen::CGOpenMPRuntime::emitPrivateReduction(), getTypeAlignIfKnown(), getTypeAlignInChars(), getTypeAlignInChars(), getTypeUnadjustedAlign(), handlePackedAttr(), clang::SemaHLSL::handlePackOffsetAttr(), handleTransparentUnionAttr(), and mergeAlignedAttrs().
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.
Definition at line 2024 of file ASTContext.cpp.
References getBaseElementType(), getPreferredTypeAlign(), getTypeAlign(), and clang::T.
Referenced by hasNewExtendedAlignment(), and isVarDeclStrongDefinition().
Definition at line 2662 of file ASTContext.cpp.
References getTypeAlign(), clang::T, and toCharUnitsFromBits().
Return the ABI-specified alignment of a (complete) type T
, in characters.
getTypeAlignInChars - Return the ABI-specified alignment of a type, in characters.
This method does not work on incomplete types.
Definition at line 2659 of file ASTContext.cpp.
References getTypeAlign(), clang::T, and toCharUnitsFromBits().
Referenced by AlignOfType(), AtomicUsesUnsupportedLibcall(), classifyType(), clang::CIRGen::CIRGenFunction::createDummyValue(), clang::CodeGen::CodeGenFunction::CreateIRTemp(), createReferenceTemporary(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::FlattenAccessAndType(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenModule::GetAddrOfGlobalTemporary(), clang::CodeGen::CodeGenModule::GetAddrOfUnnamedGlobalConstantDecl(), GetAlignOfType(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), getPresumedAlignmentOfPointer(), clang::interp::interp__builtin_atomic_lock_free(), and clang::SemaOpenMP::isOpenMPCapturedByRef().
Use the normal 'getFooBarType' constructors to obtain these types.
|
delete |
Return the unique reference to the type for the specified type declaration.
Definition at line 5268 of file ASTContext.cpp.
References getCanonicalTagType(), getCanonicalUnresolvedUsingType(), getTypedefType(), and clang::None.
|
delete |
|
delete |
References clang::Keyword, NestedNameSpecifier, and clang::T.
QualType ASTContext::getTypeDeclType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
const TypeDecl * | Decl ) const |
Definition at line 5241 of file ASTContext.cpp.
References getTagType(), getTypedefType(), getUnresolvedUsingType(), clang::Keyword, NestedNameSpecifier, clang::None, and clang::Typedef.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromImplicitBinding(), clang::TypeName::createNestedNameSpecifier(), ExtendNestedNameSpecifier(), clang::diff::SyntaxTree::Impl::getDeclValue(), getFILEType(), getInjectedTemplateArg(), getjmp_bufType(), getsigjmp_bufType(), getTupleLikeElementType(), getucontext_tType(), getUsingType(), and lookupPromiseType().
TypedefNameDecl * ASTContext::getTypedefNameForUnnamedTagDecl | ( | const TagDecl * | TD | ) |
Definition at line 13437 of file ASTContext.cpp.
QualType ASTContext::getTypedefType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
const TypedefNameDecl * | Decl, | ||
QualType | UnderlyingType = QualType(), | ||
std::optional< bool > | TypeMatchesDeclOrNone = std::nullopt ) const |
Return the unique reference to the type for the specified typedef-name decl.
getTypedefType - Return the unique reference to the type for the specified typedef name decl.
FIXME: TypeMatchesDeclOrNone is a workaround for a serialization issue: The decl underlying type might still not be available.
Definition at line 5285 of file ASTContext.cpp.
References Allocate(), hasSameType(), clang::QualType::isNull(), clang::Keyword, NestedNameSpecifier, clang::None, and clang::TypedefType::Profile().
Referenced by CheckExtVectorComponent(), getBOOLType(), getBuiltinMSVaListType(), getBuiltinVaListType(), getCFConstantStringType(), getCommonSugarTypeNode(), clang::TypeName::getFullyQualifiedType(), getObjCClassType(), getObjCIdType(), getObjCInstanceType(), getObjCSelType(), getOpenCLTypedefType(), getRawCFConstantStringType(), getTypeDeclType(), getTypeDeclType(), handleFormatArgAttr(), and clang::RetainTypeChecker::visitTypedef().
Get the size and alignment of the specified complete type in bits.
Definition at line 2049 of file ASTContext.cpp.
References clang::T.
Referenced by getPreferredTypeAlign(), getTypeAlign(), getTypeAlign(), getTypeAlignIfRequired(), getTypeInfoInChars(), getTypeSize(), getTypeSize(), and isAlignmentRequired().
Definition at line 2610 of file ASTContext.h.
References getTypeInfo(), and clang::T.
Referenced by getTypeInfo().
TypeInfoChars ASTContext::getTypeInfoDataSizeInChars | ( | QualType | T | ) | const |
Definition at line 1930 of file ASTContext.cpp.
References clang::CPlusPlus, getASTRecordLayout(), clang::ASTRecordLayout::getDataSize(), getLangOpts(), getTypeInfoInChars(), clang::Decl::isInvalidDecl(), clang::T, and clang::TypeInfoChars::Width.
Referenced by clang::CodeGen::AggValueSlot::getPreferredSize(), HandleSizeof(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
TypeInfoChars ASTContext::getTypeInfoInChars | ( | const Type * | T | ) | const |
Definition at line 1966 of file ASTContext.cpp.
References clang::TypeInfo::Align, clang::TypeInfo::AlignRequirement, getConstantArrayInfoInChars(), getTypeInfo(), clang::T, toCharUnitsFromBits(), and clang::TypeInfo::Width.
Referenced by computeBlockInfo(), clang::CodeGen::EmitVAArgInstr(), getTypeInfoDataSizeInChars(), getTypeInfoInChars(), getTypeSizeInChars(), and getTypeSizeInChars().
TypeInfoChars ASTContext::getTypeInfoInChars | ( | QualType | T | ) | const |
Definition at line 1974 of file ASTContext.cpp.
References getTypeInfoInChars(), and clang::T.
QualType ASTContext::getTypeOfExprType | ( | Expr * | tofExpr, |
TypeOfKind | Kind ) const |
C23 feature and GCC extension.
getTypeOfExprType - Unlike many "get<Type>" functions, we can't unique TypeOfExprType AST's (since expression's are never shared).
For example, multiple declarations that refer to "typeof(x)" all contain different DeclRefExpr's. This doesn't effect the type checker, since it operates on canonical type's (which are always unique).
Definition at line 6586 of file ASTContext.cpp.
References getCanonicalType(), clang::Expr::getType(), clang::Expr::isTypeDependent(), clang::DependentTypeOfExprType::Profile(), and clang::Unqualified.
QualType ASTContext::getTypeOfType | ( | QualType | tofType, |
TypeOfKind | Kind ) const |
getTypeOfType - Unlike many "get<Type>" functions, we don't unique TypeOfType nodes.
The only motivation to unique these nodes would be memory savings. Since typeof(t) is fairly uncommon, space shouldn't be an issue. This doesn't affect the type checker, since it operates on canonical types (which are always unique).
Definition at line 6622 of file ASTContext.cpp.
References getCanonicalType().
Referenced by getCommonSugarTypeNode().
|
inline |
Definition at line 1360 of file ASTContext.h.
|
inline |
Definition at line 2617 of file ASTContext.h.
References getTypeInfo(), clang::T, and clang::TypeInfo::Width.
|
inline |
Return the size of the specified (complete) type T
, in bits.
Definition at line 2616 of file ASTContext.h.
References getTypeInfo(), clang::T, and clang::TypeInfo::Width.
Referenced by areCompatibleRVVTypes(), areLaxCompatibleRVVTypes(), assertEqualBitWidths(), buildMemcpyForAssignmentOp(), buildSingleCopyAssignRecursively(), calculateOffset(), canConvertIntTyToFloatTy(), canElideOverflowCheck(), canPassInRegisters(), ChangeIntegralSignedness(), checkAPINotesReplacementType(), checkAVXParam(), CheckBitcastType(), CheckC23ConstexprInitStringLiteral(), clang::CheckInvalidVLENandLMUL(), checkSizelessVectorShift(), checkVectorResult(), checkVectorShift(), CompareStandardConversionSequences(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseBadShiftValues(), DiagnoseDivisionSizeofPointerOrArray(), DiagnoseForRangeConstVariableCopies(), diagnoseListInit(), clang::ento::SMTConv::doFloatTypeConversion(), clang::ento::SMTConv::doIntTypeConversion(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), EmitAsmStores(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), emitDispatchForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), emitReplacement(), EmitX86BitTestIntrinsic(), enumerateData(), EvaluateAsStringImpl(), clang::CallExpr::evaluateBytesReturnedByAllocSizeCall(), EvaluateComparisonBinaryOperator(), expandStringLiteral(), extractStringLiteralCharacter(), clang::ento::SMTConv::fixAPSInt(), clang::ento::SMTConv::fromData(), getAlignOfGlobalVar(), clang::ento::SMTConv::getAPSIntType(), clang::ento::SMTConv::getCastExpr(), GetCFNumberSize(), getCharWidth(), getDeclAlign(), clang::Sema::GetDecompositionElementCount(), getEnumInfo(), getFieldSize(), getFixedPointSemantics(), getIntWidth(), getPreferredTypeAlign(), getPromotedIntegerType(), getRangeForType(), getScalableVectorType(), clang::ento::SMTConv::getSymExpr(), clang::ento::SMTConstraintManager::getSymVal(), getUnwidenedIntegerType(), clang::ento::SMTConv::getZeroExpr(), HandleArmSveVectorBitsTypeAttr(), HandleNeonVectorTypeAttr(), clang::SemaHLSL::handlePackOffsetAttr(), HandleRISCVRVVVectorBitsTypeAttr(), handleTransparentUnionAttr(), hasUniqueObjectRepresentations(), libc_func_matchers::hasUnsafeFormatOrSArg(), clang::Expr::IgnoreParenNoopCasts(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_overflowop(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), isPromotableBitField(), clang::Type::isSignableIntegerType(), isZeroSized(), lowerArrayDtorCtorIntoLoop(), MakeAtomicCmpXchgValue(), MakeBinaryAtomicValue(), clang::MangleContext::mangleName(), OpenCLConvertScalarsToVectors(), clang::interp::pushInteger(), RecoverCastedSymbol(), rewriteToNumericBoxedExpression(), tryGCCVectorConvertAndSplat(), TryInitializerListConstruction(), and TryListConversion().
Definition at line 2653 of file ASTContext.cpp.
References getTypeInfoInChars(), clang::T, and clang::TypeInfoChars::Width.
Return the size of the specified (complete) type T
, in characters.
getTypeSizeInChars - Return the size of the specified type, in characters.
This method does not work on incomplete types.
Definition at line 2650 of file ASTContext.cpp.
References getTypeInfoInChars(), clang::T, and clang::TypeInfoChars::Width.
Referenced by AtomicUsesUnsupportedLibcall(), buildMemcpyForAssignmentOp(), castValueToType(), CheckAtomicAlignment(), clang::SemaHLSL::CheckBuiltinFunctionCall(), clang::interp::computeFullDescSize(), computeOffset(), clang::interp::computePointerOffset(), clang::interp::DoBitCastPtr(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), emitArraySubscriptGEP(), emitArraySubscriptPtr(), EmitCXXNewAllocSize(), emitCXXNewAllocSize(), EmitDeclInvariant(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), EmitISOVolatileLoad(), EmitISOVolatileStore(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CIRGen::CIRGenFunction::emitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), emitPointerArithmetic(), emitStructGetterCall(), emitStructSetterCall(), encodeTypeForFunctionPointerAuth(), EvaluateComparisonBinaryOperator(), getAlignmentAndOffsetFromBinAddOrSub(), getDerivedSymbolForBinding(), getExceedsMsgs(), clang::VarDecl::getFlexibleArrayInitChars(), getIndex(), clang::CodeGen::CodeGenModule::getMinimumObjectSize(), GetNumNonZeroBytesInInit(), getObjCEncodingForBlock(), getObjCEncodingForMethodDecl(), getObjCEncodingTypeSize(), clang::CodeGen::AggValueSlot::getPreferredSize(), getTypeSizeInCharsIfKnown(), HandleSizeof(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_memcpy(), clang::interp::interp__builtin_operator_new(), clang::interp::interp__builtin_strlen(), clang::interp::InterpretOffsetOf(), isOnePastTheEndOfCompleteObject(), clang::SemaOpenMP::isOpenMPCapturedByRef(), isSafeSpanTwoParamConstruct(), clang::interp::Pointer::toAPValue(), tryToInvalidateFReadBufferByElements(), clang::Value::Value(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Definition at line 2641 of file ASTContext.h.
References getTypeSizeInCharsIfKnown().
Definition at line 2635 of file ASTContext.h.
References getTypeSizeInChars(), clang::Type::isDependentType(), and clang::Type::isIncompleteType().
Referenced by clang::Sema::CheckStaticArrayArgument(), CheckSufficientAllocSize(), getTypeSizeInCharsIfKnown(), and clang::APValue::printPretty().
Definition at line 2612 of file ASTContext.cpp.
References getASTObjCInterfaceLayout(), getASTRecordLayout(), getTypeAlign(), clang::ASTRecordLayout::getUnadjustedAlignment(), clang::T, and toBits().
Return the ABI-specified natural alignment of a (complete) type T
, before alignment adjustments, in bits.
This alignment is currently used only by ARM and AArch64 when passing arguments of a composite type.
Definition at line 2655 of file ASTContext.h.
References getTypeUnadjustedAlign(), and clang::T.
Referenced by getTypeUnadjustedAlign(), getTypeUnadjustedAlignInChars(), and getTypeUnadjustedAlignInChars().
Definition at line 2672 of file ASTContext.cpp.
References getTypeUnadjustedAlign(), clang::T, and toCharUnitsFromBits().
getTypeUnadjustedAlignInChars - Return the ABI-specified alignment of a type, in characters, before alignment adjustments.
This method does not work on incomplete types.
Definition at line 2669 of file ASTContext.cpp.
References getTypeUnadjustedAlign(), clang::T, and toCharUnitsFromBits().
|
inline |
Retrieve the C ucontext_t type.
Definition at line 2252 of file ASTContext.h.
References getTypeDeclType(), and clang::None.
TypedefDecl * ASTContext::getUInt128Decl | ( | ) | const |
Retrieve the declaration for the 128-bit unsigned integer type.
Definition at line 1264 of file ASTContext.cpp.
References buildImplicitTypedef(), and UnsignedInt128Ty.
CanQualType ASTContext::getUIntMaxType | ( | ) | const |
Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in <stdint.h>.
getUIntMaxType - Return the unique type for "uintmax_t" (C99 7.18.1.5).
Definition at line 6984 of file ASTContext.cpp.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType().
QualType ASTContext::getUIntPtrType | ( | ) | const |
Return a type compatible with "uintptr_t" (C99 7.18.1.4), as defined by the target.
Definition at line 7006 of file ASTContext.cpp.
References getCorrespondingUnsignedType(), and getIntPtrType().
Referenced by castValueFromUintptr(), checkPointerAuthValue(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), getCFConstantStringDecl(), clang::SemaOpenMP::isOpenMPCapturedByRef(), PointerAuthBlendDiscriminator(), and PointerAuthSignGenericData().
QualType ASTContext::getUnaryTransformType | ( | QualType | BaseType, |
QualType | UnderlyingType, | ||
UnaryTransformType::UTTKind | UKind ) const |
Unary type transforms.
getUnaryTransformationType - We don't unique these, since the memory savings are minimal and these are rare.
Definition at line 6727 of file ASTContext.cpp.
References clang::QualType::getCanonicalType(), getUnaryTransformType(), clang::QualType::isCanonical(), and clang::QualType::isNull().
Referenced by getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), and getUnaryTransformType().
Remove any type constraints from a template parameter type, for equivalence comparison of template parameters.
Definition at line 6834 of file ASTContext.cpp.
References clang::Type::getAs(), getAutoType(), clang::Type::getContainedAutoType(), getQualifiedType(), clang::Type::isDependentType(), and clang::T.
Referenced by getCanonicalTemplateTemplateParmDecl(), and MatchTemplateParameterKind().
UnnamedGlobalConstantDecl * ASTContext::getUnnamedGlobalConstantDecl | ( | QualType | Ty, |
const APValue & | Value ) const |
Return a declaration for a uniquified anonymous global constant corresponding to a given APValue.
Definition at line 13504 of file ASTContext.cpp.
References New, and clang::UnnamedGlobalConstantDecl::Profile().
Referenced by clang::SourceLocExpr::EvaluateInContext().
Definition at line 2882 of file ASTContext.h.
References getUnqualifiedArrayType(), and clang::T.
QualType ASTContext::getUnqualifiedArrayType | ( | QualType | T, |
Qualifiers & | Quals ) const |
Return this type as a completely-unqualified array type, capturing the qualifiers in Quals
.
This will remove the minimal amount of sugaring from the types, similar to the behavior of QualType::getUnqualifiedType().
T | is the qualified type, which may be an ArrayType |
Quals | will receive the full set of qualifiers that were applied to the array. |
Definition at line 7040 of file ASTContext.cpp.
References clang::Qualifiers::addConsistentQualifiers(), clang::cast(), clang::Qualifiers::empty(), getConstantArrayType(), getDependentSizedArrayType(), getIncompleteArrayType(), getUnqualifiedArrayType(), clang::Type::getUnqualifiedDesugaredType(), getVariableArrayType(), clang::SplitQualType::Quals, clang::SplitQualType::Ty, and clang::ast_matchers::type.
Referenced by CheckDeductionConsistency(), CompareQualificationConversions(), CompareStandardConversionSequences(), DeduceTemplateArgumentsByTypeMatch(), getUnqualifiedArrayType(), getUnqualifiedArrayType(), hasCvrSimilarType(), hasSimilarType(), isSubstitutedType(), removeAddrSpaceQualType(), TryReferenceInitialization(), TryReferenceListInitialization(), and withoutUnaligned().
getUnqualifiedObjCPointerType - Returns version of Objective-C pointer type with lifetime qualifier removed.
Definition at line 2468 of file ASTContext.h.
References getQualifiedType(), clang::Qualifiers::removeObjCLifetime(), and clang::ast_matchers::type.
Referenced by clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVar(), and clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVarTemplate().
QualType ASTContext::getUnresolvedUsingType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
const UnresolvedUsingTypenameDecl * | D ) const |
Definition at line 5660 of file ASTContext.cpp.
References getCanonicalUnresolvedUsingType(), clang::CanQual< T >::getTypePtr(), clang::Keyword, NestedNameSpecifier, clang::None, clang::UnresolvedUsingType::Profile(), and clang::T.
Referenced by getTypeDeclType().
QualType ASTContext::getUnsignedPointerDiffType | ( | ) | const |
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.
Definition at line 6974 of file ASTContext.cpp.
References clang::Default.
Referenced by clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), and clang::analyze_scanf::ScanfSpecifier::getArgType().
QualType ASTContext::getUnsignedWCharType | ( | ) | const |
Return the type of "unsigned wchar_t".
getUnsignedWCharType - Return the type of "unsigned wchar_t".
Used when in C++, as a GCC extension.
Definition at line 6997 of file ASTContext.cpp.
References UnsignedIntTy.
Referenced by getCorrespondingUnsignedType().
QualType ASTContext::getUsingType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
const UsingShadowDecl * | D, | ||
QualType | UnderlyingType = QualType() ) const |
Definition at line 5341 of file ASTContext.cpp.
References Allocate(), clang::cast(), getCanonicalTypeDeclType(), clang::UsingShadowDecl::getIntroducer(), clang::UsingShadowDecl::getTargetDecl(), getTypeDeclType(), clang::QualType::hasLocalQualifiers(), hasSameType(), clang::QualType::isNull(), clang::Keyword, NestedNameSpecifier, clang::None, clang::UsingType::Profile(), clang::T, and clang::Typename.
Referenced by ExtendNestedNameSpecifier(), and getCommonSugarTypeNode().
Decl * ASTContext::getVaListTagDecl | ( | ) | const |
Retrieve the C type declaration corresponding to the predefined __va_list_tag
type used to help define the __builtin_va_list
type for some targets.
Definition at line 10306 of file ASTContext.cpp.
References getBuiltinVaListDecl(), and VaListTagDecl.
Referenced by clang::ASTImporterLookupTable::ASTImporterLookupTable(), and isImportedDeclContext().
Returns a vla type where known sizes are replaced with [*].
getVariableArrayDecayedType - Turns the given type, which may be variably-modified, into the corresponding type with all the known sizes replaced with [*].
Definition at line 4251 of file ASTContext.cpp.
References clang::cast(), getAtomicType(), getConstantArrayType(), getDependentSizedArrayType(), getLValueReferenceType(), getPointeeType(), getPointerType(), getQualifiedType(), getRValueReferenceType(), clang::Type::getTypeClass(), getVariableArrayDecayedType(), getVariableArrayType(), clang::Normal, clang::SplitQualType::Quals, clang::Star, clang::SplitQualType::Ty, and clang::ast_matchers::type.
Referenced by getCanonicalParamType(), getExceptionObjectType(), getSignatureParameterType(), and getVariableArrayDecayedType().
QualType ASTContext::getVariableArrayType | ( | QualType | EltTy, |
Expr * | NumElts, | ||
ArraySizeModifier | ASM, | ||
unsigned | IndexTypeQuals ) const |
Return a non-unique reference to the type for a variable array of the specified element type.
getVariableArrayType - Returns a non-unique reference to the type for a variable array of the specified element type.
Definition at line 4388 of file ASTContext.cpp.
References getCanonicalType(), getQualifiedType(), getVariableArrayType(), clang::QualType::hasLocalQualifiers(), clang::QualType::isCanonical(), New, clang::SplitQualType::Quals, clang::CanQual< T >::split(), and clang::SplitQualType::Ty.
Referenced by actOnOMPReductionKindClause(), getAsArrayType(), getUnqualifiedArrayType(), getVariableArrayDecayedType(), and getVariableArrayType().
QualType ASTContext::getVectorType | ( | QualType | vecType, |
unsigned | NumElts, | ||
VectorKind | VecKind ) const |
Return the unique reference to a vector type of the specified element type and size.
getVectorType - Return the unique reference to a vector type of the specified element type and size.
VectorType
must be a built-in type.VectorType must be a built-in type.
Definition at line 4643 of file ASTContext.cpp.
References clang::Type::castAs(), getCanonicalType(), clang::BitIntType::getNumBits(), getVectorType(), clang::Type::isBitIntType(), clang::Type::isBuiltinType(), clang::QualType::isCanonical(), New, and clang::VectorType::Profile().
Referenced by convertVector(), getCommonNonSugarTypeNode(), getCorrespondingSignedType(), getCorrespondingUnsignedType(), getVectorType(), HandleArmSveVectorBitsTypeAttr(), HandleNeonVectorTypeAttr(), HandleRISCVRVVVectorBitsTypeAttr(), and clang::CodeGen::ABIInfo::isHomogeneousAggregate().
Return the uniqued reference to the type for a volatile
qualified type.
The resulting type has a union of the qualifiers from T
and volatile
.
Definition at line 1447 of file ASTContext.h.
References clang::T, and clang::Qualifiers::Volatile.
Referenced by AddBuiltinAssignmentOperatorCandidates(), and makeQualifiedLValueReferenceType().
VTableContextBase * ASTContext::getVTableContext | ( | ) |
Definition at line 13205 of file ASTContext.cpp.
References getLangOpts(), clang::ItaniumVTableContext::Pointer, and clang::ItaniumVTableContext::Relative.
Referenced by clang::ASTNameGenerator::Implementation::getAllManglings(), and useAbbreviatedThunkName().
|
inline |
Return the unique wchar_t type available in C++ (and available as __wchar_t as a Microsoft extension).
Definition at line 2046 of file ASTContext.h.
References WCharTy.
Referenced by clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_memcpy(), and clang::interp::interp__builtin_strlen().
QualType ASTContext::getWebAssemblyExternrefType | ( | ) | const |
Return a WebAssembly externref type.
getExternrefType - Return a WebAssembly externref type, which represents an opaque reference to a host value.
Definition at line 4572 of file ASTContext.cpp.
|
inline |
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.
Definition at line 2051 of file ASTContext.h.
References WideCharTy.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType().
|
inline |
In C99, this returns a type compatible with the type defined in <stddef.h> as defined by the target.
Definition at line 2065 of file ASTContext.h.
References WIntTy.
Return a write_only pipe type for the specified type.
Definition at line 5172 of file ASTContext.cpp.
References clang::T.
Referenced by HandleOpenCLAccessAttr().
|
inline |
Definition at line 906 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenModule::imbueXRayAttrs().
|
inline |
Definition at line 3146 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenFunction::StartFunction().
Determine if two types are similar, ignoring only CVR qualifiers.
Definition at line 7204 of file ASTContext.cpp.
References getUnqualifiedArrayType(), hasSameType(), clang::Qualifiers::removeCVRQualifiers(), and UnwrapSimilarTypes().
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.
Definition at line 10716 of file ASTContext.cpp.
References Paren.
Referenced by captureInBlock(), and handleObjCOwnershipTypeAttr().
Determine whether the given expressions X
and Y
are equivalent.
Definition at line 13604 of file ASTContext.cpp.
References clang::Stmt::Profile(), and X.
Referenced by getCommonNonSugarTypeNode(), getCommonSizeExpr(), and getCommonSugarTypeNode().
Determine whether two function types are the same, ignoring exception specifications in cases where they're part of the type.
Definition at line 3812 of file ASTContext.cpp.
References clang::EST_None, getFunctionTypeWithExceptionSpec(), getLangOpts(), hasSameType(), and clang::T.
Referenced by isSameEntity().
Determine if two function types are the same, ignoring parameter ABI annotations.
Definition at line 3852 of file ASTContext.cpp.
References getFunctionTypeWithoutParamABIs(), hasSameType(), and clang::T.
Determine whether two function types are the same, ignoring pointer sizes in the return type and parameter types.
Definition at line 3837 of file ASTContext.cpp.
References getFunctionTypeWithoutPtrSizes(), hasSameType(), and clang::T.
|
inline |
Definition at line 2894 of file ASTContext.h.
References clang::Type::getNullability(), clang::NonNull, clang::Nullable, and clang::Unspecified.
Referenced by CheckMethodOverrideParam(), and CheckMethodOverrideReturn().
bool ASTContext::hasSameTemplateName | ( | const TemplateName & | X, |
const TemplateName & | Y, | ||
bool | IgnoreDeduced = false ) const |
Determine whether the given template names refer to the same template.
Definition at line 7391 of file ASTContext.cpp.
References getCanonicalTemplateName(), and X.
Referenced by DeduceTemplateArguments(), and isSameDefaultTemplateArgument().
Definition at line 2861 of file ASTContext.h.
References getCanonicalType().
Determine whether the given types T1
and T2
are equivalent.
Definition at line 2858 of file ASTContext.h.
References getCanonicalType().
Referenced by adjustBlockReturnsToEnum(), areCompatibleRVVTypes(), areCompatibleVectorTypes(), buildCounterInit(), buildCounterUpdate(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), builtinCommonTypeImpl(), BuiltinInvoke(), BuiltinMaskedLoad(), BuiltinMaskedStore(), castToBase(), checkConditionalPointerCompatibility(), CheckDeductionConsistency(), checkLiteralOperatorTemplateParameterList(), checkOpenMPLoop(), clang::checkPipePacketType(), checkTypeParamListConsistency(), CheckUnicodeArithmeticConversions(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::ConvertQualTypeToKind(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseBadDeduction(), diagnoseVarDeclTypeMismatch(), clang::CodeGen::CodeGenFunction::EmitBuiltinNewDeleteCall(), filterNonConflictingPreviousTypedefDecls(), findDecomposableBaseClass(), forEachMultiversionedFunctionVersion(), getCommonSugaredType(), getCommonSugarTypeNode(), getCommonTemplateArgument(), getFixedEnumPromtion(), getTypedefType(), getUsingType(), handleVecTypeHint(), hasCvrSimilarType(), hasSameFunctionTypeIgnoringExceptionSpec(), hasSameFunctionTypeIgnoringParamABI(), hasSameFunctionTypeIgnoringPtrSizes(), hasSimilarType(), hasUserDefinedMapper(), isGRealloc(), clang::sema::isNormalAssignmentOperator(), IsOverloadOrOverrideImpl(), isRelevantAttr(), isSameDefaultTemplateArgument(), isSameEntity(), isSameTemplateArgument(), isStandardRealloc(), isSubstitutedType(), clang::FunctionDecl::isUsableAsGlobalAllocationFunctionInConstantEvaluation(), isValidInteropVariable(), loadToBegin(), matchesStlAllocatorFn(), MatchTemplateParameterKind(), ObjCMethodsAreEqual(), clang::InitializationSequence::Perform(), rewriteToNumberLiteral(), sameFunctionParameterTypeLists(), sameObjCTypeArgs(), TryConstructorInitialization(), TryReferenceInitializationCore(), TryRefInitWithConversionFunction(), TryUserDefinedConversion(), and typesAreCompatible().
Determine whether the given types are equivalent after cvr-qualifiers have been removed.
Definition at line 2889 of file ASTContext.h.
References getCanonicalType(), and clang::CanQual< T >::getTypePtr().
Referenced by AddSuperSendCompletion(), AnalyzeComparison(), areCompatibleVectorTypes(), CheckAllArgsHaveSameType(), clang::CheckAllArgsHaveSameType(), CheckArgTypeMatches(), checkArithmeticOrEnumeralThreeWayCompare(), CheckBoolSelect(), checkBuiltinVectorMathArgTypes(), checkBuiltinVectorMathMixedEnums(), checkEnumTypesInSwitchStmt(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckMoveOnConstruction(), CheckScalarOrVector(), CheckTautologicalComparison(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), CheckVectorSelect(), CheckWaveActive(), CompareDerivedToBaseConversions(), CompareImplicitConversionSequences(), CopyObject(), createObjCPropertyGetter(), DeduceTemplateArgumentsByTypeMatch(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseDivisionSizeofPointerOrArray(), doRewriteToUTF8StringBoxedExpressionHelper(), EmitAtomicCmpXchgForMSIntrin(), EmitBinaryAtomicPost(), EvaluateBuiltinStrLen(), clang::hlsl::BuiltinTypeMethodBuilder::finalize(), FindBaseInitializer(), FunctionsCorrespond(), getCommonSugaredType(), getExistingLazyBinding(), getParamType(), clang::CastExpr::getTargetFieldForToUnionCast(), HandleConstructorCall(), HandleVirtualDispatch(), hasCopyOrMoveCtorParam(), HasNonDeletedDefaultedEqualityComparison(), clang::Expr::IgnoreParenNoopCasts(), clang::InitializationSequence::InitializeFrom(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_memcpy(), clang::interp::interp__builtin_strcmp(), isAllowableExplicitConversion(), isNonPlacementDeallocationFunction(), isNullPointerValueTemplateArgument(), IsStandardConversion(), IsUserDefinedConversion(), IsVectorConversion(), IsVectorElementConversion(), LookupMemberExpr(), MakeBinaryAtomicValue(), clang::OverloadCandidateSet::OperatorRewriteInfo::shouldAddReversed(), ShouldDiagnoseSwitchCaseNotInEnum(), TryConstructorInitialization(), TryImplicitConversion(), TryListConversion(), TryListInitialization(), and TryUserDefinedConversion().
|
inline |
Definition at line 3432 of file ASTContext.h.
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.
Definition at line 7192 of file ASTContext.cpp.
References getUnqualifiedArrayType(), hasSameType(), and UnwrapSimilarTypes().
Referenced by clang::interp::CheckNewTypeMismatch(), and clang::interp::PtrPtrCast().
bool ASTContext::hasUniqueObjectRepresentations | ( | QualType | Ty, |
bool | CheckIfTriviallyCopyable = true ) const |
Return true if the specified type has unique object representations according to (C++17 [meta.unary.prop]p9)
Definition at line 2988 of file ASTContext.cpp.
References clang::Type::getAs(), clang::Type::getAsRecordDecl(), getBaseElementType(), getTypeSize(), clang::QualType::hasAddressDiscriminatedPointerAuth(), hasUniqueObjectRepresentations(), clang::Type::isArrayType(), clang::Type::isIncompleteType(), clang::Type::isIntegralOrEnumerationType(), clang::QualType::isNull(), clang::Type::isPointerType(), clang::QualType::isTriviallyCopyableType(), clang::Type::isVoidType(), structHasUniqueObjectRepresentations(), and unionHasUniqueObjectRepresentations().
Referenced by hasUniqueObjectRepresentations(), and isTriviallyEqualityComparableType().
void ASTContext::InitBuiltinTypes | ( | const TargetInfo & | Target, |
const TargetInfo * | AuxTarget = nullptr ) |
Initialize built-in types.
This routine may only be invoked once for a given ASTContext object. It is normally invoked after ASTContext construction.
Target | The target |
Definition at line 1276 of file ASTContext.cpp.
References AccumTy, clang::DeclContext::addDecl(), ARCUnbridgedCastTy, ArraySectionTy, BFloat16Ty, BoolTy, BoundMemberTy, buildImplicitRecord(), BuiltinFnTy, Char16Ty, Char32Ty, Char8Ty, CharTy, DependentTy, DoubleTy, Float128Ty, Float16Ty, FloatTy, FractTy, getCanonicalType(), getPointerType(), getQualifiedType(), getTranslationUnitDecl(), HalfTy, Ibm128Ty, IncompleteMatrixIdxTy, Int128Ty, IntTy, isAddrSpaceMapManglingEnabled(), clang::TargetInfo::isTypeSigned(), LongAccumTy, LongDoubleTy, LongFractTy, LongLongTy, LongTy, MSGuidTagDecl, NullPtrTy, ObjCBuiltinBoolTy, ObjCBuiltinClassTy, ObjCBuiltinIdTy, ObjCBuiltinSelTy, OCLClkEventTy, OCLEventTy, OCLQueueTy, OCLReserveIDTy, OCLSamplerTy, OMPArrayShapingTy, OMPIteratorTy, clang::opencl_generic, OverloadTy, PseudoObjectTy, SatAccumTy, SatFractTy, SatLongAccumTy, SatLongFractTy, SatShortAccumTy, SatShortFractTy, SatUnsignedAccumTy, SatUnsignedFractTy, SatUnsignedLongAccumTy, SatUnsignedLongFractTy, SatUnsignedShortAccumTy, SatUnsignedShortFractTy, ShortAccumTy, ShortFractTy, ShortTy, SignedCharTy, UnknownAnyTy, UnresolvedTemplateTy, UnsignedAccumTy, UnsignedCharTy, UnsignedFractTy, UnsignedInt128Ty, UnsignedIntTy, UnsignedLongAccumTy, UnsignedLongFractTy, UnsignedLongLongTy, UnsignedLongTy, UnsignedShortAccumTy, UnsignedShortFractTy, UnsignedShortTy, VaListTagDecl, VoidPtrTy, VoidTy, WCharTy, WideCharTy, and WIntTy.
TemplateTemplateParmDecl * ASTContext::insertCanonicalTemplateTemplateParmDeclInternal | ( | TemplateTemplateParmDecl * | CanonTTP | ) | const |
Definition at line 863 of file ASTContext.cpp.
Determine if the alignment the type has was required using an alignment attribute.
Definition at line 2016 of file ASTContext.cpp.
References clang::TypeInfo::AlignRequirement, getTypeInfo(), clang::None, and clang::T.
Referenced by isAlignmentRequired(), and isVarDeclStrongDefinition().
Definition at line 2020 of file ASTContext.cpp.
References isAlignmentRequired(), and clang::T.
|
inline |
Definition at line 897 of file ASTContext.h.
bool ASTContext::isDestroyingOperatorDelete | ( | const FunctionDecl * | FD | ) | const |
Definition at line 13377 of file ASTContext.cpp.
References clang::FunctionDecl::getCanonicalDecl().
Referenced by clang::FunctionDecl::isDestroyingOperatorDelete().
If the two module M1
and M2
are in the same module.
FIXME: The signature may be confusing since clang::Module means to a module fragment or a module unit but not a C++20 module.
Get the representative module for M. The representative module is the first module unit for a specific primary module name. So that the module units have the same representative module belongs to the same module.
The process is helpful to reduce the expensive string operations.
Definition at line 1180 of file ASTContext.cpp.
Referenced by CollectEnclosingNamespace(), isImportingModuleUnitFromSameModule(), and isSameEntity().
Returns true if this is an inline-initialized static data member which is treated as a definition for MSVC compatibility.
Definition at line 8747 of file ASTContext.cpp.
References clang::TargetInfo::getCXXABI(), clang::Redeclarable< decl_type >::getFirstDecl(), getTargetInfo(), clang::ValueDecl::getType(), clang::VarDecl::hasInit(), clang::Type::isIntegralOrEnumerationType(), clang::TargetCXXABI::isMicrosoft(), clang::VarDecl::isOutOfLine(), and clang::VarDecl::isStaticDataMember().
Referenced by DeclMustBeEmitted().
bool ASTContext::isNearlyEmpty | ( | const CXXRecordDecl * | RD | ) | const |
Definition at line 13200 of file ASTContext.cpp.
References CXXRecordDecl.
Definition at line 3183 of file ASTContext.h.
References getObjCClassType(), and clang::T.
Definition at line 3181 of file ASTContext.h.
References getObjCIdType(), and clang::T.
Referenced by maybeAdjustInterfaceForSubscriptingCheck().
Return true if this is an NSObject
object with its NSObject
attribute set.
Definition at line 2596 of file ASTContext.h.
References clang::Type::isObjCNSObjectType().
Referenced by BlockRequiresCopying().
Definition at line 3185 of file ASTContext.h.
References getObjCSelType(), and clang::T.
Whether this is a promotable bitfield reference according to C99 6.3.1.1p2, bullet 2 (and GCC extensions).
Definition at line 8222 of file ASTContext.cpp.
References clang::CPlusPlus, getLangOpts(), clang::Expr::getSourceBitField(), clang::Expr::getType(), getTypeSize(), IntTy, clang::Type::isBitIntType(), clang::Type::isEnumeralType(), clang::Type::isSignedIntegerType(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), and UnsignedIntTy.
More type predicates useful for type checking/promotion.
Definition at line 1978 of file ASTContext.cpp.
References getLangOpts(), clang::HLSL, and clang::T.
Referenced by checkArithmeticOrEnumeralThreeWayCompare(), clang::ento::SMTConv::doIntTypeConversion(), getPromotedIntegerType(), getUnwidenedIntegerType(), isArithmeticArgumentPromotion(), isOverflowingIntegerType(), and mergeFunctionTypes().
Determine whether the given integral value is representable within the given type T.
Definition at line 5613 of file ASTContext.cpp.
References getIntWidth(), and clang::T.
Referenced by computeEnumBits().
bool ASTContext::isSameAssociatedConstraint | ( | const AssociatedConstraint & | ACX, |
const AssociatedConstraint & | ACY ) const |
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.
Definition at line 7398 of file ASTContext.cpp.
References clang::AssociatedConstraint::ArgPackSubstIndex, clang::AssociatedConstraint::ConstraintExpr, and isSameConstraintExpr().
Referenced by isSameEntity().
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.
Definition at line 7407 of file ASTContext.cpp.
References clang::Stmt::Profile().
Referenced by isSameAssociatedConstraint(), isSameEntity(), isSameTemplateParameter(), isSameTemplateParameterList(), and isSameTypeConstraint().
Determine whether two default template arguments are similar enough that they may be used in declarations of the same template.
Definition at line 7503 of file ASTContext.cpp.
References clang::cast(), clang::TemplateArgument::getAsTemplate(), hasSameTemplateName(), hasSameType(), clang::Expr::IgnoreImpCasts(), isSameTemplateParameter(), clang::Stmt::Profile(), and X.
Determine whether the two declarations refer to the same entity.
Definition at line 7624 of file ASTContext.cpp.
References clang::cast(), clang::Class, clang::CPlusPlus17, clang::declaresSameEntity(), clang::Type::getAs(), getAsArrayType(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::ArrayType::getElementType(), clang::FunctionProtoType::getExceptionSpecType(), clang::Decl::getKind(), getLangOpts(), clang::Decl::getOwningModule(), clang::DeclContext::getRedeclContext(), hasSameFunctionTypeIgnoringExceptionSpec(), hasSameOverloadableAttrs(), hasSameType(), clang::Interface, clang::isa(), clang::Type::isIncompleteArrayType(), isInSameModule(), clang::Decl::isModuleLocal(), isSameAssociatedConstraint(), isSameConstraintExpr(), isSameEntity(), isSameQualifier(), isSameTemplateParameterList(), clang::isUnresolvedExceptionSpec(), clang::Struct, and X.
Referenced by isSameEntity(), and isSameTypeConstraint().
bool ASTContext::isSameTemplateArgument | ( | const TemplateArgument & | Arg1, |
const TemplateArgument & | Arg2 ) const |
Determine whether the given template arguments Arg1
and Arg2
are equivalent.
Definition at line 7922 of file ASTContext.cpp.
References clang::TemplateArgument::Declaration, clang::TemplateArgument::Expression, clang::TemplateArgument::getAsDecl(), clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsIntegral(), clang::TemplateArgument::getAsTemplateOrTemplatePattern(), clang::TemplateArgument::getAsType(), clang::Decl::getCanonicalDecl(), getCanonicalTemplateName(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getNullPtrType(), clang::TemplateArgument::getPackAsArray(), clang::NamedDecl::getUnderlyingDecl(), hasSameType(), clang::TemplateArgument::Integral, clang::TemplateArgument::Null, clang::TemplateArgument::NullPtr, clang::TemplateArgument::Pack, clang::Stmt::Profile(), clang::TemplateArgument::structurallyEquals(), clang::TemplateArgument::StructuralValue, clang::TemplateArgument::Template, clang::TemplateArgument::TemplateExpansion, and clang::TemplateArgument::Type.
Referenced by FinishTemplateArgumentDeduction().
Determine whether two template parameters are similar enough that they may be used in declarations of the same template.
Definition at line 7461 of file ASTContext.cpp.
References clang::cast(), clang::Decl::getKind(), isSameConstraintExpr(), isSameTemplateParameterList(), isSameTypeConstraint(), and X.
Referenced by isSameDefaultTemplateArgument(), and isSameTemplateParameterList().
bool ASTContext::isSameTemplateParameterList | ( | const TemplateParameterList * | X, |
const TemplateParameterList * | Y ) const |
Determine whether two template parameter lists are similar enough that they may be used in declarations of the same template.
Definition at line 7491 of file ASTContext.cpp.
References clang::TemplateParameterList::getParam(), clang::TemplateParameterList::getRequiresClause(), isSameConstraintExpr(), isSameTemplateParameter(), clang::TemplateParameterList::size(), and X.
Referenced by FunctionsCorrespond(), isSameEntity(), and isSameTemplateParameter().
bool ASTContext::isSameTypeConstraint | ( | const TypeConstraint * | XTC, |
const TypeConstraint * | YTC ) const |
Determine whether two type contraint are similar enough that they could used in declarations of the same template.
Definition at line 7420 of file ASTContext.cpp.
References clang::TypeConstraint::getConceptReference(), clang::TypeConstraint::getImmediatelyDeclaredConstraint(), clang::TypeConstraint::getNamedConcept(), clang::ConceptReference::getTemplateArgsAsWritten(), clang::ConceptReference::hasExplicitTemplateArgs(), isSameConstraintExpr(), isSameEntity(), and clang::ASTTemplateArgumentListInfo::NumTemplateArgs.
Referenced by isSameTemplateParameter().
Definition at line 3082 of file ASTContext.cpp.
References clang::Expr::getType(), clang::Expr::IgnoreParenCasts(), clang::isa(), clang::Type::isAnyPointerType(), clang::Expr::isNullPointerConstant(), clang::Type::isNullPtrType(), and clang::Expr::NPC_ValueDependentIsNull.
Referenced by getNSArrayObjects(), clang::CodeGen::CodeGenFunction::isUnderlyingBasePointerConstantNull(), rewriteToArrayLiteral(), and rewriteToDictionaryLiteral().
bool ASTContext::isTypeAwareOperatorNewOrDelete | ( | const FunctionDecl * | FD | ) | const |
Definition at line 13390 of file ASTContext.cpp.
References clang::FunctionDecl::getCanonicalDecl().
Referenced by clang::FunctionDecl::isTypeAwareOperatorNewOrDelete().
bool ASTContext::isTypeIgnoredBySanitizer | ( | const SanitizerMask & | Mask, |
const QualType & | Ty ) const |
Check if a type can have its sanitizer instrumentation elided based on its presence within an ignorelist.
Definition at line 878 of file ASTContext.cpp.
References clang::QualType::getAsString(), getPrintingPolicy(), and clang::QualType::getUnqualifiedType().
|
inline |
Definition at line 1150 of file ASTContext.h.
uint64_t ASTContext::lookupFieldBitOffset | ( | const ObjCInterfaceDecl * | OID, |
const ObjCIvarDecl * | Ivar ) const |
Get the offset of an ObjCIvarDecl in bits.
Definition at line 3535 of file RecordLayoutBuilder.cpp.
References clang::ObjCInterfaceDecl::all_declared_ivar_begin(), getASTObjCInterfaceLayout(), clang::ObjCIvarDecl::getCanonicalDecl(), clang::ObjCIvarDecl::getContainingInterface(), clang::ASTRecordLayout::getFieldOffset(), and clang::ObjCIvarDecl::getNextIvar().
Referenced by clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), and EncodeBitField().
|
inline |
Make an APSInt of the appropriate width and signedness for the given Value
and integer Type
.
Definition at line 3301 of file ASTContext.h.
References getIntWidth(), and clang::Type::isSignedIntegerOrEnumerationType().
Referenced by EnumToString(), clang::SourceLocExpr::EvaluateInContext(), EvaluateSizeTTypeTrait(), FastEvaluateAsRValue(), getTrivialIntegralTemplateArgument(), and clang::APValue::toIntegralConstant().
Whether a C++ static variable or CUDA/HIP kernel may be externalized.
Definition at line 15088 of file ASTContext.cpp.
References basicGVALinkageForFunction(), basicGVALinkageForVariable(), clang::cast(), clang::Decl::getAttr(), clang::GVA_Internal, clang::Decl::hasAttr(), and clang::isa().
Referenced by shouldExternalize().
void ASTContext::mergeDefinitionIntoModule | ( | NamedDecl * | ND, |
Module * | M, | ||
bool | NotifyListeners = true ) |
Note that the definition ND
has been merged into module M
, and should be visible whenever M
is visible.
Definition at line 1079 of file ASTContext.cpp.
References clang::cast(), getASTMutationListener(), clang::Decl::getCanonicalDecl(), clang::Decl::isUnconditionallyVisible(), and Listener.
FunctionProtoType::ExceptionSpecInfo ASTContext::mergeExceptionSpecs | ( | FunctionProtoType::ExceptionSpecInfo | ESI1, |
FunctionProtoType::ExceptionSpecInfo | ESI2, | ||
SmallVectorImpl< QualType > & | ExceptionTypeStorage, | ||
bool | AcceptDependent ) const |
Definition at line 13914 of file ASTContext.cpp.
References clang::EST_BasicNoexcept, clang::EST_DependentNoexcept, clang::EST_Dynamic, clang::EST_DynamicNone, clang::EST_MSAny, clang::EST_NoexceptFalse, clang::EST_NoexceptTrue, clang::EST_None, clang::EST_NoThrow, clang::EST_Unevaluated, clang::EST_Uninstantiated, clang::EST_Unparsed, clang::FunctionProtoType::ExceptionSpecInfo::Exceptions, mergeTypeLists(), clang::Result, and clang::FunctionProtoType::ExceptionSpecInfo::Type.
Referenced by getCommonNonSugarTypeNode().
bool ASTContext::mergeExtParameterInfo | ( | const FunctionProtoType * | FirstFnType, |
const FunctionProtoType * | SecondFnType, | ||
bool & | CanUseFirst, | ||
bool & | CanUseSecond, | ||
SmallVectorImpl< FunctionProtoType::ExtParameterInfo > & | NewParamInfos ) |
This function merges the ExtParameterInfo lists of two functions.
It returns true if the lists are compatible. The merged list is returned in NewParamInfos.
FirstFnType | The type of the first function. |
SecondFnType | The type of the second function. |
CanUseFirst | This flag is set to true if the first function's ExtParameterInfo list can be used as the composite list of ExtParameterInfo. |
CanUseSecond | This flag is set to true if the second function's ExtParameterInfo list can be used as the composite list of ExtParameterInfo. |
NewParamInfos | The composite list of ExtParameterInfo. The list is empty if none of the flags are set. |
Definition at line 12060 of file ASTContext.cpp.
References clang::FunctionProtoType::getExtParameterInfo(), clang::FunctionProtoType::getExtParameterInfos(), clang::FunctionProtoType::hasExtParameterInfos(), clang::FunctionType::ExtParameterInfo::isNoEscape(), and clang::FunctionType::ExtParameterInfo::withIsNoEscape().
Referenced by mergeFunctionTypes().
QualType ASTContext::mergeFunctionParameterTypes | ( | QualType | lhs, |
QualType | rhs, | ||
bool | OfBlockPointer = false, | ||
bool | Unqualified = false ) |
mergeFunctionParameterTypes - merge two types which appear as function parameter types
Definition at line 11383 of file ASTContext.cpp.
References clang::QualType::isNull(), mergeTransparentUnionType(), mergeTypes(), and clang::Unqualified.
Referenced by mergeFunctionTypes().
QualType ASTContext::mergeFunctionTypes | ( | QualType | lhs, |
QualType | rhs, | ||
bool | OfBlockPointer = false, | ||
bool | Unqualified = false, | ||
bool | AllowCXX = false, | ||
bool | IsConditionalOperator = false ) |
Definition at line 11402 of file ASTContext.cpp.
References clang::Type::castAs(), clang::FunctionProtoType::ExtProtoInfo::ExtInfo, clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, FloatTy, clang::FunctionProtoType::ExtProtoInfo::FunctionEffects, clang::Type::getAsEnumDecl(), getCanonicalType(), clang::FunctionType::ExtInfo::getCC(), clang::FunctionType::getExtInfo(), clang::FunctionProtoType::getExtProtoInfo(), getFunctionNoProtoType(), getFunctionType(), clang::FunctionType::ExtInfo::getHasRegParm(), clang::FunctionEffectSet::getIntersection(), clang::FunctionType::ExtInfo::getNoCallerSavedRegs(), clang::FunctionType::ExtInfo::getNoCfCheck(), clang::FunctionType::ExtInfo::getNoReturn(), clang::FunctionProtoType::getNumParams(), clang::FunctionProtoType::getParamType(), clang::FunctionProtoType::getParamTypes(), clang::FunctionType::ExtInfo::getProducesResult(), clang::FunctionType::ExtInfo::getRegParm(), clang::FunctionType::getReturnType(), clang::FunctionEffectSet::getUnion(), clang::CanQual< T >::getUnqualifiedType(), clang::QualType::getUnqualifiedType(), clang::FunctionProtoType::hasExceptionSpec(), clang::QualType::hasQualifiers(), clang::QualType::isNull(), isPromotableIntegerType(), clang::FunctionProtoType::isVariadic(), mergeExtParameterInfo(), mergeFunctionParameterTypes(), mergeTypes(), clang::nullptr, clang::Unqualified, and clang::FunctionType::ExtInfo::withNoReturn().
Referenced by clang::SemaOpenMP::ActOnOpenMPCall(), clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), instantiateOMPDeclareVariantAttr(), and mergeTypes().
mergeObjCGCQualifiers - This routine merges ObjC's GC attribute of 'LHS' and 'RHS' attributes and returns the merged version; including for function return types.
Definition at line 12118 of file ASTContext.cpp.
References clang::cast(), clang::Type::castAs(), clang::FunctionProtoType::ExtProtoInfo::ExtInfo, clang::Qualifiers::getAddressSpace(), getCanonicalType(), clang::Qualifiers::getCVRQualifiers(), clang::getFunctionExtInfo(), getFunctionType(), clang::QualType::getLocalQualifiers(), clang::Qualifiers::getObjCGCAttr(), getPointeeType(), clang::QualType::getTypePtr(), clang::Type::isFunctionType(), clang::QualType::isNull(), clang::Type::isObjCObjectPointerType(), mergeObjCGCQualifiers(), clang::Qualifiers::Strong, and clang::Qualifiers::Weak.
Referenced by mergeObjCGCQualifiers().
Definition at line 11652 of file ASTContext.cpp.
References clang::Default, getLangOpts(), and clang::StructuralEquivalenceContext::IsEquivalent().
Referenced by mergeTypes().
QualType ASTContext::mergeTransparentUnionType | ( | QualType | T, |
QualType | SubType, | ||
bool | OfBlockPointer = false, | ||
bool | Unqualified = false ) |
mergeTransparentUnionType - if T is a transparent union type and a member of T is compatible with SubType, return the merged type, else return QualType()
Definition at line 11363 of file ASTContext.cpp.
References clang::RecordDecl::fields(), clang::RecordDecl::getMostRecentDecl(), clang::Decl::hasAttr(), clang::QualType::isNull(), mergeTypes(), clang::T, and clang::Unqualified.
Referenced by mergeFunctionParameterTypes().
QualType ASTContext::mergeTypes | ( | QualType | LHS, |
QualType | RHS, | ||
bool | OfBlockPointer = false, | ||
bool | Unqualified = false, | ||
bool | BlockReturnType = false, | ||
bool | IsConditionalOperator = false ) |
Definition at line 11668 of file ASTContext.cpp.
References areCompatMatrixTypes(), areCompatVectorTypes(), canAssignObjCInterfaces(), canAssignObjCInterfacesInBlockPointer(), clang::Type::castAs(), clang::Qualifiers::getAddressSpace(), clang::Type::getAs(), getAsArrayType(), clang::Type::getAsCanonical(), getAsConstantArrayType(), clang::Qualifiers::getAsOpaqueValue(), getAsVariableArrayType(), getAtomicType(), getBlockPointerType(), getCanonicalType(), getConstantArrayType(), clang::Qualifiers::getCVRQualifiers(), clang::ArrayType::getElementType(), getIncompleteArrayType(), clang::Expr::getIntegerConstantExpr(), getLangOpts(), clang::QualType::getLocalQualifiers(), clang::Qualifiers::getObjCGCAttr(), getObjCGCQualType(), clang::Qualifiers::getObjCLifetime(), clang::ReferenceType::getPointeeType(), getPointeeType(), clang::Qualifiers::getPointerAuth(), getPointerType(), clang::QualType::getQualifiers(), clang::ConstantArrayType::getSize(), clang::ConstantArrayType::getSizeExpr(), clang::VariableArrayType::getSizeExpr(), clang::Type::getTypeClass(), clang::QualType::getTypePtr(), clang::QualType::getUnqualifiedType(), clang::ConstantArrayType::getZExtSize(), clang::Qualifiers::hasUnaligned(), clang::Qualifiers::isAddressSpaceSupersetOf(), clang::Type::isBlockPointerType(), clang::PointerAuthQualifier::isEquivalent(), clang::QualType::isNull(), clang::Type::isObjCIdType(), clang::Type::isObjCObjectPointerType(), isUnsigned(), mergeEnumWithInteger(), mergeFunctionTypes(), mergeTagDefinitions(), mergeTypes(), clang::OpenCL, clang::Qualifiers::removeAddressSpace(), clang::Qualifiers::Strong, clang::Unqualified, and clang::Qualifiers::Weak.
Referenced by checkConditionalPointerCompatibility(), mergeFunctionParameterTypes(), mergeFunctionTypes(), mergeTransparentUnionType(), mergeTypes(), typesAreBlockPointerCompatible(), and typesAreCompatible().
bool ASTContext::ObjCMethodsAreEqual | ( | const ObjCMethodDecl * | MethodDecl, |
const ObjCMethodDecl * | MethodImp ) |
Definition at line 13560 of file ASTContext.cpp.
References clang::ObjCMethodDecl::getObjCDeclQualifier(), clang::ParmVarDecl::getObjCDeclQualifier(), clang::ObjCMethodDecl::getReturnType(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), hasSameType(), clang::ObjCMethodDecl::isVariadic(), clang::ObjCMethodDecl::param_begin(), clang::ObjCMethodDecl::param_end(), and clang::ObjCMethodDecl::param_size().
bool ASTContext::ObjCObjectAdoptsQTypeProtocols | ( | QualType | QT, |
ObjCInterfaceDecl * | Decl ) |
ObjCObjectAdoptsQTypeProtocols - Checks that protocols in IC's protocol list adopt all protocols in QT's qualified-id protocol list.
Definition at line 6463 of file ASTContext.cpp.
References clang::ObjCInterfaceDecl::ClassImplementsProtocol(), clang::Type::getAs(), and clang::Type::isObjCQualifiedIdType().
Referenced by CheckObjCBridgeNSCast().
bool ASTContext::ObjCQualifiedClassTypesAreCompatible | ( | const ObjCObjectPointerType * | LHS, |
const ObjCObjectPointerType * | RHS ) |
ObjCQualifiedClassTypesAreCompatible - compare Class<pr,...> and Class<pr1, ...>.
Definition at line 10757 of file ASTContext.cpp.
References clang::ast_matchers::match(), ProtocolCompatibleWithProtocol(), and clang::ObjCObjectPointerType::quals().
Referenced by canAssignObjCInterfaces().
bool ASTContext::ObjCQualifiedIdTypesAreCompatible | ( | const ObjCObjectPointerType * | LHS, |
const ObjCObjectPointerType * | RHS, | ||
bool | ForCompare ) |
ObjCQualifiedIdTypesAreCompatible - We know that one of lhs/rhs is an ObjCQualifiedIDType.
Definition at line 10775 of file ASTContext.cpp.
References CollectInheritedProtocols(), compare(), clang::ObjCObjectPointerType::getInterfaceDecl(), clang::ObjCObjectPointerType::getInterfaceType(), clang::ObjCObjectPointerType::isObjCClassType(), clang::ObjCObjectPointerType::isObjCIdType(), clang::ObjCObjectPointerType::isObjCQualifiedClassType(), clang::ObjCObjectPointerType::isObjCQualifiedIdType(), clang::ast_matchers::match(), ProtocolCompatibleWithProtocol(), clang::ObjCObjectPointerType::qual_empty(), and clang::ObjCObjectPointerType::quals().
Referenced by canAssignObjCInterfaces(), and canAssignObjCInterfacesInBlockPointer().
|
delete |
References ASTContext().
ASTContext::overridden_method_range ASTContext::overridden_methods | ( | const CXXMethodDecl * | Method | ) | const |
Definition at line 1658 of file ASTContext.cpp.
References clang::Method.
Referenced by clang::CXXMethodDecl::overridden_methods(), overridden_methods_begin(), overridden_methods_end(), and overridden_methods_size().
ASTContext::overridden_cxx_method_iterator ASTContext::overridden_methods_begin | ( | const CXXMethodDecl * | Method | ) | const |
Definition at line 1642 of file ASTContext.cpp.
References clang::Method, and overridden_methods().
Referenced by clang::CXXMethodDecl::begin_overridden_methods(), and getOverriddenMethods().
ASTContext::overridden_cxx_method_iterator ASTContext::overridden_methods_end | ( | const CXXMethodDecl * | Method | ) | const |
Definition at line 1647 of file ASTContext.cpp.
References clang::Method, and overridden_methods().
Referenced by clang::CXXMethodDecl::end_overridden_methods(), and getOverriddenMethods().
unsigned ASTContext::overridden_methods_size | ( | const CXXMethodDecl * | Method | ) | const |
Definition at line 1652 of file ASTContext.cpp.
References clang::Method, and overridden_methods().
Referenced by clang::CXXMethodDecl::size_overridden_methods().
void ASTContext::PrintStats | ( | ) | const |
Definition at line 1018 of file ASTContext.cpp.
References clang::CPlusPlus, ExternalSource, getLangOpts(), NumImplicitCopyAssignmentOperators, NumImplicitCopyAssignmentOperatorsDeclared, NumImplicitCopyConstructors, NumImplicitCopyConstructorsDeclared, NumImplicitDefaultConstructors, NumImplicitDefaultConstructorsDeclared, NumImplicitDestructors, NumImplicitDestructorsDeclared, NumImplicitMoveAssignmentOperators, NumImplicitMoveAssignmentOperatorsDeclared, NumImplicitMoveConstructors, NumImplicitMoveConstructorsDeclared, and clang::T.
Referenced by clang::ParseAST().
Definition at line 11352 of file ASTContext.cpp.
References typesAreCompatible().
Referenced by SelectPropertyForSynthesisFromProtocols().
bool ASTContext::ProtocolCompatibleWithProtocol | ( | ObjCProtocolDecl * | lProto, |
ObjCProtocolDecl * | rProto ) const |
ProtocolCompatibleWithProtocol - return 'true' if 'lProto' is in the inheritance hierarchy of 'rProto'.
Definition at line 10745 of file ASTContext.cpp.
References clang::declaresSameEntity(), ProtocolCompatibleWithProtocol(), and clang::ObjCProtocolDecl::protocols().
Referenced by ObjCQualifiedClassTypesAreCompatible(), ObjCQualifiedIdTypesAreCompatible(), ProtocolCompatibleWithProtocol(), and QIdProtocolsAdoptObjCObjectProtocols().
bool ASTContext::QIdProtocolsAdoptObjCObjectProtocols | ( | QualType | QT, |
ObjCInterfaceDecl * | IDecl ) |
QIdProtocolsAdoptObjCObjectProtocols - Checks that protocols in QT's qualified-id protocol list adopt all protocols in IDecl's list of protocols.
Definition at line 6482 of file ASTContext.cpp.
References CollectInheritedProtocols(), clang::Type::getAs(), clang::ObjCInterfaceDecl::hasDefinition(), clang::Type::isObjCQualifiedIdType(), and ProtocolCompatibleWithProtocol().
Referenced by CheckObjCBridgeCFCast().
void ASTContext::registerSYCLEntryPointFunction | ( | FunctionDecl * | FD | ) |
Generates and stores SYCL kernel metadata for the provided SYCL kernel entry point function.
The provided function must have an attached sycl_kernel_entry_point attribute that specifies a unique type for the name of a SYCL kernel. Callers are required to detect conflicting SYCL kernel names and issue a diagnostic prior to calling this function.
Definition at line 15040 of file ASTContext.cpp.
References BuildSYCLKernelInfo(), clang::declaresSameEntity(), clang::Decl::getAttr(), getCanonicalType(), clang::Decl::isInvalidDecl(), clang::Decl::isTemplated(), and SYCLKernels.
Referenced by clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl().
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.
Definition at line 3277 of file ASTContext.cpp.
References clang::Qualifiers::getFastQualifiers(), getUnqualifiedArrayType(), clang::Qualifiers::hasNonFastQualifiers(), clang::Qualifiers::removeAddressSpace(), clang::QualifierCollector::strip(), and clang::T.
Referenced by DeduceTemplateArgumentsByTypeMatch(), DiagnoseImpCast(), handleMSPointerTypeQualifierAttr(), HandleWebAssemblyFuncrefAttr(), and removePtrSizeAddrSpace().
Remove the existing address space on the type if it is a pointer size address space and return the type with qualifiers intact.
Definition at line 3680 of file ASTContext.cpp.
References clang::QualType::getAddressSpace(), clang::Type::getPointeeType(), getPointerType(), clang::isPtrSizeAddressSpace(), removeAddrSpaceQualType(), and clang::T.
Referenced by getFunctionTypeWithoutPtrSizes().
void ASTContext::ResetObjCLayout | ( | const ObjCInterfaceDecl * | D | ) |
Definition at line 12107 of file ASTContext.cpp.
References ResetObjCLayout().
Referenced by clang::SemaObjC::ActOnFinishObjCImplementation(), and ResetObjCLayout().
|
inline |
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.
Definition at line 1351 of file ASTContext.h.
References Listener.
Referenced by clang::FrontendAction::BeginSourceFile(), and clang::CompilerInstance::createASTReader().
Set the copy initialization expression of a block var decl.
CanThrow
indicates whether the copy expression can throw or not.
Definition at line 3170 of file ASTContext.cpp.
References CanThrow(), and clang::Decl::hasAttr().
Referenced by checkEscapingByref().
|
inline |
Save declaration of 'BOOL' typedef.
Definition at line 2365 of file ASTContext.h.
void ASTContext::setCFConstantStringType | ( | QualType | T | ) |
Definition at line 8507 of file ASTContext.cpp.
References clang::cast(), and clang::T.
|
inline |
Definition at line 1601 of file ASTContext.h.
void ASTContext::setCurrentNamedModule | ( | Module * | M | ) |
Set the (C++20) module we are building.
Definition at line 1173 of file ASTContext.cpp.
References clang::Module::isNamedModule().
Referenced by clang::Sema::ActOnModuleDecl().
void ASTContext::setExternalSource | ( | IntrusiveRefCntPtr< ExternalASTSource > | Source | ) |
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.
Definition at line 1014 of file ASTContext.cpp.
References ExternalSource.
Referenced by clang::FrontendAction::BeginSourceFile(), clang::CompilerInstance::createASTReader(), and clang::IncrementalSyntaxOnlyAction::ExecuteAction().
|
inline |
Set the type for the C FILE type.
Definition at line 2210 of file ASTContext.h.
void ASTContext::setInstantiatedFromStaticDataMember | ( | VarDecl * | Inst, |
VarDecl * | Tmpl, | ||
TemplateSpecializationKind | TSK, | ||
SourceLocation | PointOfInstantiation = SourceLocation() ) |
Note that the static data member Inst
is an instantiation of the static data member template Tmpl
of a class template.
Definition at line 1565 of file ASTContext.cpp.
References clang::VarDecl::isStaticDataMember(), and setTemplateOrSpecializationInfo().
Referenced by clang::VarDecl::setInstantiationOfStaticDataMember().
Definition at line 1629 of file ASTContext.cpp.
References clang::NamedDecl::getDeclName(), getLangOpts(), and clang::NamedDecl::isPlaceholderVar().
Remember that the using decl Inst
is an instantiation of the using decl Pattern
of a class template.
Definition at line 1588 of file ASTContext.cpp.
References clang::isa().
void ASTContext::setInstantiatedFromUsingEnumDecl | ( | UsingEnumDecl * | Inst, |
UsingEnumDecl * | Pattern ) |
Remember that the using enum decl Inst
is an instantiation of the using enum decl Pattern
of a class template.
Definition at line 1606 of file ASTContext.cpp.
void ASTContext::setInstantiatedFromUsingShadowDecl | ( | UsingShadowDecl * | Inst, |
UsingShadowDecl * | Pattern ) |
Definition at line 1618 of file ASTContext.cpp.
void ASTContext::setIsDestroyingOperatorDelete | ( | const FunctionDecl * | FD, |
bool | IsDestroying ) |
Definition at line 13368 of file ASTContext.cpp.
References clang::FunctionDecl::getCanonicalDecl().
Referenced by clang::FunctionDecl::setIsDestroyingOperatorDelete().
void ASTContext::setIsTypeAwareOperatorNewOrDelete | ( | const FunctionDecl * | FD, |
bool | IsTypeAware ) |
Definition at line 13381 of file ASTContext.cpp.
References clang::FunctionDecl::getCanonicalDecl().
Referenced by clang::FunctionDecl::setIsTypeAwareOperatorNewOrDelete().
|
inline |
Set the type for the C jmp_buf type.
Definition at line 2221 of file ASTContext.h.
Definition at line 13328 of file ASTContext.cpp.
References Listener.
void ASTContext::setNonKeyFunction | ( | const CXXMethodDecl * | method | ) |
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.
method | should be the declaration from the class definition |
Definition at line 3492 of file RecordLayoutBuilder.cpp.
References clang::LazyOffsetPtr< T, OffsT, Get >::get(), getExternalSource(), and clang::Method.
|
inline |
Set the user-written type that redefines 'SEL'.
Definition at line 2144 of file ASTContext.h.
void ASTContext::setObjCConstantStringInterface | ( | ObjCInterfaceDecl * | Decl | ) |
Definition at line 10335 of file ASTContext.cpp.
References getObjCInterfaceType().
|
inline |
Set the user-written type that redefines id
.
Definition at line 2131 of file ASTContext.h.
void ASTContext::setObjCImplementation | ( | ObjCCategoryDecl * | CatD, |
ObjCCategoryImplDecl * | ImplD ) |
Set the implementation of ObjCCategoryDecl.
Definition at line 3128 of file ASTContext.cpp.
void ASTContext::setObjCImplementation | ( | ObjCInterfaceDecl * | IFaceD, |
ObjCImplementationDecl * | ImplD ) |
Set the implementation of ObjCInterfaceDecl.
Definition at line 3121 of file ASTContext.cpp.
Referenced by clang::ObjCImplDecl::setClassInterface(), clang::ObjCCategoryDecl::setImplementation(), and clang::ObjCInterfaceDecl::setImplementation().
void ASTContext::setObjCMethodRedeclaration | ( | const ObjCMethodDecl * | MD, |
const ObjCMethodDecl * | Redecl ) |
Definition at line 3139 of file ASTContext.cpp.
References getObjCMethodRedeclaration().
Referenced by clang::ObjCMethodDecl::setAsRedeclaration().
|
inline |
Definition at line 2118 of file ASTContext.h.
References clang::T.
|
inline |
Set the user-written type that redefines 'SEL'.
Definition at line 2157 of file ASTContext.h.
|
inline |
Definition at line 2093 of file ASTContext.h.
void ASTContext::setParameterIndex | ( | const ParmVarDecl * | D, |
unsigned | index ) |
Used by ParmVarDecl to store on the side the index of the parameter when it exceeds the size of the normal bitfield.
Definition at line 13450 of file ASTContext.cpp.
Definition at line 1158 of file ASTContext.h.
|
inline |
Definition at line 794 of file ASTContext.h.
Referenced by clang::ExtractAPIAction::CreateASTConsumer(), and clang::WrappingExtractAPIAction::CreateASTConsumer().
void ASTContext::setRelocationInfoForCXXRecord | ( | const CXXRecordDecl * | RD, |
CXXRecordDeclRelocationInfo | Info ) |
Definition at line 1702 of file ASTContext.cpp.
References CXXRecordDecl, and clang::CXXRecordDecl::getDefinition().
Referenced by IsCXXReplaceableType(), and clang::Sema::IsCXXTriviallyRelocatableType().
|
inline |
Set the type for the C sigjmp_buf type.
Definition at line 2234 of file ASTContext.h.
Definition at line 13353 of file ASTContext.cpp.
References Listener.
void ASTContext::setTemplateOrSpecializationInfo | ( | VarDecl * | Inst, |
TemplateOrSpecializationInfo | TSI ) |
Definition at line 1575 of file ASTContext.cpp.
Referenced by clang::VarDecl::setDescribedVarTemplate(), and setInstantiatedFromStaticDataMember().
void ASTContext::setTraversalScope | ( | const std::vector< Decl * > & | TopLevelDecls | ) |
Definition at line 1004 of file ASTContext.cpp.
References clang::ParentMapContext::clear(), and getParentMapContext().
|
inline |
Set the type for the C ucontext_t type.
Definition at line 2247 of file ASTContext.h.
Whether a C++ static variable or CUDA/HIP kernel should be externalized.
Definition at line 15106 of file ASTContext.cpp.
References clang::cast(), CUDADeviceVarODRUsedByHost, clang::Decl::hasAttr(), and mayExternalize().
Referenced by getMangledNameImpl().
int64_t ASTContext::toBits | ( | CharUnits | CharSize | ) | const |
Convert a size in characters to a size in bits.
toBits - Convert a size in characters to a size in characters.
Definition at line 2644 of file ASTContext.cpp.
References getCharWidth(), and clang::CharUnits::getQuantity().
Referenced by AtomicUsesUnsupportedLibcall(), DumpRecordLayout(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), enumerateData(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), getDeclAlign(), getPreferredTypeAlign(), getTypeUnadjustedAlign(), isVarDeclStrongDefinition(), and clang::CodeGen::CGBitFieldInfo::MakeInfo().
CharUnits ASTContext::toCharUnitsFromBits | ( | int64_t | BitSize | ) | const |
Convert a size in bits to a size in characters.
toCharUnitsFromBits - Convert a size in bits to a size in characters.
Definition at line 2639 of file ASTContext.cpp.
References clang::CharUnits::fromQuantity(), and getCharWidth().
Referenced by AlignOfType(), clang::interp::IntPointer::atOffset(), clang::SemaPPC::checkAIXMemberAlignment(), clang::interp::computePointerOffset(), emitAddrOfZeroSizeField(), emitAlignedClause(), EmitAtomicCmpXchg128ForMSIntrin(), clang::CIRGen::CIRGenFunction::emitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), GetAlignedMapping(), getAlignOfGlobalVarInChars(), GetAlignOfType(), getDeclAlign(), getExnObjectAlignment(), clang::VarDecl::getFlexibleArrayInitChars(), clang::CodeGen::swiftcall::getMaximumVoluntaryIntegerSize(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), GetNumNonZeroBytesInInit(), getPreferredTypeAlignInChars(), getTypeAlignInChars(), getTypeAlignInChars(), getTypeInfoInChars(), getTypeUnadjustedAlignInChars(), getTypeUnadjustedAlignInChars(), HandleLValueMember(), clang::interp::interp__builtin_atomic_lock_free(), clang::interp::interp__builtin_c11_atomic_is_lock_free(), clang::interp::InterpretOffsetOf(), mergeAlignedAttrs(), clang::interp::Pointer::toAPValue(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
Definition at line 11356 of file ASTContext.cpp.
References clang::QualType::isNull(), and mergeTypes().
Referenced by canAssignObjCObjectTypes(), and checkBlockPointerTypesForAssignment().
Compatibility predicates used to check assignment expressions.
typesAreCompatible - C99 6.7.3p9: For two qualified types to be compatible, both shall have the identically qualified version of a compatible type.
C99 6.2.7p1: Two types have compatible types if their types are the same. See 6.7.[2,3,5] for additional rules.
Definition at line 11344 of file ASTContext.cpp.
References clang::CPlusPlus, getLangOpts(), hasSameType(), clang::QualType::isNull(), and mergeTypes().
Referenced by checkObjCPointerTypesForAssignment(), checkPointerTypesForAssignment(), IsStandardConversion(), and propertyTypesAreCompatible().
void ASTContext::UnwrapSimilarArrayTypes | ( | QualType & | T1, |
QualType & | T2, | ||
bool | AllowPiMismatch = true ) const |
Attempt to unwrap two types that may both be array types with the same bound (or both be array types of unknown bound) for the purpose of comparing the cv-decomposition of two types per C++ [conv.qual].
AllowPiMismatch | Allow the Pi1 and Pi2 to differ as described in C++20 [conv.qual], if permitted by the current language mode. |
Definition at line 7099 of file ASTContext.cpp.
References clang::CPlusPlus20, getAsArrayType(), getLangOpts(), and clang::isa().
Referenced by UnwrapSimilarTypes().
bool ASTContext::UnwrapSimilarTypes | ( | QualType & | T1, |
QualType & | T2, | ||
bool | AllowPiMismatch = true ) const |
Attempt to unwrap two types that may be similar (C++ [conv.qual]).
If T1 and T2 are both pointer types of the same kind, or both array types with the same bound, unwraps layers from T1 and T2 until a pointer type is unwrapped. Top-level qualifiers on T1 and T2 are ignored.
This function will typically be called in a loop that successively "unwraps" pointer and pointer-to-member types to compare them at each level.
AllowPiMismatch | Allow the Pi1 and Pi2 to differ as described in C++20 [conv.qual], if permitted by the current language mode. |
true
if a pointer type was unwrapped, false
if we reached a pair of types that can't be unwrapped further. Definition at line 7150 of file ASTContext.cpp.
References clang::Type::getAs(), getLangOpts(), clang::ObjCObjectPointerType::getPointeeType(), clang::PointerType::getPointeeType(), clang::Type::getPointeeType(), clang::ObjC, and UnwrapSimilarArrayTypes().
Referenced by hasCvrSimilarType(), and hasSimilarType().
bool ASTContext::useAbbreviatedThunkName | ( | GlobalDecl | VirtualMethodDecl, |
StringRef | MangledName ) |
Definition at line 15138 of file ASTContext.cpp.
References clang::cast(), createMangleContext(), clang::Destructor, clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), getVTableContext(), clang::Method, and clang::Result.
Referenced by clang::ASTNameGenerator::Implementation::getAllManglings().
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 520 of file ASTContext.h.
References CXXRecordDecl.
Referenced by addCopyConstructorForExceptionObject(), baseForVTableAuthentication(), BlockRequiresCopying(), CXXRecordDecl, DeclMustBeEmitted(), DumpRecordLayout(), getCommentForDecl(), getCopyConstructorForExceptionObject(), getCurrentKeyFunction(), getMemberPointerPathAdjustment(), getMemberPointerType(), getOffsetOfBaseWithVBPtr(), getPointerAuthVTablePointerDiscriminator(), getRelocationInfoForCXXRecord(), isNearlyEmpty(), and setRelocationInfoForCXXRecord().
|
friend |
Definition at line 3651 of file ASTContext.h.
References DeclarationNameTable.
Referenced by DeclarationNameTable.
|
friend |
Definition at line 3652 of file ASTContext.h.
References DeclContext.
Referenced by DeclContext, and getManglingNumberContext().
|
friend |
Definition at line 521 of file ASTContext.h.
References IncrementalParser.
Referenced by IncrementalParser.
|
friend |
Definition at line 189 of file ASTContext.h.
References NestedNameSpecifier.
Referenced by getCanonicalTemplateName(), getCommonNNS(), getDependentNameType(), getMemberPointerType(), getQualifiedTemplateName(), getTagType(), getTypeDeclType(), getTypeDeclType(), getTypedefType(), getUnresolvedUsingType(), getUsingType(), and NestedNameSpecifier.
|
friend |
Definition at line 519 of file ASTContext.h.
CanQualType clang::ASTContext::AccumTy |
Definition at line 1232 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::ARCUnbridgedCastTy |
Definition at line 1250 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::ArraySectionTy |
Definition at line 1259 of file ASTContext.h.
Referenced by InitBuiltinTypes().
|
mutable |
Definition at line 1282 of file ASTContext.h.
Referenced by getAutoDeductType().
|
mutable |
Definition at line 1283 of file ASTContext.h.
Referenced by getAutoRRefDeductType().
CanQualType clang::ASTContext::BFloat16Ty |
Definition at line 1244 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::BoolTy |
Definition at line 1220 of file ASTContext.h.
Referenced by areCompatibleRVVTypes(), clang::interp::BitCastPrim(), buildSingleCopyAssignRecursively(), BuiltinAlignment(), builtinCommonTypeImpl(), BuiltinIsWithinLifetime(), calculateConstraintSatisfaction(), calculateConstraintSatisfaction(), CheckBoolLikeConversion(), CheckWaveActive(), DeduceTemplateArgumentsByTypeMatch(), clang::CodeGen::CGOpenMPRuntime::emitForNext(), emitStructSetterCall(), clang::PreferredTypeBuilder::enterCondition(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), clang::CIRGen::CIRGenFunction::evaluateExprAsBool(), clang::ento::SMTConv::fixAPSInt(), clang::ento::SMTConv::getBinExpr(), getLogicalOperationType(), getPreferredTypeOfBinaryRHS(), getPreferredTypeOfUnaryArg(), NonTypeOrVarTemplateParmDecl::getType(), HandleRISCVRVVVectorBitsTypeAttr(), InitBuiltinTypes(), IsStandardConversion(), mapCodeCompletionContext(), TryContextuallyConvertToBool(), and clang::dataflow::UncheckedOptionalAccessModel::UncheckedOptionalAccessModel().
CanQualType clang::ASTContext::BoundMemberTy |
Definition at line 1247 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::BuiltinFnTy |
Definition at line 1249 of file ASTContext.h.
Referenced by buildMemcpyForAssignmentOp(), clang::hlsl::BuiltinTypeMethodBuilder::callBuiltin(), and InitBuiltinTypes().
Builtin::Context& clang::ASTContext::BuiltinInfo |
Definition at line 739 of file ASTContext.h.
Referenced by ASTContext(), BuiltinMaskedLoad(), BuiltinMaskedStore(), canBuiltinBeRedeclared(), clang::checkArmStreamingBuiltin(), clang::interp::diagnoseNonConstexprBuiltin(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), EmitDirectCallee(), emitLibraryCall(), emitReplacement(), GetBuiltinType(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_memcmp(), clang::interp::InterpretBuiltin(), clang::ento::CheckerContext::isCLibraryFunction(), clang::CallExpr::isUnevaluatedBuiltinCall(), clang::SemaARM::SmeAliasValid(), and clang::SemaARM::SveAliasValid().
CanQualType clang::ASTContext::Char16Ty |
Definition at line 1226 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::Char32Ty |
Definition at line 1227 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::Char8Ty |
Definition at line 1225 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::CharTy |
Definition at line 1221 of file ASTContext.h.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromImplicitBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding(), clang::SemaHLSL::CheckBuiltinFunctionCall(), checkLiteralOperatorTemplateParameterList(), CheckTautologicalComparison(), clang::SYCLUniqueStableNameExpr::Create(), clang::SYCLUniqueStableNameExpr::CreateEmpty(), diagnoseStringPlusChar(), doRewriteToUTF8StringBoxedExpressionHelper(), EvaluateAsStringImpl(), EvaluateBuiltinStrLen(), clang::ento::SMTConv::getAPSIntType(), getCFConstantStringDecl(), GetCFNumberSize(), getCharWidth(), getIndex(), getPredefinedStringLiteralFromCache(), InitBuiltinTypes(), LookupStdSourceLocationImpl(), and clang::ento::ExprEngine::VisitArraySubscriptExpr().
Keeps track of redeclaration chains that don't have any comment attached.
Mapping from canonical declaration to redeclaration chain that has no comments attached to any redeclaration. Specifically it's mapping to the last redeclaration we've checked.
Shall not contain declarations that have comments attached to any redeclaration in their chain.
Definition at line 949 of file ASTContext.h.
Referenced by cacheRawCommentForDecl(), and getRawCommentForAnyRedecl().
RawCommentList clang::ASTContext::Comments |
All comments in this translation unit.
Definition at line 924 of file ASTContext.h.
Referenced by addComment(), ASTContext(), attachCommentsToJustParsedDecls(), getRawCommentForDeclNoCache(), and getRawCommentForDeclNoCacheImpl().
True if comments are already loaded from ExternalASTSource.
Definition at line 927 of file ASTContext.h.
Referenced by getRawCommentForDeclNoCache().
ComparisonCategories clang::ASTContext::CompCategories |
Types and expressions required to build C++2a three-way comparisons using operator<=>, including the values return by builtin <=> operators.
Definition at line 2556 of file ASTContext.h.
Referenced by ASTContext().
struct clang::ASTContext::CUDAConstantEvalContext clang::ASTContext::CUDAConstantEvalCtx |
llvm::DenseSet<const VarDecl *> clang::ASTContext::CUDADeviceVarODRUsedByHost |
Keep track of CUDA/HIP device-side variables ODR-used by host code.
This does not include extern shared variables used by device host functions as addresses of shared variables are per warp, therefore cannot be accessed by host code.
Definition at line 1299 of file ASTContext.h.
Referenced by MarkVarDeclODRUsed(), and shouldExternalize().
llvm::SetVector<const ValueDecl *> clang::ASTContext::CUDAExternalDeviceDeclODRUsedByHost |
Keep track of CUDA/HIP external kernels or device variables ODR-used by host code.
SetVector is used to maintain the order.
Definition at line 1303 of file ASTContext.h.
Referenced by clang::SemaCUDA::CheckCall(), and MarkVarDeclODRUsed().
llvm::DenseSet<const FunctionDecl *> clang::ASTContext::CUDAImplicitHostDeviceFunUsedByDevice |
Keep track of CUDA/HIP implicit host device functions used on device side in device compilation.
Definition at line 1307 of file ASTContext.h.
Referenced by clang::SemaCUDA::RecordImplicitHostDeviceFuncUsedByDevice().
|
mutable |
Definition at line 741 of file ASTContext.h.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addArraySubscriptOperators(), addBlockPointerConversion(), clang::hlsl::BuiltinTypeDeclBuilder::addCopyAssignmentOperator(), addFunctionPointerConversion(), ASTContext(), BuildCookedLiteralOperatorCall(), buildImplicitMapper(), buildSingleCopyAssignRecursively(), clang::hlsl::BuiltinTypeMethodBuilder::BuiltinTypeMethodBuilder(), DiagnoseTwoPhaseOperatorLookup(), doesUsualArrayDeleteWantSize(), clang::CodeGen::CodeGenFunction::EmitBuiltinNewDeleteCall(), findDeleteForPromise(), findImplicitlyDeclaredEqualityComparisons(), getLambdaCallOperatorHelper(), getNameForTemplate(), hasMember(), isImplicitMapperNeeded(), LookupSpecialMemberFromXValue(), parseOpenMPReductionId(), processImplicitMapsWithDefaultMappers(), resolveAllocationOverloadInterior(), resolveBuiltinNewDeleteOverload(), shouldAddReversedEqEq(), and threadSafetyCheckIsSmartPointer().
|
mutable |
Mapping from declaration to directly attached comment.
Raw comments are owned by Comments list. This mapping is populated lazily.
Definition at line 933 of file ASTContext.h.
Referenced by attachCommentsToJustParsedDecls(), cacheRawCommentForDecl(), and getRawCommentForAnyRedecl().
CanQualType clang::ASTContext::DependentTy |
Definition at line 1247 of file ASTContext.h.
Referenced by CheckBindingsCount(), CheckRealImagOperand(), clang::CallExpr::getCallReturnType(), GetDeclSpecTypeForDeclarator(), getDependentArraySubscriptType(), getDummyLambdaType(), NonTypeOrVarTemplateParmDecl::getType(), InitBuiltinTypes(), and LookupMemberExpr().
CanQualType clang::ASTContext::DoubleTy |
Definition at line 1231 of file ASTContext.h.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType(), GetCFNumberSize(), GetHigherPrecisionFPType(), getRealTypeForBitwidth(), and InitBuiltinTypes().
IntrusiveRefCntPtr<ExternalASTSource> clang::ASTContext::ExternalSource |
Definition at line 742 of file ASTContext.h.
Referenced by getExternalSource(), getExternalSourcePtr(), getRawCommentForDeclNoCache(), PrintStats(), and setExternalSource().
CanQualType clang::ASTContext::Float128Ty |
Definition at line 1231 of file ASTContext.h.
Referenced by getRealTypeForBitwidth(), and InitBuiltinTypes().
CanQualType clang::ASTContext::Float16Ty |
Definition at line 1245 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::FloatTy |
Definition at line 1231 of file ASTContext.h.
Referenced by clang::analyze_scanf::ScanfSpecifier::getArgType(), GetCFNumberSize(), GetHigherPrecisionFPType(), getRealTypeForBitwidth(), handleFloatConversion(), InitBuiltinTypes(), and mergeFunctionTypes().
CanQualType clang::ASTContext::FractTy |
Definition at line 1235 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::HalfTy |
Definition at line 1243 of file ASTContext.h.
Referenced by getRealTypeForBitwidth(), InitBuiltinTypes(), and needsConversionOfHalfVec().
CanQualType clang::ASTContext::Ibm128Ty |
Definition at line 1231 of file ASTContext.h.
Referenced by getRealTypeForBitwidth(), and InitBuiltinTypes().
IdentifierTable& clang::ASTContext::Idents |
Definition at line 737 of file ASTContext.h.
Referenced by clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), clang::SemaHLSL::ActOnStartRootSignatureDecl(), addFunctionPointerConversion(), clang::hlsl::BuiltinTypeDeclBuilder::addLoadMethods(), clang::hlsl::BuiltinTypeDeclBuilder::addMemberVariable(), clang::hlsl::TemplateParameterListBuilder::addTypeParameter(), ASTContext(), buildCapture(), buildImplicitMapper(), buildImplicitRecord(), buildImplicitTypedef(), buildMemcpyForAssignmentOp(), buildSingleCopyAssignRecursively(), BuiltinInvoke(), clang::hlsl::BuiltinTypeDeclBuilder::BuiltinTypeDeclBuilder(), clang::hlsl::BuiltinTypeMethodBuilder::BuiltinTypeMethodBuilder(), CheckKeyForObjCARCConversion(), CheckProtocolMethodDefs(), configureBlocksRuntimeObject(), CXXRecordMembersNamed(), clang::hlsl::BuiltinTypeMethodBuilder::declareLocalVar(), DiagnoseDirectIsaAccess(), clang::CodeGen::CodeGenFunction::EmitAndRegisterVariableArrayDimensions(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), emitOutlinedFunctionPrologue(), emitReplacement(), findOMPAllocatorHandleT(), clang::CodeGen::CodeGenFunction::generateBuiltinOSLogHelperFunction(), getBlockDescriptorExtendedType(), getBlockDescriptorType(), getBoolName(), getCFConstantStringDecl(), clang::ObjCPropertyDecl::getDefaultSynthIvarName(), getGlobalStreamPointerByName(), getHostLayoutStructName(), clang::getKeywordSelector(), getLambdaStaticInvokers(), getNSCopyingName(), getNSNumberFactoryMethod(), getNSObjectName(), clang::GetNullarySelector(), getObjCProtocolDecl(), getOpenCLEnumType(), getOpenCLTypedefType(), getPredefinedSugarType(), clang::GetUnarySelector(), handleAvailabilityAttr(), handleFormatAttrCommon(), hasMember(), clang::HLSLExternalSemaSource::InitializeSema(), clang::SemaObjC::isCFStringType(), isImplicitMapperNeeded(), isMacroDefined(), clang::SemaObjC::isNSStringType(), isNSStringType(), isValidInteropVariable(), lookupCXXRecordDecl(), clang::LookupNamed(), clang::LookupNamespace(), lookupStdNamespace(), markUsedForAliasOrIfunc(), mergeDeclAttribute(), ProcessAPINotes(), processImplicitMapsWithDefaultMappers(), shouldRunOnFunctionOrMethod(), and transferARCOwnershipToDeclaratorChunk().
CanQualType clang::ASTContext::IncompleteMatrixIdxTy |
Definition at line 1258 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::Int128Ty |
Definition at line 1228 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), getCorrespondingSignedType(), getInt128Decl(), getIntTypeForBitwidth(), and InitBuiltinTypes().
CanQualType clang::ASTContext::IntTy |
Definition at line 1228 of file ASTContext.h.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromImplicitBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding(), clang::ento::ProgramState::assumeInBoundDual(), ChangeIntegralSignedness(), clang::SemaHLSL::CheckBuiltinFunctionCall(), checkPointerAuthKey(), computeBestEnumTypes(), computeEnumBits(), clang::CodeGen::CodeGenFunction::createTLSAtExitStub(), DeduceTemplateArgumentsByTypeMatch(), encodeTypeForFunctionPointerAuth(), clang::PreferredTypeBuilder::enterSubscript(), clang::analyze_format_string::OptionalAmount::getArgType(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCFConstantStringDecl(), GetCFNumberSize(), getCorrespondingSignedType(), GetDeclSpecTypeForDeclarator(), getGuardAcquireFn(), getLegacyIntegralTypeEncoding(), getLogicalOperationType(), getObjCEncodingTypeSize(), getPreferredTypeOfBinaryRHS(), getPreferredTypeOfUnaryArg(), getPromotedIntegerType(), HandleDestructionImpl(), handleMIGServerRoutineAttr(), InitBuiltinTypes(), isOverflowingIntegerType(), clang::Expr::isPotentialConstantExpr(), isPromotableBitField(), makeAttributeArgExpr(), makeLaunchBoundsArgExpr(), mayBeSuccess(), and rewriteToNumericBoxedExpression().
llvm::DenseMap<const CXXMethodDecl *, CXXCastPath> clang::ASTContext::LambdaCastPaths |
For capturing lambdas with an explicit object parameter whose type is derived from the lambda type, we need to perform derived-to-base conversion so we can access the captures; the cast paths for that are stored here.
Definition at line 1318 of file ASTContext.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForLambdaField().
ASTMutationListener* clang::ASTContext::Listener = nullptr |
Definition at line 743 of file ASTContext.h.
Referenced by getASTMutationListener(), mergeDefinitionIntoModule(), setASTMutationListener(), setManglingNumber(), and setStaticLocalNumber().
CanQualType clang::ASTContext::LongAccumTy |
Definition at line 1233 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::LongDoubleTy |
Definition at line 1231 of file ASTContext.h.
Referenced by DetectPrecisionLossInComplexDivision(), clang::analyze_scanf::ScanfSpecifier::getArgType(), GetHigherPrecisionFPType(), getRealTypeForBitwidth(), and InitBuiltinTypes().
CanQualType clang::ASTContext::LongFractTy |
Definition at line 1235 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::LongLongTy |
Definition at line 1228 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), GetCFNumberSize(), getCorrespondingSignedType(), getNSIntegerType(), getPromotedIntegerType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::LongTy |
Definition at line 1228 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCFConstantStringDecl(), GetCFNumberSize(), getCorrespondingSignedType(), getNSIntegerType(), getPromotedIntegerType(), InitBuiltinTypes(), and clang::CodeGen::CodeGenFunction::startOutlinedSEHHelper().
Definition at line 1290 of file ASTContext.h.
Referenced by getMSGuidDecl(), getMSGuidTagDecl(), getMSGuidType(), and InitBuiltinTypes().
Definition at line 1293 of file ASTContext.h.
Referenced by getMSTypeInfoTagDecl().
CanQualType clang::ASTContext::NullPtrTy |
Definition at line 1246 of file ASTContext.h.
Referenced by DeduceNullPtrTemplateArgument(), and InitBuiltinTypes().
unsigned clang::ASTContext::NumImplicitCopyAssignmentOperators = 0 |
The number of implicitly-declared copy assignment operators.
Definition at line 3534 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitCopyAssignmentOperatorsDeclared = 0 |
The number of implicitly-declared copy assignment operators for which declarations were built.
Definition at line 3538 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitCopyConstructors = 0 |
The number of implicitly-declared copy constructors.
Definition at line 3520 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitCopyConstructorsDeclared = 0 |
The number of implicitly-declared copy constructors for which declarations were built.
Definition at line 3524 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitDefaultConstructors = 0 |
The number of implicitly-declared default constructors.
Definition at line 3513 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitDefaultConstructorsDeclared = 0 |
The number of implicitly-declared default constructors for which declarations were built.
Definition at line 3517 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitDestructors = 0 |
The number of implicitly-declared destructors.
Definition at line 3548 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitDestructorsDeclared = 0 |
The number of implicitly-declared destructors for which declarations were built.
Definition at line 3552 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitMoveAssignmentOperators = 0 |
The number of implicitly-declared move assignment operators.
Definition at line 3541 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitMoveAssignmentOperatorsDeclared = 0 |
The number of implicitly-declared move assignment operators for which declarations were built.
Definition at line 3545 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitMoveConstructors = 0 |
The number of implicitly-declared move constructors.
Definition at line 3527 of file ASTContext.h.
Referenced by PrintStats().
unsigned clang::ASTContext::NumImplicitMoveConstructorsDeclared = 0 |
The number of implicitly-declared move constructors for which declarations were built.
Definition at line 3531 of file ASTContext.h.
Referenced by PrintStats().
CanQualType clang::ASTContext::ObjCBuiltinBoolTy |
Definition at line 1252 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::ObjCBuiltinClassTy |
Definition at line 1251 of file ASTContext.h.
Referenced by applyObjCProtocolQualifiers(), getObjCClassDecl(), and InitBuiltinTypes().
CanQualType clang::ASTContext::ObjCBuiltinIdTy |
Definition at line 1251 of file ASTContext.h.
Referenced by applyObjCProtocolQualifiers(), getObjCIdDecl(), clang::Type::getObjCSubstitutions(), and InitBuiltinTypes().
CanQualType clang::ASTContext::ObjCBuiltinSelTy |
Definition at line 1251 of file ASTContext.h.
Referenced by getObjCSelDecl(), and InitBuiltinTypes().
CanQualType clang::ASTContext::OCLClkEventTy |
Definition at line 1256 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::OCLEventTy |
Definition at line 1256 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::OCLQueueTy |
Definition at line 1257 of file ASTContext.h.
Referenced by clang::SemaOpenCL::checkBuiltinEnqueueKernel(), and InitBuiltinTypes().
CanQualType clang::ASTContext::OCLReserveIDTy |
Definition at line 1257 of file ASTContext.h.
Referenced by clang::SemaOpenCL::checkBuiltinCommitRWPipe(), clang::SemaOpenCL::checkBuiltinRWPipe(), and InitBuiltinTypes().
CanQualType clang::ASTContext::OCLSamplerTy |
Definition at line 1256 of file ASTContext.h.
Referenced by InitBuiltinTypes(), and clang::InitializationSequence::Perform().
CanQualType clang::ASTContext::OMPArrayShapingTy |
Definition at line 1260 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::OMPIteratorTy |
Definition at line 1260 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::OverloadTy |
Definition at line 1247 of file ASTContext.h.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), DeduceTemplateArgumentsByTypeMatch(), clang::InitializationSequence::Diagnose(), DiagnoseBadConversion(), handleCleanupAttr(), handleRestrictAttr(), InitBuiltinTypes(), IsStandardConversion(), ResolveOverloadedFunctionForReferenceBinding(), TryListConversion(), TryReferenceInit(), and TryReferenceInitializationCore().
|
mutable |
Mapping from declarations to parsed comments attached to any redeclaration.
Definition at line 953 of file ASTContext.h.
Referenced by attachCommentsToJustParsedDecls(), and getCommentForDecl().
CanQualType clang::ASTContext::PseudoObjectTy |
Definition at line 1250 of file ASTContext.h.
Referenced by BuildMSPropertyRefExpr(), InitBuiltinTypes(), and LookupMemberExpr().
Mapping from canonical declaration to the first redeclaration in chain that has a comment attached.
Raw comments are owned by Comments list. This mapping is populated lazily.
Definition at line 940 of file ASTContext.h.
Referenced by cacheRawCommentForDecl(), and getRawCommentForAnyRedecl().
CanQualType clang::ASTContext::SatAccumTy |
Definition at line 1237 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatFractTy |
Definition at line 1240 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatLongAccumTy |
Definition at line 1237 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatLongFractTy |
Definition at line 1240 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatShortAccumTy |
Definition at line 1237 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatShortFractTy |
Definition at line 1240 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedAccumTy |
Definition at line 1238 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedFractTy |
Definition at line 1241 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedLongAccumTy |
Definition at line 1239 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedLongFractTy |
Definition at line 1242 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedShortAccumTy |
Definition at line 1238 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SatUnsignedShortFractTy |
Definition at line 1241 of file ASTContext.h.
Referenced by getCorrespondingSaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
llvm::StringMap<SectionInfo> clang::ASTContext::SectionInfos |
Definition at line 3702 of file ASTContext.h.
SelectorTable& clang::ASTContext::Selectors |
Definition at line 738 of file ASTContext.h.
Referenced by ASTContext(), CheckKeyForObjCARCConversion(), CheckProtocolMethodDefs(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), clang::getKeywordSelector(), clang::GetNullarySelector(), and clang::GetUnarySelector().
CanQualType clang::ASTContext::ShortAccumTy |
Definition at line 1232 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::ShortFractTy |
Definition at line 1235 of file ASTContext.h.
Referenced by getCorrespondingSignedFixedPointType(), getCorrespondingSignedType(), getCorrespondingUnsaturatedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::ShortTy |
Definition at line 1228 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), GetCFNumberSize(), getCorrespondingSignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::SignedCharTy |
Definition at line 1228 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCorrespondingSignedType(), and InitBuiltinTypes().
llvm::DenseMap<CanQualType, SYCLKernelInfo> clang::ASTContext::SYCLKernels |
Map of SYCL kernels indexed by the unique type used to name the kernel.
Entries are not serialized but are recreated on deserialization of a sycl_kernel_entry_point attributed function declaration.
Definition at line 1312 of file ASTContext.h.
Referenced by findSYCLKernelInfo(), getSYCLKernelInfo(), and registerSYCLEntryPointFunction().
const TranslationUnitKind clang::ASTContext::TUKind |
Definition at line 740 of file ASTContext.h.
Referenced by addTranslationUnitDecl(), and ASTContext().
CanQualType clang::ASTContext::UnknownAnyTy |
Definition at line 1248 of file ASTContext.h.
Referenced by ClassifyInternal(), ClassifyMemberExpr(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnresolvedTemplateTy |
Definition at line 1247 of file ASTContext.h.
Referenced by InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedAccumTy |
Definition at line 1234 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedCharTy |
Definition at line 1229 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), checkPointerTypesForAssignment(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCorrespondingUnsignedType(), clang::Type::getSveEltType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedFractTy |
Definition at line 1236 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedInt128Ty |
Definition at line 1230 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), getCorrespondingUnsignedType(), getIntTypeForBitwidth(), getUInt128Decl(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedIntTy |
Definition at line 1229 of file ASTContext.h.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addAppendMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addConsumeMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addCreateFromImplicitBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleAccessFunction(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding(), ChangeIntegralSignedness(), clang::SemaHLSL::CheckBuiltinFunctionCall(), clang::SemaOpenCL::checkBuiltinReserveRWPipe(), clang::SemaOpenCL::checkBuiltinRWPipe(), computeBestEnumTypes(), DeduceTemplateArgumentsByTypeMatch(), clang::SourceLocExpr::EvaluateInContext(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCorrespondingUnsignedType(), getLegacyIntegralTypeEncoding(), getPromotedIntegerType(), getUnsignedWCharType(), InitBuiltinTypes(), and isPromotableBitField().
CanQualType clang::ASTContext::UnsignedLongAccumTy |
Definition at line 1234 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedLongFractTy |
Definition at line 1236 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedLongLongTy |
Definition at line 1230 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCorrespondingUnsignedType(), getNSUIntegerType(), getPromotedIntegerType(), InitBuiltinTypes(), and instantiateDependentAllocAlignAttr().
CanQualType clang::ASTContext::UnsignedLongTy |
Definition at line 1229 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getBlockDescriptorExtendedType(), getBlockDescriptorType(), getCorrespondingUnsignedType(), getNSUIntegerType(), getPromotedIntegerType(), InitBuiltinTypes(), and isGRealloc().
CanQualType clang::ASTContext::UnsignedShortAccumTy |
Definition at line 1234 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedShortFractTy |
Definition at line 1236 of file ASTContext.h.
Referenced by getCorrespondingUnsaturatedType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::UnsignedShortTy |
Definition at line 1229 of file ASTContext.h.
Referenced by ChangeIntegralSignedness(), computeBestEnumTypes(), clang::analyze_scanf::ScanfSpecifier::getArgType(), getCorrespondingUnsignedType(), and InitBuiltinTypes().
Definition at line 1287 of file ASTContext.h.
Referenced by CreateAArch64ABIBuiltinVaListDecl(), CreateHexagonBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), CreateXtensaABIBuiltinVaListDecl(), getVaListTagDecl(), and InitBuiltinTypes().
CanQualType clang::ASTContext::VoidPtrTy |
Definition at line 1246 of file ASTContext.h.
Referenced by CheckAtomicAlignment(), CheckDeleteKind(), CheckOperatorDeleteDeclaration(), CheckOperatorNewDeclaration(), checkPointerAuthValue(), clang::CodeGen::CodeGenFunction::createAtExitStub(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CGOpenMPRuntimeGPU::emitParallelCall(), emitReduceInitFunction(), emitStructSetterCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskLoopCall(), clang::CodeGen::CGOpenMPRuntime::emitUsesAllocatorsFini(), clang::CodeGen::CGOpenMPRuntime::emitUsesAllocatorsInit(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::generateBuiltinOSLogHelperFunction(), generateByrefDisposeHelper(), getAllocatorVal(), getBlockDescriptorExtendedType(), getObjCEncodingForBlock(), getObjCEncodingForMethodDecl(), getObjCEncodingTypeSize(), InitBuiltinTypes(), isGRealloc(), clang::Type::isSignableIntegerType(), isStandardRealloc(), and clang::CodeGen::CodeGenFunction::processInReduction().
CanQualType clang::ASTContext::VoidTy |
Definition at line 1219 of file ASTContext.h.
Referenced by clang::hlsl::BuiltinTypeDeclBuilder::addAppendMethod(), clang::hlsl::BuiltinTypeDeclBuilder::addCopyConstructor(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromBinding(), clang::hlsl::BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding(), buildPostUpdate(), BuiltinMaskedStore(), checkConditionalBlockPointerCompatibility(), checkConditionalPointerCompatibility(), CheckOperatorDeleteDeclaration(), clang::ConvertQualTypeToKind(), clang::Sema::deduceClosureReturnType(), clang::CIRGen::CIRGenTypes::deriveThisType(), diagOpenCLBuiltinTypeError(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), emitOutlinedFunctionPrologue(), emitStructSetterCall(), clang::hlsl::BuiltinTypeMethodBuilder::finalize(), GeneralizeType(), clang::CodeGen::CodeGenFunction::generateBuiltinOSLogHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), clang::CallExpr::getCallReturnType(), GetDeclSpecTypeForDeclarator(), clang::ento::CallEvent::getResultType(), clang::ento::MemRegionManager::getVarRegion(), GetVTablePointer(), handleCleanupAttr(), InitBuiltinTypes(), clang::CodeGen::CodeGenFunction::startOutlinedSEHHelper(), and TryListConversion().
CanQualType clang::ASTContext::WCharTy |
Definition at line 1222 of file ASTContext.h.
Referenced by getSignedWCharType(), getWCharType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::WideCharTy |
Definition at line 1223 of file ASTContext.h.
Referenced by getIndex(), getWideCharType(), and InitBuiltinTypes().
CanQualType clang::ASTContext::WIntTy |
Definition at line 1224 of file ASTContext.h.
Referenced by getWIntType(), and InitBuiltinTypes().