clang 20.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 | 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 = llvm::PointerUnion< VarTemplateDecl *, MemberSpecializationInfo * > |
A type synonym for the TemplateOrInstantiation mapping. | |
using | overridden_cxx_method_iterator = CXXMethodVector::const_iterator |
using | overridden_method_range = llvm::iterator_range< overridden_cxx_method_iterator > |
using | import_range = llvm::iterator_range< import_iterator > |
Public Member Functions | |
interp::Context & | getInterpContext () |
Returns the clang bytecode interpreter context. | |
ParentMapContext & | getParentMapContext () |
Returns the dynamic AST node parent map context. | |
std::vector< 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) |
Deallcates 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 | deduplicateMergedDefinitonsFor (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) |
If the two module M1 and M2 are in the same module. | |
TranslationUnitDecl * | getTranslationUnitDecl () const |
void | addTranslationUnitDecl () |
ExternCContextDecl * | getExternCContextDecl () const |
BuiltinTemplateDecl * | getMakeIntegerSeqDecl () const |
BuiltinTemplateDecl * | getTypePackElementDecl () const |
BuiltinTemplateDecl * | getBuiltinCommonTypeDecl () 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. | |
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 | 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, const Type *Cls) const |
Return the uniqued reference to the type for a member pointer to the specified type in the specified class. | |
QualType | getVariableArrayType (QualType EltTy, Expr *NumElts, ArraySizeModifier ASM, unsigned IndexTypeQuals, SourceRange Brackets) 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, SourceRange Brackets) 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 (const TypeDecl *Decl, const TypeDecl *PrevDecl=nullptr) const |
Return the unique reference to the type for the specified type declaration. | |
QualType | getUsingType (const UsingShadowDecl *Found, QualType Underlying) const |
QualType | getTypedefType (const TypedefNameDecl *Decl, QualType Underlying=QualType()) const |
Return the unique reference to the type for the specified typedef-name decl. | |
QualType | getRecordType (const RecordDecl *Decl) const |
QualType | getEnumType (const EnumDecl *Decl) const |
QualType | getUnresolvedUsingType (const UnresolvedUsingTypenameDecl *Decl) const |
QualType | getInjectedClassNameType (CXXRecordDecl *Decl, QualType TST) const |
getInjectedClassNameType - Return the unique reference to the injected class name type for the specified templated declaration. | |
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 | getSubstTemplateTypeParmType (QualType Replacement, Decl *AssociatedDecl, unsigned Index, std::optional< unsigned > PackIndex, SubstTemplateTypeParmTypeFlag Flag=SubstTemplateTypeParmTypeFlag::None) const |
Retrieve a substitution-result type. | |
QualType | getSubstTemplateTypeParmPackType (Decl *AssociatedDecl, unsigned Index, bool Final, const TemplateArgument &ArgPack) |
Retrieve a. | |
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 | getTemplateSpecializationType (TemplateName T, ArrayRef< TemplateArgument > Args, QualType Canon=QualType()) const |
QualType | getCanonicalTemplateSpecializationType (TemplateName T, ArrayRef< TemplateArgument > Args) const |
QualType | getTemplateSpecializationType (TemplateName T, ArrayRef< TemplateArgumentLoc > Args, QualType Canon=QualType()) const |
TypeSourceInfo * | getTemplateSpecializationTypeInfo (TemplateName T, SourceLocation TLoc, const TemplateArgumentListInfo &Args, QualType Canon=QualType()) const |
QualType | getParenType (QualType NamedType) const |
QualType | getMacroQualifiedType (QualType UnderlyingTy, const IdentifierInfo *MacroII) const |
QualType | getElaboratedType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, QualType NamedType, TagDecl *OwnedTagDecl=nullptr) const |
QualType | getDependentNameType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, const IdentifierInfo *Name, QualType Canon=QualType()) const |
QualType | getDependentTemplateSpecializationType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, const IdentifierInfo *Name, ArrayRef< TemplateArgumentLoc > Args) const |
QualType | getDependentTemplateSpecializationType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, const IdentifierInfo *Name, ArrayRef< TemplateArgument > Args) const |
TemplateArgument | getInjectedTemplateArg (NamedDecl *ParamDecl) const |
QualType | getPackExpansionType (QualType Pattern, std::optional< unsigned > 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={}, int Index=-1) 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, ConceptDecl *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 (TemplateName Template, QualType DeducedType, bool IsDependent) const |
C++17 deduced class template specialization type. | |
QualType | getTagDeclType (const TagDecl *Decl) const |
Return the unique reference to the type for the specified TagDecl (struct/union/class/enum) decl. | |
CanQualType | getSizeType () const |
Return the unique type for "size_t" (C99 7.17), defined in <stddef.h>. | |
CanQualType | 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'. | |
IdentifierInfo * | getMakeIntegerSeqName () const |
IdentifierInfo * | getTypePackElementName () const |
IdentifierInfo * | getBuiltinCommonTypeName () const |
QualType | getObjCInstanceType () |
Retrieve the Objective-C "instancetype" type, if already known; otherwise, returns a NULL 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. | |
QualType | 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. | |
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. | |
QualType | getMSGuidType () const |
Retrieve the implicitly-predeclared 'struct _GUID' type. | |
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 *NNS, bool TemplateKeyword, TemplateName Template) const |
Retrieve the template name that represents a qualified template name such as std::vector . | |
TemplateName | getDependentTemplateName (NestedNameSpecifier *NNS, const IdentifierInfo *Name) const |
Retrieve the template name that represents a dependent template name such as MetaFun::template apply. | |
TemplateName | getDependentTemplateName (NestedNameSpecifier *NNS, OverloadedOperatorKind Operator) const |
Retrieve the template name that represents a dependent template name such as MetaFun::template operator+. | |
TemplateName | getSubstTemplateTemplateParm (TemplateName replacement, Decl *AssociatedDecl, unsigned Index, std::optional< unsigned > PackIndex) 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 | areCompatibleSveTypes (QualType FirstType, QualType SecondType) |
Return true if the given types are an SVE builtin and a VectorType that is a fixed-length representation of the SVE builtin for a specific vector-length. | |
bool | areLaxCompatibleSveTypes (QualType FirstType, QualType SecondType) |
Return true if the given vector types are lax-compatible SVE vector types, false otherwise. | |
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 alignement 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 ASTRecordLayout & | getASTObjCImplementationLayout (const ObjCImplementationDecl *D) const |
Get or compute information about the layout of the specified Objective-C implementation. | |
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 ObjCImplementationDecl *ID, 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. | |
NestedNameSpecifier * | getCanonicalNestedNameSpecifier (NestedNameSpecifier *NNS) const |
Retrieves the "canonical" nested name specifier for a given nested name specifier. | |
CallingConv | getDefaultCallingConvention (bool IsVariadic, bool IsCXXMethod, bool IsBuiltin=false) const |
Retrieves the default calling convention for the current target. | |
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 | 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. | |
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) |
QualType | getCommonSugaredType (QualType X, QualType Y, bool Unqualified=false) |
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 | 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 ObjCContainerDecl *CD) |
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 |
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. | |
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) |
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 1091 of file ASTContext.h.
using clang::ASTContext::overridden_cxx_method_iterator = CXXMethodVector::const_iterator |
Definition at line 1053 of file ASTContext.h.
using clang::ASTContext::overridden_method_range = llvm::iterator_range<overridden_cxx_method_iterator> |
Definition at line 1062 of file ASTContext.h.
using clang::ASTContext::TemplateOrSpecializationInfo = llvm::PointerUnion<VarTemplateDecl *, MemberSpecializationInfo *> |
A type synonym for the TemplateOrInstantiation mapping.
Definition at line 507 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 2382 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 3483 of file ASTContext.h.
Enumerator | |
---|---|
NeedExtraManglingDecl |
Definition at line 3309 of file ASTContext.h.
Enumerator | |
---|---|
PSF_None | |
PSF_Read | |
PSF_Write | |
PSF_Execute | |
PSF_Implicit | |
PSF_ZeroInit | |
PSF_Invalid |
Definition at line 3537 of file ASTContext.h.
ASTContext::ASTContext | ( | LangOptions & | LOpts, |
SourceManager & | SM, | ||
IdentifierTable & | idents, | ||
SelectorTable & | sels, | ||
Builtin::Context & | builtins, | ||
TranslationUnitKind | TUKind | ||
) |
Definition at line 913 of file ASTContext.cpp.
References addTranslationUnitDecl().
|
delete |
ASTContext::~ASTContext | ( | ) |
Definition at line 978 of file ASTContext.cpp.
References cleanup().
void ASTContext::addComment | ( | const RawComment & | RC | ) |
Definition at line 346 of file ASTContext.cpp.
References clang::RawCommentList::addComment(), clang::LangOptions::CommentOpts, Comments, clang::SourceRange::getBegin(), clang::RawComment::getSourceRange(), and clang::SourceManager::isInSystemHeader().
Referenced by clang::Sema::ActOnComment().
void ASTContext::addCopyConstructorForExceptionObject | ( | CXXRecordDecl * | RD, |
CXXConstructorDecl * | CD | ||
) |
Definition at line 12997 of file ASTContext.cpp.
References clang::Redeclarable< decl_type >::getFirstDecl().
Referenced by clang::Sema::CheckCXXThrowOperand().
void ASTContext::AddDeallocation | ( | void(*)(void *) | Callback, |
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 985 of file ASTContext.cpp.
References clang::Data.
Referenced by addDestruction().
void ASTContext::addDeclaratorForUnnamedTagDecl | ( | TagDecl * | TD, |
DeclaratorDecl * | DD | ||
) |
Definition at line 13014 of file ASTContext.cpp.
Referenced by clang::Sema::FinalizeDeclaratorGroup().
If T isn't trivially destructible, calls AddDeallocation to register it for destruction.
Definition at line 3261 of file ASTContext.h.
References AddDeallocation(), clang::T, and V.
Referenced by clang::MSGuidDecl::getAsAPValue(), clang::LifetimeExtendedTemporaryDecl::getOrCreateValue(), clang::ConstantExpr::MoveIntoResult(), clang::ASTDeclReader::ReadVarDeclInit(), 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 1681 of file ASTContext.cpp.
Referenced by clang::DeclContext::addHiddenDecl().
void ASTContext::addLazyModuleInitializers | ( | Module * | M, |
ArrayRef< GlobalDeclID > | IDs | ||
) |
Definition at line 1129 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 1103 of file ASTContext.cpp.
References D.
Referenced by clang::Sema::ActOnModuleDecl(), clang::Sema::ActOnModuleImport(), clang::Sema::BuildModuleInclude(), and clang::Sema::CheckCompleteVariableDeclaration().
void ASTContext::addOverriddenMethod | ( | const CXXMethodDecl * | Method, |
const CXXMethodDecl * | Overridden | ||
) |
Note that the given C++ Method
overrides the given Overridden
method.
Definition at line 1655 of file ASTContext.cpp.
References clang::Decl::isCanonicalDecl().
Referenced by clang::CXXMethodDecl::addOverriddenMethod(), and clang::ASTDeclReader::VisitCXXMethodDecl().
Definition at line 3010 of file ASTContext.h.
References clang::isTargetAddressSpace().
|
inline |
Definition at line 1144 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 13004 of file ASTContext.cpp.
Referenced by clang::Sema::setTagNameForLinkagePurposes().
void ASTContext::adjustDeducedFunctionResultType | ( | FunctionDecl * | FD, |
QualType | ResultType | ||
) |
Change the result type of a function type once it is deduced.
Definition at line 3652 of file ASTContext.cpp.
References adjustFunctionResultType(), getASTMutationListener(), clang::Redeclarable< decl_type >::getMostRecentDecl(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::ValueDecl::getType(), and clang::ValueDecl::setType().
Referenced by clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceReturnType(), and 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 3725 of file ASTContext.cpp.
References clang::TypeLoc::getFullDataSizeForType(), getFunctionTypeWithExceptionSpec(), clang::ValueDecl::getType(), clang::DeclaratorDecl::getTypeSourceInfo(), and clang::ValueDecl::setType().
Referenced by clang::Sema::actOnDelayedExceptionSpecification(), clang::ASTReader::FinishedDeserializing(), and clang::Sema::UpdateExceptionSpec().
Change the result type of a function type, preserving sugar such as attributed types.
Definition at line 3640 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 3622 of file ASTContext.cpp.
References clang::FunctionProtoType::ExtProtoInfo::ExtInfo, clang::FunctionType::getExtInfo(), getFunctionNoProtoType(), getFunctionType(), clang::Result, and clang::T.
Referenced by clang::Sema::adjustMemberFunctionCC(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), handleFunctionTypeAttr(), clang::Sema::IsFunctionConversion(), and clang::Sema::MergeFunctionDecl().
void ASTContext::adjustObjCTypeParamBoundType | ( | const ObjCTypeParamDecl * | Orig, |
ObjCTypeParamDecl * | New | ||
) | const |
Definition at line 6004 of file ASTContext.cpp.
References getObjCTypeParamType(), getTrivialTypeSourceInfo(), clang::TypeDecl::getTypeForDecl(), clang::QualType::getTypePtr(), clang::TypedefNameDecl::getUnderlyingType(), clang::TypeDecl::setTypeForDecl(), and clang::TypedefNameDecl::setTypeSourceInfo().
Referenced by checkTypeParamListConsistency().
Definition at line 5016 of file ASTContext.cpp.
References getAddrSpaceQualType(), and clang::opencl_constant.
Referenced by clang::Sema::ActOnNumericConstant(), clang::Sema::BuildPredefinedExpr(), and 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 3578 of file ASTContext.cpp.
References adjustType(), getAdjustedType(), getAttributedType(), getBTFTagAttributedType(), getElaboratedType(), getMacroQualifiedType(), getParenType(), and clang::Type::getTypeClass().
Referenced by adjustFunctionResultType(), adjustType(), and getFunctionTypeWithExceptionSpec().
Definition at line 757 of file ASTContext.h.
References Allocate(), clang::Num, and clang::T.
Definition at line 754 of file ASTContext.h.
Referenced by Allocate(), ASTAllocateString(), clang::FunctionDecl::DefaultedOrDeletedFunctionInfo::Create(), clang::DependentFunctionTemplateSpecializationInfo::Create(), clang::PackIndexingExpr::Create(), clang::SizeOfPackExpr::Create(), clang::RecoveryExpr::Create(), clang::ObjCTypeParamList::create(), clang::LambdaExpr::Create(), clang::UnresolvedMemberExpr::Create(), clang::UnresolvedLookupExpr::Create(), clang::PseudoObjectExpr::Create(), clang::ConstantExpr::Create(), clang::DependentScopeDeclRefExpr::Create(), clang::DeclRefExpr::Create(), clang::OMPArrayShapingExpr::Create(), clang::OMPIteratorExpr::Create(), clang::CXXUnresolvedConstructExpr::Create(), clang::FunctionParmPackExpr::Create(), clang::ObjCAtTryStmt::Create(), clang::GenericSelectionExpr::Create(), clang::CapturedStmt::Create(), clang::CXXNewExpr::Create(), clang::CXXTemporaryObjectExpr::Create(), clang::CXXDependentScopeMemberExpr::Create(), clang::UserDefinedLiteral::Create(), clang::CXXMemberCallExpr::Create(), clang::CallExpr::Create(), clang::CUDAKernelCallExpr::Create(), clang::CaseStmt::Create(), clang::CXXOperatorCallExpr::Create(), clang::CXXConstructExpr::Create(), clang::IfStmt::Create(), clang::PredefinedExpr::Create(), clang::CXXDefaultInitExpr::Create(), clang::ParenListExpr::Create(), clang::ReturnStmt::Create(), clang::SwitchStmt::Create(), clang::StringLiteral::Create(), clang::WhileStmt::Create(), clang::TemplateArgumentList::CreateCopy(), clang::SizeOfPackExpr::CreateDeserialized(), clang::PackIndexingExpr::CreateDeserialized(), clang::CapturedStmt::CreateDeserialized(), clang::RecoveryExpr::CreateEmpty(), clang::DeclRefExpr::CreateEmpty(), clang::MemberExpr::CreateEmpty(), clang::DependentScopeDeclRefExpr::CreateEmpty(), clang::ConstantExpr::CreateEmpty(), clang::CXXUnresolvedConstructExpr::CreateEmpty(), clang::GenericSelectionExpr::CreateEmpty(), clang::ObjCAtTryStmt::CreateEmpty(), clang::OMPArrayShapingExpr::CreateEmpty(), clang::OMPIteratorExpr::CreateEmpty(), clang::FunctionParmPackExpr::CreateEmpty(), clang::UnresolvedLookupExpr::CreateEmpty(), clang::UnresolvedMemberExpr::CreateEmpty(), clang::CaseStmt::CreateEmpty(), clang::IfStmt::CreateEmpty(), clang::PredefinedExpr::CreateEmpty(), clang::SwitchStmt::CreateEmpty(), clang::ReturnStmt::CreateEmpty(), clang::CXXDependentScopeMemberExpr::CreateEmpty(), clang::WhileStmt::CreateEmpty(), clang::CXXNewExpr::CreateEmpty(), clang::CXXConstructExpr::CreateEmpty(), clang::CXXTemporaryObjectExpr::CreateEmpty(), clang::CallExpr::CreateEmpty(), clang::CXXOperatorCallExpr::CreateEmpty(), clang::CXXMemberCallExpr::CreateEmpty(), clang::CUDAKernelCallExpr::CreateEmpty(), clang::UserDefinedLiteral::CreateEmpty(), clang::StringLiteral::CreateEmpty(), clang::ParenListExpr::CreateEmpty(), getCanonicalTemplateSpecializationType(), getCountAttributedType(), getDeclAttrs(), getDeducedTemplateName(), getDependentTemplateSpecializationType(), getElaboratedType(), clang::ASTReader::GetExternalCXXBaseSpecifiers(), getObjCInterfaceType(), getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), getOverloadedTemplateName(), getPackIndexingType(), getSubstTemplateTypeParmType(), getTemplateSpecializationType(), getTypedefType(), getUsingType(), clang::NestedNameSpecifierLocBuilder::getWithLocInContext(), clang::Decl::operator new(), clang::Sema::SaveNestedNameSpecifierAnnotation(), and clang::CXXRecordDecl::setCaptures().
|
inline |
Allocates a DeclListNode
or returns one from the ListNodeFreeList
pool.
Definition at line 770 of file ASTContext.h.
|
inline |
Return true if there is at least one @implementation in the TU.
Definition at line 3197 of file ASTContext.h.
Referenced by clang::SemaObjC::DiagnoseUseOfUnimplementedSelectors().
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 5903 of file ASTContext.cpp.
References clang::ObjCObjectType::getBaseType(), getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), clang::ObjCObjectType::getTypeArgsAsWritten(), clang::ObjCObjectType::isKindOfTypeAsWritten(), ObjCBuiltinClassTy, ObjCBuiltinIdTy, clang::ObjCProtocolQualifiers< T >::qual_begin(), clang::ObjCProtocolQualifiers< T >::qual_end(), and clang::ast_matchers::type.
Referenced by getObjCTypeParamType().
QualType ASTContext::areCommonBaseCompatible | ( | const ObjCObjectPointerType * | LHSOPT, |
const ObjCObjectPointerType * | RHSOPT | ||
) |
Definition at line 10781 of file ASTContext.cpp.
References clang::Type::castAs(), clang::declaresSameEntity(), clang::ObjCInterfaceDecl::getCanonicalDecl(), clang::ObjCObjectType::getInterface(), getIntersectionOfProtocols(), getObjCInterfaceType(), getObjCObjectPointerType(), getObjCObjectType(), clang::ObjCObjectPointerType::getObjectType(), clang::ObjCObjectType::getSuperClassType(), clang::ObjCObjectType::getTypeArgs(), clang::ObjCObjectType::getTypeArgsAsWritten(), clang::ObjCObjectType::isKindOfType(), clang::QualType::isNull(), clang::ObjCObjectType::isSpecialized(), clang::Result, and sameObjCTypeArgs().
Referenced by clang::SemaObjC::FindCompositeObjCPointerType().
Definition at line 10966 of file ASTContext.cpp.
References canAssignObjCInterfaces(), and clang::Type::getAs().
Referenced by clang::Sema::CheckCompareOperands().
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 10268 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 clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckImplicitConversion(), CompareStandardConversionSequences(), and IsVectorConversion().
Return true if the given types are an SVE builtin and a VectorType that is a fixed-length representation of the SVE builtin for a specific vector-length.
Definition at line 10179 of file ASTContext.cpp.
References clang::Generic, clang::Type::getAs(), getBuiltinVectorTypeInfo(), clang::Type::getSveEltType(), getSVETypeSize(), getTypeSize(), hasSameType(), clang::SveFixedLengthData, and clang::SveFixedLengthPredicate.
Referenced by clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckImplicitConversion(), 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 10133 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 clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckVectorOperands(), CompareStandardConversionSequences(), clang::Sema::IsPointerConversion(), 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 10317 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 clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckImplicitConversion(), and IsVectorConversion().
Return true if the given vector types are lax-compatible SVE vector types, false otherwise.
Definition at line 10204 of file ASTContext.cpp.
References clang::LangOptionsBase::All, clang::Generic, clang::Type::getAs(), getLangOpts(), clang::Type::getSveEltType(), getSVETypeSize(), getTypeSize(), clang::LangOptionsBase::Integer, clang::Type::isIntegerType(), and clang::SveFixedLengthData.
Referenced by clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckImplicitConversion(), and IsVectorConversion().
bool ASTContext::AtomicUsesUnsupportedLibcall | ( | const AtomicExpr * | E | ) | const |
Definition at line 13114 of file ASTContext.cpp.
References E, clang::TargetInfo::getMaxAtomicInlineWidth(), clang::Type::getPointeeType(), clang::CharUnits::getQuantity(), getTargetInfo(), clang::TargetInfo::getTriple(), clang::Expr::getType(), getTypeAlignInChars(), getTypeSizeInChars(), clang::T, and toBits().
Referenced by clang::Sema::BuildAtomicExpr().
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 530 of file ASTContext.cpp.
References adjustDeclToTemplate(), cacheRawCommentForDecl(), Comments, D, DeclRawComments, clang::RawCommentList::empty(), clang::File, clang::Decl::getCanonicalDecl(), clang::RawCommentList::getCommentsInFile(), getDeclLocsForCommentSearch(), clang::SourceManager::getDecomposedLoc(), clang::Decl::getLocation(), getRawCommentForDeclNoCacheImpl(), clang::Decl::isInvalidDecl(), clang::SourceLocation::isValid(), Loc, and ParsedComments.
Referenced by clang::Sema::ActOnDocumentableDecls().
|
inline |
Definition at line 762 of file ASTContext.h.
const CXXRecordDecl * ASTContext::baseForVTableAuthentication | ( | const CXXRecordDecl * | ThisClass | ) |
Resolve the root record to be used to derive the vtable pointer authentication policy for the specified record.
Definition at line 14552 of file ASTContext.cpp.
References getASTRecordLayout(), and clang::CXXRecordDecl::isPolymorphic().
Referenced by mangleOverrideDiscrimination().
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 8160 of file ASTContext.cpp.
References D, clang::Type::getAsCXXRecordDecl(), getBlockVarCopyInit(), clang::BlockVarCopyInit::getCopyExpr(), clang::Qualifiers::getObjCLifetime(), clang::QualType::getQualifiers(), 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.
BuiltinTemplateDecl * ASTContext::buildBuiltinTemplateDecl | ( | BuiltinTemplateKind | BTK, |
const IdentifierInfo * | II | ||
) | const |
Definition at line 1188 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::BuiltinTemplateDecl::Create(), and getTranslationUnitDecl().
Referenced by getBuiltinCommonTypeDecl(), getMakeIntegerSeqDecl(), and getTypePackElementDecl().
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 1221 of file ASTContext.cpp.
References clang::Decl::addAttr(), clang::CPlusPlus, clang::CXXRecordDecl::Create(), clang::RecordDecl::Create(), clang::IdentifierTable::get(), getLangOpts(), getTranslationUnitDecl(), Idents, Loc, and clang::Decl::setImplicit().
Referenced by CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), CreateHexagonBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), CreateXtensaABIBuiltinVaListDecl(), getBlockDescriptorExtendedType(), getBlockDescriptorType(), getCFConstantStringDecl(), clang::CodeGen::CodeGenModule::getObjCFastEnumerationStateType(), getObjCSuperType(), InitBuiltinTypes(), and clang::Sema::Initialize().
TypedefDecl * ASTContext::buildImplicitTypedef | ( | QualType | T, |
StringRef | Name | ||
) | const |
Create a new implicit TU-level typedef declaration.
Definition at line 1237 of file ASTContext.cpp.
References clang::TypedefDecl::Create(), clang::IdentifierTable::get(), getTranslationUnitDecl(), getTrivialTypeSourceInfo(), Idents, clang::Decl::setImplicit(), and clang::T.
Referenced by clang::Sema::addImplicitTypedef(), CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), CreateCharPtrNamedVaListDecl(), CreateHexagonBuiltinVaListDecl(), CreatePNaClABIBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateVoidPtrBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), CreateXtensaABIBuiltinVaListDecl(), 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 504 of file ASTContext.cpp.
References CommentlessRedeclChains, clang::LangOptions::CommentOpts, DeclRawComments, clang::Decl::getCanonicalDecl(), clang::RawComment::isDocumentation(), clang::CommentOptions::ParseAllComments, 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 10535 of file ASTContext.cpp.
References canAssignObjCInterfaces(), clang::ObjCObjectType::getInterface(), clang::ObjCObjectPointerType::getObjectType(), clang::ObjCObjectType::isKindOfType(), clang::ObjCObjectType::isObjCClass(), clang::ObjCObjectType::isObjCQualifiedClass(), clang::ObjCObjectType::isObjCQualifiedId(), clang::ObjCObjectType::isObjCUnqualifiedId(), ObjCQualifiedClassTypesAreCompatible(), ObjCQualifiedIdTypesAreCompatible(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().
Referenced by clang::SemaObjC::ActOnPropertyImplDecl(), clang::applyObjCTypeArgs(), areComparableObjCPointerTypes(), canAssignObjCInterfaces(), canAssignObjCObjectTypes(), canBindObjCObjectType(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::SemaObjC::DiagnosePropertyAccessorMismatch(), clang::SemaObjC::FindCompositeObjCPointerType(), findMethodDecl(), clang::Sema::isObjCPointerConversion(), isObjCTypeSubstitutable(), and mergeTypes().
bool ASTContext::canAssignObjCInterfaces | ( | const ObjCObjectType * | LHS, |
const ObjCObjectType * | RHS | ||
) |
Definition at line 10904 of file ASTContext.cpp.
References clang::Type::castAs(), CollectInheritedProtocols(), clang::declaresSameEntity(), clang::ObjCObjectType::getInterface(), clang::ObjCProtocolQualifiers< T >::getNumProtocols(), clang::ObjCObjectType::getSuperClassType(), clang::ObjCObjectType::getTypeArgs(), clang::ObjCObjectType::isSpecialized(), clang::ObjCInterfaceDecl::isSuperClassOf(), clang::ObjCProtocolQualifiers< T >::quals(), 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 10588 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 10978 of file ASTContext.cpp.
References canAssignObjCInterfaces(), and getObjCObjectPointerType().
Referenced by clang::Sema::CompareReferenceRelationship().
bool ASTContext::canBuiltinBeRedeclared | ( | const FunctionDecl * | FD | ) | const |
Return whether a declaration to a builtin is allowed to be overloaded/redeclared.
Definition at line 9844 of file ASTContext.cpp.
References BuiltinInfo, clang::Builtin::Context::canBeRedeclared(), clang::FunctionDecl::getBuiltinID(), clang::Builtin::Context::hasCustomTypechecking(), and clang::Builtin::NotBuiltin.
void ASTContext::cleanup | ( | ) |
Definition at line 939 of file ASTContext.cpp.
References clang::Value::clear(), and E.
Referenced by ~ASTContext().
comments::FullComment * ASTContext::cloneFullComment | ( | comments::FullComment * | FC, |
const Decl * | D | ||
) | const |
Definition at line 592 of file ASTContext.cpp.
References clang::comments::DeclInfo::CommentDecl, D, 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 2705 of file ASTContext.cpp.
References CollectInheritedProtocols(), and clang::ObjCInterfaceDecl::getSuperClass().
Referenced by clang::SemaObjC::actOnObjCTypeArgsOrProtocolQualifiers(), canAssignObjCInterfaces(), CollectInheritedProtocols(), getIntersectionOfProtocols(), ObjCQualifiedIdTypesAreCompatible(), and QIdProtocolsAdoptObjCObjectProtocols().
unsigned ASTContext::CountNonClassIvars | ( | const ObjCInterfaceDecl * | OI | ) | const |
Definition at line 2962 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 12840 of file ASTContext.cpp.
References 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 12819 of file ASTContext.cpp.
References clang::ItaniumMangleContext::create(), clang::MicrosoftMangleContext::create(), getDiagnostics(), and clang::T.
Referenced by clang::PredefinedExpr::ComputeName(), clang::ASTNameGenerator::Implementation::getAllManglings(), getPointerAuthTypeDiscriminator(), getPointerAuthVTablePointerDiscriminator(), InitDeviceMC(), markUsedForAliasOrIfunc(), and useAbbreviatedThunkName().
std::unique_ptr< MangleNumberingContext > ASTContext::createMangleNumberingContext | ( | ) | const |
Definition at line 12987 of file ASTContext.cpp.
Referenced by 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 3072 of file ASTContext.cpp.
References clang::TypeLoc::getFullDataSizeForType(), and clang::T.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::BuildMemInitializer(), clang::Sema::CheckTypenameType(), EvaluateBooleanTypeTrait(), getTemplateSpecializationTypeInfo(), getTrivialTypeSourceInfo(), GetTypeSourceInfoForDeclarator(), and clang::ASTDeclReader::VisitDeclaratorDecl().
|
inline |
Definition at line 760 of file ASTContext.h.
Referenced by clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::Sema::AttachBaseSpecifiers(), clang::VarDecl::setInit(), clang::TagDecl::setQualifierInfo(), and clang::QualifierInfo::setTemplateParameterListsInfo().
|
inline |
Deallcates a DeclListNode
by returning it to the ListNodeFreeList
pool.
Definition at line 781 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 12619 of file ASTContext.cpp.
References D, clang::VarDecl::DeclarationOnly, DeclMustBeEmitted(), clang::CXXMethodDecl::getCanonicalDecl(), getCurrentKeyFunction(), clang::Decl::getDeclContext(), GetGVALinkageForFunction(), GetGVALinkageForVariable(), clang::DeclContext::getParent(), getTargetInfo(), clang::GVA_AvailableExternally, clang::Decl::hasAttr(), clang::DeclContext::isDependentContext(), clang::isDiscardableGVALinkage(), clang::CXXRecordDecl::isDynamicClass(), isMSStaticDataMemberInlineDefinition(), clang::SC_Register, and clang::FunctionDecl::TK_FunctionTemplate.
Referenced by clang::Sema::CheckCompleteVariableDeclaration(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), DeclMustBeEmitted(), isRequiredDecl(), and clang::Sema::ShouldWarnIfUnusedFileScopedDecl().
QualType ASTContext::DecodeTypeStr | ( | const char *& | Str, |
const ASTContext & | Context, | ||
ASTContext::GetBuiltinTypeError & | Error, | ||
bool & | RequireICE, | ||
bool | AllowTypeModifiers | ||
) | const |
Definition at line 12327 of file ASTContext.cpp.
References DecodeTypeFromStr().
Referenced by clang::DecodePPCMMATypeFromStr().
void ASTContext::deduplicateMergedDefinitonsFor | ( | NamedDecl * | ND | ) |
Clean up the merged definition list.
Call this if you might have added duplicates into the list.
Definition at line 1064 of file ASTContext.cpp.
References 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 2688 of file ASTContext.cpp.
References DeepCollectObjCIvars(), clang::ObjCIvarDecl::getNextIvar(), clang::ObjCInterfaceDecl::getSuperClass(), and clang::ObjCInterfaceDecl::ivars().
Referenced by clang::SemaObjC::ActOnDefs(), and DeepCollectObjCIvars().
void ASTContext::DumpRecordLayout | ( | const RecordDecl * | RD, |
raw_ostream & | OS, | ||
bool | Simple = false |
||
) | const |
Definition at line 3752 of file RecordLayoutBuilder.cpp.
References DumpRecordLayout(), clang::ASTRecordLayout::getAlignment(), getASTRecordLayout(), clang::ASTRecordLayout::getDataSize(), clang::ASTRecordLayout::getFieldCount(), clang::ASTRecordLayout::getFieldOffset(), clang::ASTRecordLayout::getPreferredAlignment(), clang::ASTRecordLayout::getSize(), getTypeDeclType(), isMsLayout(), and toBits().
Referenced by DumpRecordLayout(), and getASTRecordLayout().
void ASTContext::eraseDeclAttrs | ( | const Decl * | D | ) |
Erase the attributes corresponding to the given declaration.
Definition at line 1527 of file ASTContext.cpp.
References D.
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 14371 of file ASTContext.cpp.
Referenced by getFunctionFeatureMap().
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 12738 of file ASTContext.cpp.
References clang::Decl::getAsFunction(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::Redeclarable< decl_type >::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 3150 of file ASTContext.cpp.
References clang::Qualifiers::addAddressSpace(), clang::QualType::getAddressSpace(), getCanonicalType(), clang::Qualifiers::hasAddressSpace(), clang::QualifierCollector::strip(), and clang::T.
Referenced by clang::Sema::ActOnVariableDeclarator(), AdjustAddressSpaceForBuiltinOperandType(), AdjustFunctionParmAndArgTypesForDeduction(), adjustStringLiteralBaseType(), clang::Sema::BuildAddressSpaceAttr(), clang::Sema::BuildAtomicExpr(), builtinAllocaAddrSpace(), checkConditionalPointerCompatibility(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::DeclareImplicitCopyAssignment(), clang::Sema::DeclareImplicitCopyConstructor(), clang::Sema::DeclareImplicitMoveAssignment(), clang::Sema::DeclareImplicitMoveConstructor(), DecodeTypeFromStr(), clang::Sema::deduceOpenCLAddressSpace(), deduceOpenCLPointeeAddrSpace(), clang::CodeGen::CodeGenTypes::DeriveThisType(), HandleAddressSpaceTypeAttribute(), handleMSPointerTypeQualifierAttr(), HandleWebAssemblyFuncrefAttr(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectMemberConversion(), clang::TreeTransform< Derived >::RebuildQualifiedType(), rewriteBuiltinFunctionDecl(), and clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter().
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 7554 of file ASTContext.cpp.
References getArrayParameterType(), getDecayedType(), getLangOpts(), clang::HLSL, clang::Type::isArrayType(), clang::Type::isConstantArrayType(), clang::Type::isFunctionType(), and clang::T.
Referenced by clang::SemaObjC::ActOnMethodDeclaration(), clang::Sema::BuildFunctionType(), clang::Sema::CheckParameter(), DeduceNonTypeTemplateArgument(), getSignatureParameterType(), and ProcessAPINotes().
|
inline |
Definition at line 1471 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), and getAdjustedType().
Return the uniqued reference to a type adjusted from the original type to a new type.
Definition at line 3809 of file ASTContext.cpp.
References getCanonicalType(), and clang::AdjustedType::Profile().
Referenced by clang::Sema::adjustMemberFunctionCC(), 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 2633 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 2641 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 750 of file ASTContext.h.
Referenced by clang::Decl::getID(), clang::CXXCtorInitializer::getID(), clang::Stmt::getID(), and clang::RawComment::parse().
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 7587 of file ASTContext.cpp.
References getAsArrayType(), getAttributedType(), clang::ArrayType::getElementType(), clang::ArrayType::getIndexTypeQualifiers(), clang::Type::getNullability(), getPointerType(), getQualifiedType(), and clang::Result.
Referenced by clang::Sema::ActOnStringLiteral(), BuildCookedLiteralOperatorCall(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildVAArgExpr(), clang::Sema::CheckSpecifiedExceptionType(), CheckTemplateArgumentAddressOfObjectOrFunction(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::Sema::CreateBuiltinArraySubscriptExpr(), DecodeTypeFromStr(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DiagnoseAssignmentResult(), doRewriteToUTF8StringBoxedExpressionHelper(), GetBuiltinType(), getCanonicalParamType(), getDecayedType(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), IsStandardConversion(), and clang::Sema::PerformImplicitConversion().
uint64_t ASTContext::getArrayInitLoopExprElementCount | ( | const ArrayInitLoopExpr * | AILE | ) | const |
Return number of elements initialized in an ArrayInitLoopExpr.
Definition at line 7639 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 3873 of file ASTContext.cpp.
References getArrayParameterType(), getCanonicalType(), clang::Type::isArrayParameterType(), clang::QualType::isCanonical(), and clang::Type::isConstantArrayType().
Referenced by getAdjustedParameterType(), getArrayParameterType(), getCanonicalParamType(), getCommonNonSugarTypeNode(), IsStandardConversion(), and clang::Sema::PerformImplicitConversion().
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 7496 of file ASTContext.cpp.
References clang::Qualifiers::empty(), getConstantArrayType(), getDependentSizedArrayType(), getIncompleteArrayType(), getQualifiedType(), getVariableArrayType(), clang::SplitQualType::Quals, clang::T, and clang::SplitQualType::Ty.
Referenced by clang::Sema::ActOnFields(), actOnOMPReductionKindClause(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuiltinRemoveExtent(), clang::Sema::CheckAllocatedType(), CheckC23ConstexprInitStringLiteral(), clang::Sema::CheckCountedByAttrOnField(), checkFormatStringExpr(), clang::Sema::CheckStaticArrayArgument(), DeduceFromInitializerList(), clang::Sema::deduceOpenCLAddressSpace(), DeduceTemplateArgumentsByTypeMatch(), diagnoseArrayStarInParamType(), DiagnoseDivisionSizeofPointerOrArray(), clang::CodeGen::ReductionCodeGen::emitInitialization(), emitPartialArrayDestroy(), clang::Sema::FillInlineAsmIdentifierInfo(), clang::Sema::FindCompositePointerType(), getArrayDecayedType(), getAsConstantArrayType(), getAsDependentSizedArrayType(), getAsIncompleteArrayType(), getAsVariableArrayType(), getDeclAlign(), clang::CFGImplicitDtor::getDestructorDecl(), getLValueType(), clang::ento::MemRegionManager::getStaticSize(), handleInitPriorityAttr(), clang::ASTNodeImporter::ImportAPValue(), clang::InitializationSequence::InitializeFrom(), clang::interp::InterpretOffsetOf(), isDesignatorAtObjectEnd(), isSameEntity(), IsStringInit(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), mergeTypes(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), clang::ento::ExprEngine::ProcessDeleteDtor(), TryArrayCopy(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), TryListConversion(), TryListInitialization(), tryObjCWritebackConversion(), TryOrBuildParenListInitialization(), TypeRequiresBuiltinLaunderImp(), unwrapCastAwayConstnessLevel(), UnwrapSimilarArrayTypes(), and clang::ASTNodeImporter::VisitVarDecl().
|
inline |
Definition at line 2915 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), clang::ast_matchers::libc_func_matchers::AST_MATCHER(), BitsContainNoUserData(), clang::Sema::BuildCXXNew(), buildSingleCopyAssignRecursively(), calculateLegacyCbufferSize(), clang::Sema::CheckCompleteDecompositionDeclaration(), CheckFormatString(), clang::Sema::CheckStaticArrayArgument(), clang::Sema::CheckVariableDeclarationType(), CompareImplicitConversionSequences(), DeduceTemplateArgumentsByTypeMatch(), EmitCXXNewAllocSize(), EmitMemberInitializer(), clang::CodeGen::CodeGenModule::EmitNullConstant(), EquivalentArrayTypes(), evenFlexibleArraySize(), clang::analyze_scanf::ScanfSpecifier::fixType(), fixVarDeclWithArray(), fixVariable(), FixVarInitializerWithSpan(), clang::Sema::FormatStringHasSArg(), clang::CodeGen::CodeGenModule::GetConstantArrayFromStringLiteral(), clang::VarDecl::getFlexibleArrayInitChars(), getTypeExpansion(), clang::VarDecl::hasFlexibleArrayInit(), isConstantSizeArrayWithMoreThanOneElement(), clang::CodeGen::isEmptyField(), clang::Decl::isFlexibleArrayMemberLike(), isIncompleteOrZeroLengthArrayType(), clang::CodeGen::isSingleElementStruct(), isValidStructGUID(), isZeroSizedArray(), mergeTypes(), clang::SemaObjC::ParseObjCStringLiteral(), clang::InitializationSequence::Perform(), ProcessFormatStringLiteral(), setUsedBits(), and TryOrBuildParenListInitialization().
|
inline |
Definition at line 2924 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by DeduceTemplateArgumentsByTypeMatch().
|
inline |
Definition at line 2921 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddInitializerToDecl(), clang::Sema::completeExprArrayBound(), 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 9886 of file ASTContext.cpp.
Referenced by clang::Sema::ClassifyName(), clang::ASTImporter::Import(), and clang::Sema::isTemplateName().
|
inline |
Return the total amount of physical memory allocated for representing AST nodes and type information.
Definition at line 788 of file ASTContext.h.
|
inline |
Retrieve a pointer to the AST mutation listener associated with this AST context, if any.
Definition at line 1289 of file ASTContext.h.
References Listener.
Referenced by adjustDeducedFunctionResultType(), applyOMPAllocateAttribute(), clang::SemaOpenMP::CheckOMPThreadPrivateDecl(), clang::ASTReader::FinishedDeserializing(), clang::Decl::getASTMutationListener(), mergeDefinitionIntoModule(), and clang::TranslationUnitDecl::setAnonymousNamespace().
const ASTRecordLayout & ASTContext::getASTObjCImplementationLayout | ( | const ObjCImplementationDecl * | D | ) | const |
Get or compute information about the layout of the specified Objective-C implementation.
This may differ from the interface if synthesized ivars are present.
Definition at line 3099 of file ASTContext.cpp.
References D.
Referenced by lookupFieldBitOffset().
const ASTRecordLayout & ASTContext::getASTObjCInterfaceLayout | ( | const ObjCInterfaceDecl * | D | ) | const |
Get or compute information about the layout of the specified Objective-C interface.
Definition at line 3094 of file ASTContext.cpp.
References D.
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 3334 of file RecordLayoutBuilder.cpp.
References clang::ExternalASTSource::CompleteType(), D, DumpRecordLayout(), clang::CharUnits::fromQuantity(), getExternalSource(), getLangOpts(), clang::Decl::getMostRecentDecl(), getTargetInfo(), clang::CXXRecordDecl::isDynamicClass(), clang::Decl::isInvalidDecl(), isMsLayout(), mustSkipTailPadding(), and clang::CharUnits::Zero().
Referenced by AddIndirectPrimaryBases(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), clang::interp::IntPointer::atOffset(), clang::interp::IntPointer::baseCast(), baseForVTableAuthentication(), BitsContainNoUserData(), clang::CodeGen::CGCXXABI::buildThisParam(), calculateOffset(), classifyType(), clang::RecordDecl::completeDefinition(), computeFullPathsForVFTables(), clang::CodeGen::CodeGenModule::computeNonVirtualBaseClassOffset(), computeOffsetHint(), clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), DumpRecordLayout(), EmitNullBaseClassInitialization(), EmitNullConstant(), EncodeBitField(), enumerateData(), findPathsToSubobject(), getBaseAlignmentAndOffsetFromLValue(), getBaseAlignmentAndOffsetFromPtr(), clang::CodeGen::CodeGenModule::getClassPointerAlignment(), getDeclAlign(), getDerivedToBaseAlignmentAndOffset(), clang::CodeGen::CodeGenModule::getDynamicOffsetAlignment(), getFieldOffsetInBits(), clang::VarDecl::getFlexibleArrayInitChars(), getMemberPointerPathAdjustment(), clang::CodeGen::CodeGenModule::getMinimumClassObjectSize(), getOffsetOfBaseWithVBPtr(), getOffsetOfFullPath(), getPreferredTypeAlign(), getTypeInfoDataSizeInChars(), getTypeUnadjustedAlign(), clang::CodeGen::CodeGenModule::getVBaseAlignment(), clang::interp::InterpretOffsetOf(), isDesignatorAtObjectEnd(), isIntegerLikeType(), clang::Sema::LookupInlineAsmField(), setUsedBits(), structHasUniqueObjectRepresentations(), clang::interp::Pointer::toAPValue(), and clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias().
|
inline |
Definition at line 2918 of file ASTContext.h.
References getAsArrayType(), and clang::T.
Referenced by clang::Sema::CheckVariableDeclarationType(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), emitArraySubscriptGEP(), emitPointerArithmetic(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), EquivalentArrayTypes(), getFixedSizeElementType(), mergeTypes(), and TryOrBuildParenListInitialization().
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 6438 of file ASTContext.cpp.
References getAtomicType(), getCanonicalType(), clang::AtomicType::Profile(), and clang::T.
Referenced by clang::Sema::BuildAtomicType(), getAtomicType(), getCommonNonSugarTypeNode(), getVariableArrayDecayedType(), clang::Sema::Initialize(), makeQualifiedLValueReferenceType(), and mergeTypes().
QualType ASTContext::getAttributedType | ( | attr::Kind | attrKind, |
QualType | modifiedType, | ||
QualType | equivalentType, | ||
const Attr * | attr = nullptr |
||
) | const |
Definition at line 5229 of file ASTContext.cpp.
References clang::ast_matchers::attr, getCanonicalType(), clang::AttributedType::Profile(), and clang::ast_matchers::type.
Referenced by adjustType(), clang::Sema::BuildFieldReferenceExpr(), clang::SemaObjC::BuildObjCBoxedExpr(), CheckNullabilityTypeSpecifier(), computeConditionalNullability(), clang::desugarForDiagnostic(), getArrayDecayedType(), getAttributedType(), getBaseMessageSendResultType(), getCommonSugarTypeNode(), clang::SemaObjC::getMessageSendResultType(), mergeParamDeclTypes(), mergeTypeNullabilityForRedecl(), ProcessAPINotes(), clang::SemaObjC::ProcessPropertyDecl(), rebuildAttributedTypeWithoutNullability(), and stripObjCInstanceType().
QualType ASTContext::getAttributedType | ( | const Attr * | attr, |
QualType | modifiedType, | ||
QualType | equivalentType | ||
) | const |
Definition at line 5252 of file ASTContext.cpp.
References clang::ast_matchers::attr, and getAttributedType().
QualType ASTContext::getAttributedType | ( | NullabilityKind | nullability, |
QualType | modifiedType, | ||
QualType | equivalentType | ||
) |
Definition at line 5257 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 6465 of file ASTContext.cpp.
References clang::Auto, AutoDeductTy, and clang::QualType::isNull().
Referenced by clang::Sema::BuildCXXForRangeStmt(), clang::Sema::buildLambdaInitCaptureInitialization(), clang::Sema::CheckExplicitlyDefaultedComparison(), ConvertDeclSpecToType(), clang::Sema::deduceVarTypeFromInitializer(), getAutoRRefDeductType(), getDummyLambdaType(), and clang::ASTReader::GetType().
QualType ASTContext::getAutoRRefDeductType | ( | ) | const |
C++11 deduction pattern for 'auto &&' type.
getAutoRRefDeductType - Get type pattern for deducing against 'auto &&'.
Definition at line 6476 of file ASTContext.cpp.
References AutoRRefDeductTy, getAutoDeductType(), getRValueReferenceType(), and clang::QualType::isNull().
Referenced by clang::Sema::ActOnCXXForRangeStmt(), and clang::ASTReader::GetType().
QualType ASTContext::getAutoType | ( | QualType | DeducedType, |
AutoTypeKeyword | Keyword, | ||
bool | IsDependent, | ||
bool | IsPack = false , |
||
ConceptDecl * | 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 6367 of file ASTContext.cpp.
Referenced by ConvertDeclSpecToType(), getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), getUnconstrainedType(), clang::TreeTransform< Derived >::RebuildAutoType(), and clang::TreeTransform< Derived >::RebuildQualifiedType().
|
inline |
Definition at line 800 of file ASTContext.h.
Referenced by clang::Sema::CheckCallingConvAttr(), HandleNeonVectorTypeAttr(), InitDeviceMC(), clang::Sema::Initialize(), isMsLayout(), and ProcessStmtAttribute().
Return the innermost element type of an array type.
For example, will return "int" for int[m][n]
Definition at line 7609 of file ASTContext.cpp.
References getBaseElementType(), and clang::ArrayType::getElementType().
Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFields(), clang::Sema::ActOnInitializerError(), actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPCopyinClause(), clang::SemaOpenMP::ActOnOpenMPCopyprivateClause(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::SemaOpenMP::ActOnOpenMPLastprivateClause(), clang::Sema::ActOnUninitializedDecl(), clang::SemaHLSL::ActOnVariableDeclarator(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildArrayType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXTypeConstructExpr(), BuildImplicitMemberInitializer(), clang::Sema::BuiltinRemoveExtent(), CheckAggExprForMemSetUse(), clang::Sema::CheckAllocatedType(), clang::Sema::checkArrayElementAlignment(), CheckBitcastType(), CheckC23ConstexprVarType(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckFieldDecl(), clang::interp::CheckNewTypeMismatch(), clang::Sema::CheckNontrivialField(), clang::SemaOpenACC::CheckReductionVar(), checkTrivialClassMembers(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::SemaObjC::CollectIvarsToConstructOrDestruct(), defaultedSpecialMemberIsConstexpr(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseDivisionSizeofPointerOrArray(), diagnoseOpenCLTypes(), EmitMemberInitializer(), emitReadOnlyPlacementAttrWarning(), FieldHasTrivialDestructorBody(), clang::Sema::FindAllocationFunctions(), getBaseElementType(), getDeclAlign(), clang::CFGImplicitDtor::getDestructorDecl(), getInnerObjCOwnership(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), getTypeAlignIfKnown(), handleInitPriorityAttr(), hasUniqueObjectRepresentations(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), clang::Sema::isAbstractType(), clang::QualType::isBitwiseCloneableType(), isConstNotMutableType(), clang::QualType::isCXX98PODType(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::QualType::isNonConstantStorage(), isTriviallyCopyableTypeImpl(), clang::QualType::isTriviallyRelocatableType(), clang::QualType::isTrivialType(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), PerformConstructorInitialization(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::Sema::RequireLiteralType(), clang::Sema::RequireNonAbstractType(), clang::Sema::RequireStructuralType(), clang::SemaObjC::SetIvarInitializers(), setUsedBits(), TryDefaultInitialization(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), TryValueInitialization(), TypeRequiresBuiltinLaunderImp(), and clang::UsedDeclVisitor< Derived >::VisitCXXDeleteExpr().
Return the innermost element type of a type (which needn't actually be an array type).
Definition at line 7613 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 5030 of file ASTContext.cpp.
References clang::BitIntType::Profile().
Referenced by clang::Sema::ActOnNumericConstant(), clang::Sema::BuildBitIntType(), 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 8078 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, buildImplicitRecord(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), getPointerType(), getTagDeclType(), 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 8043 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, buildImplicitRecord(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), getTagDeclType(), 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 3906 of file ASTContext.cpp.
References getBlockPointerType(), getCanonicalType(), clang::Type::isFunctionType(), clang::BlockPointerType::Profile(), and clang::T.
Referenced by clang::Sema::ActOnBlockStmtExpr(), addBlockPointerConversion(), clang::Sema::BuildBlockPointerType(), checkConditionalPointerCompatibility(), clang::Sema::DeduceReturnType(), getBlockPointerType(), getCommonNonSugarTypeNode(), clang::ento::MemRegionManager::getVarRegion(), mergeTypes(), and clang::Sema::PerformImplicitConversion().
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 3053 of file ASTContext.cpp.
References clang::Decl::hasAttr().
Referenced by BlockRequiresCopying(), and getBlockCaptureStr().
|
inline |
Retrieve declaration of 'BOOL' typedef.
Definition at line 2227 of file ASTContext.h.
Referenced by clang::SemaObjC::ActOnObjCBoolLiteral(), and getBOOLType().
|
inline |
Retrieve the identifier 'bool'.
Definition at line 2051 of file ASTContext.h.
References clang::IdentifierTable::get(), and Idents.
Referenced by clang::Sema::getPrintingPolicy().
|
inline |
type of 'BOOL' type.
Definition at line 2237 of file ASTContext.h.
References getBOOLDecl(), and getTypeDeclType().
Referenced by clang::SemaObjC::ActOnObjCBoolLiteral().
QualType ASTContext::getBTFTagAttributedType | ( | const BTFTypeTagAttr * | BTFAttr, |
QualType | Wrapped | ||
) | const |
Definition at line 5279 of file ASTContext.cpp.
References getCanonicalType(), and clang::BTFTagAttributedType::Profile().
Referenced by adjustType(), and getCommonSugarTypeNode().
BuiltinTemplateDecl * ASTContext::getBuiltinCommonTypeDecl | ( | ) | const |
Definition at line 1214 of file ASTContext.cpp.
References clang::BTK__builtin_common_type, buildBuiltinTemplateDecl(), and getBuiltinCommonTypeName().
Referenced by clang::ASTNodeImporter::VisitBuiltinTemplateDecl().
|
inline |
Definition at line 2069 of file ASTContext.h.
References clang::IdentifierTable::get(), and Idents.
Referenced by getBuiltinCommonTypeDecl().
TypedefDecl * ASTContext::getBuiltinMSVaListDecl | ( | ) | const |
Retrieve the C type declaration corresponding to the predefined __builtin_ms_va_list
type.
Definition at line 9837 of file ASTContext.cpp.
References CreateMSVaListDecl().
Referenced by getBuiltinMSVaListType(), and clang::Sema::Initialize().
|
inline |
Retrieve the type of the __builtin_ms_va_list
type.
Definition at line 2265 of file ASTContext.h.
References getBuiltinMSVaListDecl(), and getTypeDeclType().
Referenced by clang::Sema::BuildVAArgExpr(), and clang::desugarForDiagnostic().
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 12334 of file ASTContext.cpp.
References BuiltinInfo, clang::CPlusPlus, DecodeTypeFromStr(), clang::EST_BasicNoexcept, clang::EST_DynamicNone, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::FunctionProtoType::ExtProtoInfo::ExtInfo, GE_Missing_type, GE_None, getArrayDecayedType(), getDefaultCallingConvention(), getFunctionNoProtoType(), getFunctionType(), getLangOpts(), clang::Builtin::Context::getTypeString(), Id, clang::Type::isArrayType(), clang::Builtin::Context::isNoReturn(), clang::Builtin::Context::isNoThrow(), clang::FunctionProtoType::ExceptionSpecInfo::Type, clang::FunctionProtoType::ExtProtoInfo::Variadic, and clang::FunctionType::ExtInfo::withNoReturn().
Referenced by clang::Sema::ActOnFunctionDeclarator(), getAbsoluteValueArgumentType(), and clang::Sema::LazilyCreateBuiltin().
TypedefDecl * ASTContext::getBuiltinVaListDecl | ( | ) | const |
Retrieve the C type declaration corresponding to the predefined __builtin_va_list
type.
Definition at line 9819 of file ASTContext.cpp.
References CreateVaListDecl(), and clang::Decl::isImplicit().
Referenced by getBuiltinVaListType(), GetFullTypeForDeclarator(), getVaListTagDecl(), and clang::Sema::Initialize().
|
inline |
Retrieve the type of the __builtin_va_list
type.
Definition at line 2251 of file ASTContext.h.
References getBuiltinVaListDecl(), and getTypeDeclType().
Referenced by clang::Sema::BuildVAArgExpr(), DecodeTypeFromStr(), clang::desugarForDiagnostic(), and 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 4372 of file ASTContext.cpp.
References clang::BuiltinType::getKind().
Referenced by areCompatibleRVVTypes(), areCompatibleSveTypes(), clang::SemaRISCV::CheckBuiltinFunctionCall(), clang::CheckInvalidVLENandLMUL(), clang::SemaRISCV::checkRVVTypeSupport(), clang::Sema::CheckSizelessVectorConditionalTypes(), clang::Sema::CheckSizelessVectorOperands(), checkSizelessVectorShift(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::Type::getRVVEltType(), getRVVTypeSize(), clang::Sema::GetSignedSizelessVectorType(), 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 8200 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.
CanQualType ASTContext::getCanonicalFunctionResultType | ( | QualType | ResultType | ) | const |
Adjust the given function result type.
Definition at line 4798 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 clang::Sema::deduceClosureReturnType(), and getFunctionNoProtoType().
NestedNameSpecifier * ASTContext::getCanonicalNestedNameSpecifier | ( | NestedNameSpecifier * | NNS | ) | const |
Retrieves the "canonical" nested name specifier for a given nested name specifier.
The canonical nested name specifier is a nested name specifier that uniquely identifies a type or namespace within the type system. For example, given:
Here, the nested-name-specifier for N::S::X<T>:: will be S::X<template-param-0-0>, since 'S' and 'X' are uniquely defined by declarations in the type system and the canonical type for the template type parameter 'T' is template-param-0-0.
Definition at line 7440 of file ASTContext.cpp.
References clang::NestedNameSpecifier::Create(), clang::Type::getAs(), clang::NestedNameSpecifier::getAsIdentifier(), clang::NestedNameSpecifier::getAsNamespace(), clang::NestedNameSpecifier::getAsNamespaceAlias(), clang::NestedNameSpecifier::getAsType(), getCanonicalNestedNameSpecifier(), getCanonicalType(), clang::Redeclarable< decl_type >::getFirstDecl(), clang::NestedNameSpecifier::getKind(), clang::NamespaceAliasDecl::getNamespace(), clang::NestedNameSpecifier::getPrefix(), clang::NestedNameSpecifier::Global, clang::NestedNameSpecifier::Identifier, clang::NestedNameSpecifier::Namespace, clang::NestedNameSpecifier::NamespaceAlias, clang::NestedNameSpecifier::Super, clang::T, clang::NestedNameSpecifier::TypeSpec, and clang::NestedNameSpecifier::TypeSpecWithTemplate.
Referenced by clang::Sema::CheckUsingDeclRedeclaration(), clang::NamedDecl::declarationReplaces(), getCanonicalNestedNameSpecifier(), getCommonNNS(), getDependentNameType(), getDependentTemplateName(), and getDependentTemplateSpecializationType().
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 6560 of file ASTContext.cpp.
References clang::CanQual< Type >::CreateUnsafe(), getArrayDecayedType(), getArrayParameterType(), getCanonicalType(), getLangOpts(), getPointerType(), getVariableArrayDecayedType(), clang::HLSL, clang::Result, and clang::T.
Referenced by clang::CodeGen::CodeGenTypes::arrangeBuiltinFunctionCall(), clang::CodeGen::CodeGenTypes::arrangeCXXConstructorCall(), arrangeFreeFunctionLikeCall(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), getArgTypesForCall(), and getArgTypesForDeclaration().
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 7383 of file ASTContext.cpp.
References clang::TemplateArgument::CreatePackCopy(), D, clang::TemplateArgument::Declaration, clang::TemplateArgument::Expression, clang::TemplateArgument::getAsDecl(), 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 clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::Sema::CheckTemplateArgumentList(), CheckTemplateArgumentPointerToMember(), ConvertDeducedTemplateArguments(), clang::TextNodeDumper::dumpTemplateArgument(), getCanonicalTemplateName(), 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 6841 of file ASTContext.cpp.
References clang::DefaultArguments::Args, clang::TemplateParameterList::asArray(), clang::TemplateName::AssumedTemplate, clang::TemplateName::DeducedTemplate, clang::TemplateName::DependentTemplate, clang::SubstTemplateTemplateParmPackStorage::getArgumentPack(), clang::SubstTemplateTemplateParmPackStorage::getAssociatedDecl(), clang::TemplateName::getAsTemplateDecl(), clang::Decl::getCanonicalDecl(), getCanonicalTemplateArgument(), getCanonicalTemplateArguments(), getCanonicalTemplateName(), getDeducedTemplateName(), clang::DeducedTemplateStorage::getDefaultArguments(), getDefaultTemplateArgumentOrNone(), clang::SubstTemplateTemplateParmPackStorage::getFinal(), clang::SubstTemplateTemplateParmPackStorage::getIndex(), getSubstTemplateTemplateParmPack(), clang::TemplateDecl::getTemplateParameters(), clang::DeducedTemplateStorage::getUnderlying(), clang::TemplateName::OverloadedTemplate, clang::TemplateName::QualifiedTemplate, clang::DefaultArguments::StartPos, clang::TemplateArgument::structurallyEquals(), clang::TemplateName::SubstTemplateTemplateParm, clang::TemplateName::SubstTemplateTemplateParmPack, clang::TemplateName::Template, and clang::TemplateName::UsingTemplate.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::TextNodeDumper::dumpTemplateName(), getCanonicalTemplateArgument(), getCanonicalTemplateName(), getCanonicalTemplateSpecializationType(), getCommonTemplateName(), getDeducedTemplateSpecializationType(), hasSameTemplateName(), and isSameTemplateArg().
QualType ASTContext::getCanonicalTemplateSpecializationType | ( | TemplateName | T, |
ArrayRef< TemplateArgument > | Args | ||
) | const |
Definition at line 5502 of file ASTContext.cpp.
References Allocate(), clang::TemplateName::getAsDependentTemplateName(), getCanonicalTemplateArguments(), getCanonicalTemplateName(), clang::Type::isDependentType(), and clang::TemplateSpecializationType::Profile().
Referenced by checkBuiltinTemplateIdType(), clang::Sema::CheckTemplateIdType(), and getTemplateSpecializationType().
Definition at line 2720 of file ASTContext.h.
References clang::Type::getCanonicalTypeInternal(), clang::QualType::getTypePtr(), and 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 2716 of file ASTContext.h.
References clang::CanQual< Type >::CreateUnsafe(), and clang::T.
Referenced by clang::Sema::ActOnConversionDeclarator(), clang::SemaObjC::ActOnPropertyImplDecl(), clang::Sema::ActOnStartCXXMemberReference(), addBlockPointerConversion(), AddBuiltinAssignmentOperatorCandidates(), clang::Sema::AddConversionCandidate(), addFunctionPointerConversion(), clang::Sema::AddOverriddenMethods(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::AttachBaseSpecifiers(), buildDeclareReductionRef(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildReferenceType(), BuildSimilarlyQualifiedPointerType(), buildSingleCopyAssignRecursively(), buildUserDefinedMapperRef(), clang::Sema::BuildUsingDeclaration(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAssignmentConstraints(), CheckC23ConstexprVarType(), clang::Sema::CheckConstructor(), clang::Sema::CheckDerivedToBaseConversion(), clang::CheckEquivalentExceptionSpecImpl(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckImplicitConversion(), clang::Sema::CheckMain(), clang::Sema::CheckMemberPointerConversion(), clang::SemaObjC::CheckObjCARCUnavailableWeakConversion(), clang::SemaObjC::CheckObjCMethodOverrides(), CheckOperatorDeleteDeclaration(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckPtrComparisonWithNullChar(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentPointerToMember(), clang::Sema::CheckTemplateTypeArgument(), CollectVRQualifiers(), CompareDerivedToBaseConversions(), CompareQualificationConversions(), clang::Sema::CompareReferenceRelationship(), CompareStandardConversionSequences(), clang::ConversionFixItGenerator::compareTypesSimple(), clang::Sema::computeDeclContext(), clang::CIRGen::CIRGenTypes::convertType(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::Sema::DeclareGlobalAllocationFunction(), clang::Sema::DeclareImplicitCopyConstructor(), clang::Sema::DeclareImplicitDefaultConstructor(), clang::Sema::DeclareImplicitDestructor(), clang::Sema::DeclareImplicitMoveConstructor(), DiagnoseBadConversion(), clang::SemaObjC::DiagnosePropertyAccessorMismatch(), clang::SemaObjC::DiagnosePropertyMismatch(), clang::Sema::ExtractUnqualifiedFunctionType(), clang::SemaObjC::FindCompositeObjCPointerType(), findDecomposableBaseClass(), getAddrSpaceQualType(), getAdjustedType(), getArrayParameterType(), getAtomicType(), getAttributedType(), getBlockPointerType(), getBTFTagAttributedType(), getCanonicalFunctionResultType(), getCanonicalNestedNameSpecifier(), getCanonicalParamType(), getCanonicalTemplateArgument(), getComplexType(), getConstantArrayType(), getConstantMatrixType(), getConstructors(), GetConversionType(), getCountAttributedType(), getDecayedType(), getDecltypeType(), getDependentAddressSpaceType(), getDependentSizedArrayType(), getDependentSizedExtVectorType(), getDependentSizedMatrixType(), getDependentVectorType(), clang::CXXRecordDecl::getDestructor(), getElaboratedType(), clang::ento::MemRegionManager::getElementRegion(), getExtVectorType(), getIncompleteArrayType(), getIntegerTypeOrder(), GetKeyForBase(), getLValueReferenceType(), getMacroQualifiedType(), getMemberPointerType(), clang::Sema::GetNameFromUnqualifiedId(), getObjCGCQualType(), getObjCObjectPointerType(), getObjCObjectType(), getObjCTypeParamType(), getPackExpansionType(), getPackIndexingType(), getParenType(), getPointerType(), getRValueReferenceType(), clang::CodeGen::CodeGenTBAA::getTBAAStructInfo(), getTemplateSpecializationType(), getTypedefType(), clang::CodeGen::CodeGenTBAA::getTypeInfo(), getTypeOfExprType(), getTypeOfType(), getUnaryTransformType(), getVariableArrayType(), clang::ento::MemRegionManager::getVarRegion(), getVectorType(), clang::SemaObjC::HandlePropertyInClassExtension(), clang::Sema::handlerCanCatch(), hasSameType(), hasSameUnqualifiedType(), hasUserDefinedMapper(), clang::Sema::ImpCastExprToType(), clang::ASTImporter::Import(), InitBuiltinTypes(), InitCatchParam(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::Sema::IsFunctionConversion(), IsImplicitBoolFloatConversion(), IsInvalidCmseNSCallConversion(), clang::Sema::IsInvalidSMECallConversion(), IsModifiable(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::Sema::isObjCPointerConversion(), IsOverloadOrOverrideImpl(), clang::Sema::IsQualificationConversion(), isSameTemplateArg(), clang::CXXConstructorDecl::isSpecializationCopyingObject(), IsStandardConversion(), IsStringInit(), IsStructurallyEquivalent(), clang::Expr::isUnusedResultAWarning(), clang::Sema::LookupConstructors(), LookupMemberExpr(), clang::Sema::LookupSpecialMember(), MarkUsedTemplateParameters(), matchTypes(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeFunctionDecl(), mergeFunctionTypes(), mergeObjCGCQualifiers(), mergeTypeLists(), mergeTypes(), MightInstantiateTo(), NoteIndirectBases(), OpenCLArithmeticConversions(), clang::Sema::PerformObjectMemberConversion(), clang::SemaObjC::ProcessPropertyDecl(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenTypes::RefreshTypeCacheForClass(), registerSYCLEntryPointFunction(), clang::LookupResult::resolveKind(), ResolveOverloadedFunctionForReferenceBinding(), rewriteToObjCProperty(), SelectPropertyForSynthesisFromProtocols(), clang::cross_tu::shouldImport(), clang::TreeTransform< Derived >::TransformDeclarationNameInfo(), TryListConversion(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), clang::ConversionFixItGenerator::tryToFixConversion(), TryUserDefinedConversion(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitBlockExpr(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::ento::ExprEngine::VisitInitListExpr().
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 7931 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, buildImplicitRecord(), buildImplicitTypedef(), clang::LangOptions::CFRuntime, CharTy, clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), getLangOpts(), getPointerType(), getTagDeclType(), getUIntPtrType(), clang::ICIS_NoInit, Idents, IntTy, LongTy, clang::TagDecl::startDefinition(), clang::LangOptionsBase::Swift, clang::LangOptionsBase::Swift4_1, clang::LangOptionsBase::Swift4_2, clang::ast_matchers::tagType, and clang::CanQual< T >::withConst().
Referenced by getCFConstantStringTagDecl(), getCFConstantStringType(), and clang::Sema::Initialize().
RecordDecl * ASTContext::getCFConstantStringTagDecl | ( | ) | const |
Definition at line 8015 of file ASTContext.cpp.
References getCFConstantStringDecl().
QualType ASTContext::getCFConstantStringType | ( | ) | const |
Return the C structure type used to represent constant CFStrings.
Definition at line 8022 of file ASTContext.cpp.
References getCFConstantStringDecl(), and getTypedefType().
Referenced by DecodeTypeFromStr(), and clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString().
|
inline |
Return the size of the character type, in bits.
Definition at line 2486 of file ASTContext.h.
References CharTy, and getTypeSize().
Referenced by clang::Sema::AddAlignedAttr(), clang::Sema::BuildCXXNew(), calculateOffset(), CheckBitcastType(), CheckC23ConstexprInitStringLiteral(), collectSubRegionBindings(), clang::CodeGen::CGObjCRuntime::ComputeIvarBaseOffset(), diagnoseStringPlusChar(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), getSVETypeSize(), HandleArmSveVectorBitsTypeAttr(), HandleRISCVRVVVectorBitsTypeAttr(), clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(), setUsedBits(), toBits(), and toCharUnitsFromBits().
|
inline |
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 612 of file ASTContext.cpp.
References addRedeclaredMethods(), adjustDeclToTemplate(), clang::AS_public, cloneFullComment(), D, clang::ObjCPropertyDecl::findPropertyDecl(), clang::Type::getAs(), clang::Type::getAsCXXRecordDecl(), clang::Decl::getCanonicalDecl(), getCommentForDecl(), getOverriddenMethods(), getRawCommentForAnyRedecl(), clang::Decl::isInvalidDecl(), clang::QualType::isNull(), clang::NonVirtualBase, clang::RawComment::parse(), ParsedComments, and clang::VirtualBase.
Referenced by getCommentForDecl().
Definition at line 14056 of file ASTContext.cpp.
References getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), getQualifiedType(), clang::QualType::getTypePtr(), clang::QualType::getTypePtrOrNull(), hasSameType(), hasSameUnqualifiedType(), clang::QualType::isCanonical(), clang::SplitQualType::Quals, clang::Qualifiers::removeCommonQualifiers(), clang::QualType::split(), clang::SplitQualType::Ty, clang::Unqualified, unwrapSugar(), and X.
Referenced by clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), checkDeducedTemplateArguments(), clang::Sema::CheckMatrixElementwiseOperands(), clang::Sema::CheckMatrixMultiplyOperands(), clang::Sema::CheckVectorConditionalTypes(), clang::Sema::CheckVectorOperands(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DeduceAutoType(), clang::Sema::FindCompositePointerType(), getCommonArrayElementType(), getCommonElementType(), getCommonNonSugarTypeNode(), getCommonPointeeType(), getCommonSugarTypeNode(), getCommonTemplateArgument(), getCommonTypes(), mergeTypeLists(), and clang::Sema::UsualArithmeticConversions().
|
inline |
Definition at line 1452 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 3755 of file ASTContext.cpp.
References getCanonicalType(), getComplexType(), clang::ComplexType::Profile(), and clang::T.
Referenced by clang::Sema::ActOnNumericConstant(), clang::Sema::AddModeAttr(), ConvertDeclSpecToType(), DecodeTypeFromStr(), getCommonNonSugarTypeNode(), getComplexType(), handleComplexFloatConversion(), handleComplexIntConversion(), handleIntToFloatConversion(), and clang::Sema::UsualUnaryConversions().
uint64_t ASTContext::getConstantArrayElementCount | ( | const ConstantArrayType * | CA | ) | const |
Return number of constant array elements.
getConstantArrayElementCount - Returns number of constant array elements.
Definition at line 7629 of file ASTContext.cpp.
References clang::Type::getAsArrayTypeUnsafe(), clang::ArrayType::getElementType(), and clang::ConstantArrayType::getZExtSize().
Referenced by clang::CodeGen::CodeGenTypes::isZeroInitializable(), and setUsedBits().
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 4049 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(), clang::ConstantArrayType::Profile(), clang::SplitQualType::Quals, clang::CanQual< T >::split(), and clang::SplitQualType::Ty.
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnNumericConstant(), actOnOMPReductionKindClause(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), clang::Sema::BuildPredefinedExpr(), clang::interp::CheckNewDeleteForms(), clang::interp::CheckNewTypeMismatch(), CheckStringInit(), clang::Sema::completeExprArrayBound(), CreateHexagonBuiltinVaListDecl(), CreatePNaClABIBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), clang::desugarForDiagnostic(), diagnoseListInit(), EmitDoacrossOrdered(), clang::Sema::FindCompositePointerType(), getAsArrayType(), getCommonNonSugarTypeNode(), clang::ArrayParameterType::getConstantArrayType(), getConstantArrayType(), clang::CodeGen::CodeGenModule::getObjCFastEnumerationStateType(), getStringLiteralArrayType(), getUnqualifiedArrayType(), getVariableArrayDecayedType(), mergeTypes(), clang::SemaObjC::ParseObjCStringLiteral(), clang::InitializationSequence::Perform(), clang::interp::SubPtr(), clang::interp::Pointer::toAPValue(), TryInitializerListConstruction(), TryListConversion(), TryOrBuildParenListInitialization(), and TryToFixInvalidVariablyModifiedType().
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 4644 of file ASTContext.cpp.
References getCanonicalType(), getConstantMatrixType(), clang::QualType::isCanonical(), clang::ConstantMatrixType::isDimensionValid(), clang::MatrixType::isValidElementType(), and clang::ConstantMatrixType::Profile().
Referenced by clang::Sema::BuildMatrixType(), clang::Sema::CheckMatrixMultiplyOperands(), getCommonNonSugarTypeNode(), getConstantMatrixType(), and clang::TreeTransform< Derived >::RebuildConstantMatrixType().
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 1392 of file ASTContext.h.
References clang::T.
Referenced by clang::Sema::EvaluateStaticAssertMessageAsString(), makeLaunchBoundsArgExpr(), and RVVType2Qual().
const CXXConstructorDecl * ASTContext::getCopyConstructorForExceptionObject | ( | CXXRecordDecl * | RD | ) |
Definition at line 12992 of file ASTContext.cpp.
References clang::Redeclarable< decl_type >::getFirstDecl().
Definition at line 14155 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 ConvertDeclSpecToType(), and handleFixedPointConversion().
Definition at line 14322 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 11882 of file ASTContext.cpp.
References AccumTy, clang::Type::castAs(), FractTy, clang::Type::getAs(), getBitIntType(), getCorrespondingSignedType(), clang::BuiltinType::getKind(), getSignedWCharType(), getVectorType(), clang::Type::hasIntegerRepresentation(), clang::Type::hasSignedIntegerRepresentation(), Int128Ty, IntTy, clang::Type::isEnumeralType(), clang::Type::isFixedPointType(), clang::Type::isSignedFixedPointType(), LongAccumTy, LongFractTy, LongLongTy, LongTy, SatAccumTy, SatFractTy, SatLongAccumTy, SatLongFractTy, SatShortAccumTy, SatShortFractTy, ShortAccumTy, ShortFractTy, ShortTy, SignedCharTy, and clang::T.
Referenced by clang::Sema::BuildVAArgExpr(), clang::Sema::BuiltinChangeSignedness(), and getCorrespondingSignedType().
Definition at line 14119 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 11808 of file ASTContext.cpp.
References clang::Type::castAs(), clang::Type::getAs(), getBitIntType(), getCorrespondingUnsignedType(), clang::BuiltinType::getKind(), getUnsignedWCharType(), getVectorType(), clang::Type::hasIntegerRepresentation(), clang::Type::hasUnsignedIntegerRepresentation(), clang::Type::isEnumeralType(), clang::Type::isFixedPointType(), clang::Type::isUnsignedFixedPointType(), SatUnsignedAccumTy, SatUnsignedFractTy, SatUnsignedLongAccumTy, SatUnsignedLongFractTy, SatUnsignedShortAccumTy, SatUnsignedShortFractTy, clang::T, UnsignedAccumTy, UnsignedCharTy, UnsignedFractTy, UnsignedInt128Ty, UnsignedIntTy, UnsignedLongAccumTy, UnsignedLongFractTy, UnsignedLongLongTy, UnsignedLongTy, UnsignedShortAccumTy, UnsignedShortFractTy, and UnsignedShortTy.
Referenced by clang::Sema::ActOnNumericConstant(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuiltinChangeSignedness(), checkPointerTypesForAssignment(), ConvertDeclSpecToType(), 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 3551 of file ASTContext.cpp.
References Allocate(), getCanonicalType(), clang::Type::isArrayType(), clang::Type::isPointerType(), clang::CountAttributedType::Profile(), and clang::TypeAlignment.
Referenced by clang::Sema::BuildCountAttributedArrayOrPointerType(), and getCommonSugarTypeNode().
|
inline |
Definition at line 1537 of file ASTContext.h.
Referenced by clang::SemaCUDA::ActOnExecConfigExpr().
StringRef ASTContext::getCUIDHash | ( | ) | const |
Definition at line 14542 of file ASTContext.cpp.
References clang::LangOptions::CUID.
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 3430 of file RecordLayoutBuilder.cpp.
References computeKeyFunction(), 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 clang::Sema::ActOnFinishFunctionBody(), DeclMustBeEmitted(), clang::Sema::DefineUsedVTables(), clang::CodeGen::CodeGenModule::getVTableLinkage(), and clang::CodeGen::CodeGenVTables::isVTableExternal().
|
inline |
Get module under construction, nullptr if this is not a C++20 module.
Definition at line 1133 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 2284 of file ASTContext.h.
References clang::Qualifiers::fromCVRMask(), getQualifiedType(), and clang::T.
Referenced by clang::Sema::CheckPointerToMemberOperands().
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 861 of file ASTContext.cpp.
References clang::LangOptions::CXXABI, clang::TargetInfo::getCXXABI(), clang::TargetCXXABI::getKind(), getLangOpts(), and getTargetInfo().
Referenced by createCXXABI(), clang::CodeGen::CreateItaniumCXXABI(), and markUsedForAliasOrIfunc().
|
inline |
Definition at line 1480 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 3830 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 3850 of file ASTContext.cpp.
References getArrayDecayedType(), getDecayedType(), getPointerType(), clang::Type::isArrayType(), clang::Type::isFunctionType(), and clang::T.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), BuiltinAlignment(), clang::Sema::BuiltinDecay(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::deduceOpenCLAddressSpace(), getAdjustedParameterType(), getCommonSugarTypeNode(), getDecayedType(), and getExceptionObjectType().
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 1726 of file ASTContext.cpp.
References clang::TypeInfo::Align, clang::ast_matchers::arrayType, D, clang::ASTRecordLayout::getAlignment(), clang::Type::getAs(), getAsArrayType(), getASTRecordLayout(), getBaseElementType(), clang::ASTRecordLayout::getFieldOffset(), clang::TargetInfo::getMaxAlignedAttribute(), clang::Decl::getMaxAlignment(), getMinGlobalAlignOfVar(), clang::Type::getPointeeType(), getPointerType(), getPreferredTypeAlign(), clang::QualType::getQualifiers(), getTargetInfo(), getTypeSize(), clang::Qualifiers::hasUnaligned(), clang::Type::isFunctionType(), clang::Type::isIncompleteType(), Parent, clang::SC_Static, clang::T, toBits(), and toCharUnitsFromBits().
Referenced by clang::Sema::CheckThreadLocalForLargeAlignment(), emitAddrOfVarFromArray(), EmitFunctionDeclLValue(), EmitGlobalNamedRegister(), EmitGlobalVarDeclLValue(), emitOutlinedFunctionPrologue(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntime::getAddrOfDeclareTargetVar(), GetAlignOfExpr(), getBaseAlignmentAndOffsetFromLValue(), clang::CodeGen::CGOpenMPRuntimeGPU::getKmpcAllocShared(), clang::Sema::getNamedReturnInfo(), clang::CodeGen::CodeGenModule::GetWeakRefReference(), clang::interp::interp__builtin_assume_aligned(), clang::interp::interp__builtin_is_aligned_up_down(), clang::Sema::RefersToMemberWithReducedAlignment(), and clang::interp::Compiler< Emitter >::VisitUnaryExprOrTypeTraitExpr().
DeclaratorDecl * ASTContext::getDeclaratorForUnnamedTagDecl | ( | const TagDecl * | TD | ) |
Definition at line 13019 of file ASTContext.cpp.
Retrieve the attributes for the given declaration.
Definition at line 1516 of file ASTContext.cpp.
References Allocate(), D, 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 6212 of file ASTContext.cpp.
References DependentTy, getCanonicalType(), clang::Expr::isInstantiationDependent(), and clang::DependentDecltypeType::Profile().
Referenced by clang::Sema::BuildDecltypeType().
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 10033 of file ASTContext.cpp.
References Allocate(), clang::DefaultArguments::Args, and clang::DeducedTemplateStorage::Profile().
Referenced by DeduceTemplateArguments(), and getCanonicalTemplateName().
QualType ASTContext::getDeducedTemplateSpecializationType | ( | 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 6425 of file ASTContext.cpp.
References getCanonicalTemplateName().
Referenced by clang::Sema::CheckTypenameType(), clang::Sema::getTypeName(), and clang::TreeTransform< Derived >::RebuildDeducedTemplateSpecializationType().
CallingConv ASTContext::getDefaultCallingConvention | ( | bool | IsVariadic, |
bool | IsCXXMethod, | ||
bool | IsBuiltin = false |
||
) | const |
Retrieves the default calling convention for the current target.
Definition at line 12757 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(), clang::Sema::adjustMemberFunctionCC(), clang::CodeGen::CodeGenTypes::arrangeMSCtorClosure(), clang::Sema::CheckCallingConvAttr(), compareConversionFunctions(), clang::Sema::DeclareGlobalAllocationFunction(), emitGlobalDtorWithCXAAtExit(), GetBuiltinType(), getCCForDeclaratorChunk(), getDummyLambdaType(), getImplicitMethodEPI(), getLambdaConversionFunctionCallConv(), GetOpenCLBuiltinFctOverloads(), hasDefaultCXXMethodCC(), and repeatForLambdaConversionFunctionCallingConvs().
|
inline |
Returns default address space based on OpenCL version and enabled features.
Definition at line 1528 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 4717 of file ASTContext.cpp.
References clang::DependentAddressSpaceType::getAddrSpaceExpr(), getCanonicalType(), clang::Expr::isInstantiationDependent(), and clang::DependentAddressSpaceType::Profile().
Referenced by clang::Sema::BuildAddressSpaceAttr(), and getCommonNonSugarTypeNode().
Return a dependent bit-precise integer type with the specified signedness and bit count.
Definition at line 5044 of file ASTContext.cpp.
References clang::Expr::isInstantiationDependent(), and clang::DependentBitIntType::Profile().
Referenced by clang::Sema::BuildBitIntType().
QualType ASTContext::getDependentNameType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier * | NNS, | ||
const IdentifierInfo * | Name, | ||
QualType | Canon = QualType() |
||
) | const |
Definition at line 5612 of file ASTContext.cpp.
References getCanonicalNestedNameSpecifier(), getDependentNameType(), clang::QualType::isNull(), clang::DependentNameType::Profile(), and clang::T.
Referenced by clang::Sema::ActOnDependentTag(), clang::Sema::ActOnMSVCUnknownTypeName(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckTypenameType(), getCommonNonSugarTypeNode(), clang::Sema::getConstructorName(), getDependentNameType(), GetFullTypeForDeclarator(), clang::Sema::getInheritingConstructorName(), clang::Sema::getTypeName(), clang::TreeTransform< Derived >::RebuildDependentNameType(), and recoverFromTypeInKnownDependentBase().
QualType ASTContext::getDependentSizedArrayType | ( | QualType | EltTy, |
Expr * | NumElts, | ||
ArraySizeModifier | ASM, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | Brackets | ||
) | 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 4270 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 clang::Sema::BuildArrayType(), clang::desugarForDiagnostic(), 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 4604 of file ASTContext.cpp.
References getCanonicalType(), getDependentSizedExtVectorType(), and clang::DependentSizedExtVectorType::Profile().
Referenced by clang::Sema::BuildExtVectorType(), 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 4676 of file ASTContext.cpp.
References getCanonicalType(), clang::MatrixType::getElementType(), clang::DependentSizedMatrixType::getRowExpr(), and clang::DependentSizedMatrixType::Profile().
Referenced by clang::Sema::BuildMatrixType(), and getCommonNonSugarTypeNode().
TemplateName ASTContext::getDependentTemplateName | ( | NestedNameSpecifier * | NNS, |
const IdentifierInfo * | Name | ||
) | const |
Retrieve the template name that represents a dependent template name such as MetaFun::template
apply.
Definition at line 9918 of file ASTContext.cpp.
References getCanonicalNestedNameSpecifier(), getDependentTemplateName(), clang::NestedNameSpecifier::isDependent(), and clang::DependentTemplateName::Profile().
Referenced by clang::Sema::ActOnTemplateName(), clang::Sema::DiagnoseUnknownTemplateName(), getDependentTemplateName(), and clang::ASTImporter::Import().
TemplateName ASTContext::getDependentTemplateName | ( | NestedNameSpecifier * | NNS, |
OverloadedOperatorKind | Operator | ||
) | const |
Retrieve the template name that represents a dependent template name such as MetaFun::template
operator+.
Definition at line 9954 of file ASTContext.cpp.
References getCanonicalNestedNameSpecifier(), getDependentTemplateName(), clang::NestedNameSpecifier::isDependent(), and clang::DependentTemplateName::Profile().
QualType ASTContext::getDependentTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier * | NNS, | ||
const IdentifierInfo * | Name, | ||
ArrayRef< TemplateArgument > | Args | ||
) | const |
Definition at line 5649 of file ASTContext.cpp.
References Allocate(), getCanonicalNestedNameSpecifier(), getCanonicalTemplateArguments(), getDependentTemplateSpecializationType(), clang::NestedNameSpecifier::isDependent(), clang::None, clang::DependentTemplateSpecializationType::Profile(), clang::T, and clang::Typename.
QualType ASTContext::getDependentTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier * | NNS, | ||
const IdentifierInfo * | Name, | ||
ArrayRef< TemplateArgumentLoc > | Args | ||
) | const |
Definition at line 5638 of file ASTContext.cpp.
References E, getArgument(), and getDependentTemplateSpecializationType().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::CheckTemplateIdType(), getCommonNonSugarTypeNode(), getDependentTemplateSpecializationType(), and clang::TreeTransform< Derived >::RebuildDependentTemplateSpecializationType().
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 4530 of file ASTContext.cpp.
References getCanonicalType(), getDependentVectorType(), and clang::DependentVectorType::Profile().
Referenced by clang::Sema::BuildVectorType(), getCommonNonSugarTypeNode(), and getDependentVectorType().
|
inline |
Definition at line 795 of file ASTContext.h.
Referenced by clang::Sema::EmitDiagnostic(), and clang::SemaBase::PDiag().
DiagnosticsEngine & ASTContext::getDiagnostics | ( | ) | const |
Definition at line 1512 of file ASTContext.cpp.
References clang::SourceManager::getDiagnostics().
Referenced by checkNullabilityConsistency(), clang::SYCLUniqueStableNameExpr::ComputeName(), createDeviceMangleContext(), createMangleContext(), clang::StructuralEquivalenceContext::Diag1(), clang::StructuralEquivalenceContext::Diag2(), clang::TypeLoc::dump(), clang::QualType::dump(), clang::APValue::dump(), clang::comments::Comment::dump(), clang::Stmt::dump(), clang::Decl::dump(), clang::DeclContext::dumpAsDecl(), clang::cross_tu::CrossTranslationUnitContext::emitCrossTUDiagnostics(), clang::ASTImporter::FromDiag(), getFunctionFeatureMap(), clang::interp::handleFixedPointOverflow(), clang::installapi::InstallAPIVisitor::HandleTranslationUnit(), clang::ASTImporter::Import(), clang::ASTReader::InitializeContext(), clang::RecordDecl::mayInsertExtraPadding(), clang::RawComment::parse(), rewriteToNumericBoxedExpression(), selectBestPath(), and clang::ASTImporter::ToDiag().
QualType ASTContext::getElaboratedType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier * | NNS, | ||
QualType | NamedType, | ||
TagDecl * | OwnedTagDecl = nullptr |
||
) | const |
Definition at line 5545 of file ASTContext.cpp.
References Allocate(), getCanonicalType(), clang::QualType::isCanonical(), clang::ElaboratedType::Profile(), and clang::T.
Referenced by clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTypenameType(), adjustType(), buildNamedType(), clang::Sema::BuildStdInitializerList(), clang::Sema::CheckComparisonCategoryType(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckTypenameType(), clang::Sema::DeclareImplicitCopyAssignment(), clang::Sema::DeclareImplicitCopyConstructor(), clang::Sema::DeclareImplicitMoveAssignment(), clang::Sema::DeclareImplicitMoveConstructor(), getCommonSugarTypeNode(), clang::Sema::getDestructorName(), clang::Sema::getElaboratedType(), GetFullTypeForDeclarator(), clang::TypeName::getFullyQualifiedType(), lookupPromiseType(), clang::TreeTransform< Derived >::RebuildDependentNameType(), clang::TreeTransform< Derived >::RebuildDependentTemplateSpecializationType(), and clang::TreeTransform< Derived >::RebuildElaboratedType().
Definition at line 5199 of file ASTContext.cpp.
References clang::Decl::getPreviousDecl().
Referenced by clang::CodeGen::CGDebugInfo::completeType(), and getOpenCLEnumType().
Definition at line 7568 of file ASTContext.cpp.
References getDecayedType(), getVariableArrayDecayedType(), clang::Type::isArrayType(), clang::Type::isFunctionType(), and clang::T.
Referenced by clang::Sema::BuildCXXThrow(), clang::Sema::BuildExceptionDeclaration(), and decomposeTypeForEH().
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 1825 of file ASTContext.cpp.
References toCharUnitsFromBits().
Referenced by clang::Sema::CheckCXXThrowOperand().
|
inline |
Retrieve a pointer to the external AST source associated with this AST context, if any.
Definition at line 1274 of file ASTContext.h.
Referenced by adjustGVALinkageForExternalDefinitionKind(), clang::FrontendAction::BeginSourceFile(), clang::ExternalASTMerger::CompleteType(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), getASTRecordLayout(), getCurrentKeyFunction(), clang::CXXRecordDecl::getLambdaContextDecl(), clang::Sema::getStdAlignValT(), clang::Sema::getStdBadAlloc(), clang::Sema::getStdNamespace(), clang::Sema::handleLambdaNumbering(), clang::Sema::hasAcceptableDefinition(), clang::Sema::Initialize(), IsStructurallyEquivalent(), clang::RedeclarableTemplateDecl::loadLazySpecializationsImpl(), clang::DeclContext::lookup(), clang::DeclContext::lookups(), clang::LazyGenerationalUpdatePtr< Owner, T, Update >::makeValue(), clang::ParseAST(), clang::Parser::ParseFirstTopLevelDecl(), setNonKeyFunction(), clang::Decl::shouldEmitInExternalSource(), shouldOmitDefinition(), clang::Decl::updateOutOfDate(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::Sema::~Sema().
ExternCContextDecl * ASTContext::getExternCContextDecl | ( | ) | const |
Definition at line 1180 of file ASTContext.cpp.
References clang::ExternCContextDecl::Create(), and getTranslationUnitDecl().
Referenced by clang::Sema::findLocallyScopedExternCDecl(), and clang::Sema::RegisterLocallyScopedExternCDecl().
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 4570 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(), and clang::VectorType::Profile().
Referenced by adjustVectorType(), clang::Sema::BuildExtVectorType(), castVector(), CheckExtVectorComponent(), clang::Sema::CheckVectorConditionalTypes(), checkVectorShift(), convertVector(), DecodeTypeFromStr(), getCommonNonSugarTypeNode(), getExtVectorType(), clang::Sema::GetSignedVectorType(), LookupMemberExpr(), OpenCLConvertScalarsToVectors(), and clang::Sema::PerformImplicitConversion().
uint64_t ASTContext::getFieldOffset | ( | const ValueDecl * | FD | ) | const |
Get the offset of a FieldDecl or IndirectFieldDecl, in bits.
Definition at line 3481 of file RecordLayoutBuilder.cpp.
References clang::IndirectFieldDecl::chain(), and getFieldOffset().
Referenced by emitAddrOfZeroSizeField(), getFieldOffset(), clang::CodeGen::CodeGenModule::getMemberPointerConstant(), getSubobjectOffset(), and clang::Sema::RefersToMemberWithReducedAlignment().
|
inline |
Retrieve the C FILE type.
Definition at line 2089 of file ASTContext.h.
References getTypeDeclType().
Referenced by clang::ast_matchers::libc_func_matchers::AST_MATCHER_P(), DecodeTypeFromStr(), and getGlobalStreamPointerByName().
Definition at line 14255 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 14312 of file ASTContext.cpp.
References getFixedPointSemantics(), and clang::Type::isFixedPointType().
Referenced by clang::Sema::ActOnNumericConstant(), and clang::Sema::CheckImplicitConversion().
llvm::APFixedPoint ASTContext::getFixedPointMin | ( | QualType | Ty | ) | const |
Definition at line 14317 of file ASTContext.cpp.
References getFixedPointSemantics(), and clang::Type::isFixedPointType().
Referenced by clang::Sema::CheckImplicitConversion().
Definition at line 14209 of file ASTContext.cpp.
References clang::Type::castAs(), clang::BuiltinType::getKind(), getTargetInfo(), and clang::Type::isFixedPointType().
Referenced by clang::Sema::ActOnNumericConstant(), getFixedPointSemantics(), and clang::ASTNodeImporter::VisitFixedPointLiteral().
llvm::FixedPointSemantics ASTContext::getFixedPointSemantics | ( | QualType | Ty | ) | const |
Definition at line 14297 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 clang::Sema::CheckImplicitConversion(), DiagnoseBadShiftValues(), getFixedPointMax(), and getFixedPointMin().
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 7677 of file ASTContext.cpp.
References getFloatingRank().
Referenced by clang::ento::SMTConv::doFloatTypeConversion(), getFloatingTypeSemanticOrder(), clang::StandardConversionSequence::getNarrowingKind(), handleComplexConversion(), handleFloatConversion(), handleFloatVectorBinOpConversion(), isArithmeticArgumentPromotion(), tryGCCVectorConvertAndSplat(), tryVectorConvertAndSplat(), and clang::Sema::UsualUnaryConversions().
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 7688 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 1701 of file ASTContext.cpp.
References clang::Type::castAs(), clang::TargetInfo::getFloat128Format(), clang::BuiltinType::getKind(), getLangOpts(), clang::TargetInfo::getLongDoubleFormat(), and clang::T.
Referenced by actOnOMPReductionKindClause(), BuildFloatingLiteral(), canConvertIntTyToFloatTy(), CheckBitcastType(), clang::Sema::CheckFloatComparison(), clang::Sema::CheckImplicitConversion(), clang::Sema::checkTypeSupport(), clang::CIRGen::CIRGenTypes::convertType(), clang::CodeGen::CodeGenTypes::ConvertType(), DetectPrecisionLossInComplexDivision(), getFloatingTypeSemanticOrder(), clang::interp::Context::getFloatSemantics(), clang::StandardConversionSequence::getNarrowingKind(), clang::ento::SMTConv::getZeroExpr(), clang::interp::interp__builtin_inf(), clang::interp::interp__builtin_nan(), IsFloatingPointConversion(), TryEvaluateBuiltinNaN(), tryGCCVectorConvertAndSplat(), and unsupportedTypeConversion().
|
inline |
Definition at line 857 of file ASTContext.h.
References Loc.
Referenced by clang::CodeGen::CodeGenModule::Error(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), and clang::CodeGen::CGCXXABI::ErrorUnsupportedABI().
void ASTContext::getFunctionFeatureMap | ( | llvm::StringMap< bool > & | FeatureMap, |
const FunctionDecl * | FD | ||
) | const |
Definition at line 14381 of file ASTContext.cpp.
References getDiagnostics(), and getFunctionFeatureMap().
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::SemaAMDGPU::CheckAMDGCNBuiltinFunctionCall(), clang::checkArmStreamingBuiltin(), clang::SemaRISCV::CheckBuiltinFunctionCall(), clang::Sema::checkCall(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::checkTypeSupport(), clang::Sema::CheckVariableDeclarationType(), getFunctionFeatureMap(), and initFeatureMaps().
void ASTContext::getFunctionFeatureMap | ( | llvm::StringMap< bool > & | FeatureMap, |
GlobalDecl | GD | ||
) | const |
Definition at line 14393 of file ASTContext.cpp.
References filterFunctionTargetAttrs(), clang::Decl::getAsFunction(), clang::Decl::getAttr(), clang::GlobalDecl::getDecl(), getDiagnostics(), getFMVBackendFeaturesFor(), and clang::GlobalDecl::getMultiVersionIndex().
Definition at line 1676 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 4760 of file ASTContext.cpp.
References getCanonicalFunctionResultType(), getFunctionNoProtoType(), isCanonicalResultType(), and clang::FunctionNoProtoType::Profile().
Referenced by adjustFunctionResultType(), adjustFunctionType(), applyNullability(), clang::Sema::BuildDeclarationNameExpr(), clang::desugarForDiagnostic(), GeneralizeFunctionType(), GetBuiltinType(), getCommonNonSugarTypeNode(), GetFullTypeForDeclarator(), getFunctionNoProtoType(), clang::CodeGen::CodeGenModule::getFunctionPointer(), getFunctionTypeWithoutPtrSizes(), clang::Sema::ImplicitlyDefineFunction(), mergeFunctionTypes(), ProcessAPINotes(), and clang::TreeTransform< Derived >::RebuildFunctionNoProtoType().
|
inline |
Return a normal function type with a typed argument list.
Definition at line 1681 of file ASTContext.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), actOnOMPReductionKindClause(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::Sema::adjustCCAndNoReturn(), clang::Sema::AdjustDestructorExceptionSpec(), clang::TemplateDeclInstantiator::adjustForRewrite(), adjustFunctionResultType(), adjustFunctionType(), adjustFunctionTypeForInstantiation(), applyNullability(), clang::Sema::BuildFunctionType(), buildTypeForLambdaCallOperator(), BuiltinCallWithStaticChain(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), clang::Sema::CheckOverridingFunctionAttributes(), clang::CodeGen::CodeGenModule::CreateKCFITypeId(), clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::Sema::DeclareGlobalAllocationFunction(), clang::desugarForDiagnostic(), emitGlobalDtorWithCXAAtExit(), emitOutlinedFunctionPrologue(), clang::Sema::FindAllocationFunctions(), clang::Sema::FindCompositePointerType(), clang::Sema::findInheritingConstructor(), GeneralizeFunctionType(), GetBuiltinType(), getCommonNonSugarTypeNode(), getDummyLambdaType(), GetFullTypeForDeclarator(), clang::CodeGen::CGDebugInfo::getFunctionType(), getFunctionTypeWithExceptionSpec(), getFunctionTypeWithoutParamABIs(), getFunctionTypeWithoutPtrSizes(), clang::Sema::getLambdaConversionFunctionResultType(), GetOpenCLBuiltinFctOverloads(), getTaskloopRegionParams(), getTaskRegionParams(), clang::ento::MemRegionManager::getVarRegion(), handleFunctionTypeAttr(), handleNonBlockingNonAllocatingTypeAttr(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::Sema::IsFunctionConversion(), LookupDirect(), clang::Sema::MergeFunctionDecl(), mergeFunctionTypes(), mergeObjCGCQualifiers(), ProcessAPINotes(), rewriteBuiltinFunctionDecl(), clang::ASTDeclReader::UpdateDecl(), and clang::ASTNodeImporter::VisitFunctionDecl().
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 3670 of file ASTContext.cpp.
References adjustType(), clang::Type::castAs(), and getFunctionType().
Referenced by adjustExceptionSpec(), extractPBaseFlags(), handleFunctionTypeAttr(), hasSameFunctionTypeIgnoringExceptionSpec(), and clang::Sema::IsFunctionConversion().
Get or construct a function type that is equivalent to the input type except that the parameter ABI annotations are stripped.
Definition at line 3710 of file ASTContext.cpp.
References clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, clang::Type::getAs(), 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 3687 of file ASTContext.cpp.
References clang::Type::getAs(), getFunctionNoProtoType(), getFunctionType(), removePtrSizeAddrSpace(), and clang::T.
Referenced by hasSameFunctionTypeIgnoringPtrSizes().
GVALinkage ASTContext::GetGVALinkageForFunction | ( | const FunctionDecl * | FD | ) | const |
Definition at line 12520 of file ASTContext.cpp.
References adjustGVALinkageForAttributes(), adjustGVALinkageForExternalDefinitionKind(), and basicGVALinkageForFunction().
Referenced by basicGVALinkageForVariable(), clang::SemaCUDA::CheckCall(), DeclMustBeEmitted(), clang::CodeGen::CodeGenModule::getFunctionLinkage(), isFunctionDefinitionDiscarded(), clang::FunctionDecl::isInlineBuiltinDeclaration(), MarkVarDeclODRUsed(), and shouldBeInCOMDAT().
GVALinkage ASTContext::GetGVALinkageForVariable | ( | const VarDecl * | VD | ) | const |
Definition at line 12613 of file ASTContext.cpp.
References adjustGVALinkageForAttributes(), adjustGVALinkageForExternalDefinitionKind(), and basicGVALinkageForVariable().
Referenced by DeclMustBeEmitted(), clang::CodeGen::CodeGenModule::getLLVMLinkageVarDefinition(), and shouldBeInCOMDAT().
Definition at line 802 of file ASTContext.h.
References DoubleTy, FloatTy, and LongDoubleTy.
Referenced by DetectPrecisionLossInComplexDivision().
QualType ASTContext::getHLSLAttributedResourceType | ( | QualType | Wrapped, |
QualType | Contained, | ||
const HLSLAttributedResourceType::Attributes & | Attrs | ||
) |
Definition at line 5300 of file ASTContext.cpp.
References clang::HLSLAttributedResourceType::Profile().
Referenced by clang::CreateHLSLAttributedResourceType().
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 4334 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::BuildArrayType(), clang::Sema::BuildCXXNew(), clang::desugarForDiagnostic(), clang::Sema::FindCompositePointerType(), getAsArrayType(), getCommonNonSugarTypeNode(), getIncompleteArrayType(), getUnqualifiedArrayType(), and mergeTypes().
QualType ASTContext::getInjectedClassNameType | ( | CXXRecordDecl * | Decl, |
QualType | TST | ||
) | const |
getInjectedClassNameType - Return the unique reference to the injected class name type for the specified templated declaration.
Definition at line 5078 of file ASTContext.cpp.
References clang::Decl::getPreviousDecl(), and NeedsInjectedClassNameType().
Referenced by clang::Sema::CheckClassTemplate(), clang::ClassTemplatePartialSpecializationDecl::Create(), getCommonNonSugarTypeNode(), clang::ASTDeclReader::VisitClassTemplateDecl(), and clang::ASTNodeImporter::VisitRecordDecl().
TemplateArgument ASTContext::getInjectedTemplateArg | ( | NamedDecl * | ParamDecl | ) | const |
Definition at line 5699 of file ASTContext.cpp.
References clang::TemplateArgument::CreatePackCopy(), DependentTy, E, getPackExpansionType(), getQualifiedTemplateName(), getTypeDeclType(), clang::Expr::getValueKindForType(), clang::TemplateTemplateParmDecl::isParameterPack(), clang::Type::isRecordType(), clang::Decl::isTemplateParameterPack(), clang::T, and clang::VK_LValue.
Referenced by clang::Sema::getIdentityTemplateArgumentLoc().
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 8282 of file ASTContext.cpp.
References D, clang::First, clang::Redeclarable< decl_type >::getFirstDecl(), clang::Decl::getLexicalDeclContext(), clang::DeclContext::isFileContext(), clang::VarDecl::isInline(), None, clang::Redeclarable< decl_type >::redecls(), Strong, Weak, and WeakUnknown.
Referenced by basicGVALinkageForVariable(), and clang::CodeGen::CodeGenModule::EmitGlobal().
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 7858 of file ASTContext.cpp.
References clang::Type::getAs(), getBaseElementType(), clang::Type::getPointeeType(), clang::Type::isArrayType(), clang::Qualifiers::OCL_None, and clang::T.
Referenced by clang::Sema::GetTypeForDeclaratorCast().
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 1537 of file ASTContext.cpp.
References getTemplateOrSpecializationInfo(), and clang::VarDecl::isStaticDataMember().
Definition at line 1614 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 1572 of file ASTContext.cpp.
Referenced by isInstantiationOfUnresolvedUsingDecl(), and clang::ASTNodeImporter::VisitUsingDecl().
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 1591 of file ASTContext.cpp.
Referenced by clang::ASTNodeImporter::VisitUsingEnumDecl().
UsingShadowDecl * ASTContext::getInstantiatedFromUsingShadowDecl | ( | UsingShadowDecl * | Inst | ) |
Definition at line 1602 of file ASTContext.cpp.
Referenced by clang::ASTNodeImporter::VisitUsingShadowDecl().
TypedefDecl * ASTContext::getInt128Decl | ( | ) | const |
Retrieve the declaration for the 128-bit signed integer type.
Definition at line 1247 of file ASTContext.cpp.
References buildImplicitTypedef(), and Int128Ty.
Referenced by clang::Sema::Initialize().
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 7886 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 887 of file ASTContext.cpp.
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 6506 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 6529 of file ASTContext.cpp.
Referenced by getUIntPtrType(), and clang::Sema::Initialize().
getIntTypeForBitwidth - sets integer QualTy according to specified details: bitwidth, signed/unsigned.
Returns empty type if there is no appropriate target types.
Definition at line 12891 of file ASTContext.cpp.
References clang::TargetInfo::getIntTypeByWidth(), getTargetInfo(), Int128Ty, clang::Signed, and UnsignedInt128Ty.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnNumericConstant(), actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), clang::Sema::AddModeAttr(), checkOpenMPLoop(), createKmpTaskTRecordDecl(), 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(), clang::CodeGen::CGOpenMPRuntimeGPU::getDefaultScheduleAndChunk(), getParallelRegionParams(), clang::Sema::GetSignedSizelessVectorType(), getTaskloopRegionParams(), getTaskRegionParams(), and RVVType2Qual().
Definition at line 11797 of file ASTContext.cpp.
References clang::Type::getAs(), getTypeSize(), clang::Type::isBooleanType(), and clang::T.
Referenced by clang::Sema::ActOnCXXNew(), clang::Sema::ActOnEnumBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnNumericConstant(), clang::SemaOpenMP::ActOnOpenMPCanonicalLoop(), clang::Sema::ActOnStringLiteral(), AnalyzeComparison(), buildDistanceFunc(), clang::Sema::BuildPackIndexingExpr(), clang::Sema::BuildPackIndexingType(), BuiltinAlignment(), BuiltinOverflow(), canConvertIntToOtherIntTy(), canConvertIntTyToFloatTy(), clang::Sema::CheckEnumConstant(), CheckICE(), clang::Sema::CheckImplicitConversion(), clang::Sema::CheckTemplateArgument(), clang::interp::Context::classify(), ConvertAPValueToString(), DeduceFromInitializerList(), clang::Sema::DiagnoseAssignmentEnum(), DiagnoseBadShiftValues(), DiagnoseFloatingImpCast(), clang::ento::BasicValueFactory::getAPSIntType(), clang::interp::Context::getBitWidth(), getFixedPointSemantics(), getIntegerWidthAndSignedness(), getLegacyIntegralTypeEncoding(), clang::StandardConversionSequence::getNarrowingKind(), getPromotedIntegerType(), clang::ento::BasicValueFactory::getTruthValue(), clang::EnumDecl::getValueRange(), handleIntegerConversion(), handleVectorUnaryOperator(), clang::InitializationSequence::InitializeFrom(), clang::interp::interp__builtin_is_aligned_up_down(), isOverflowingIntegerType(), isRepresentableIntegerValue(), isValidStructGUID(), MakeIntValue(), clang::InitializationSequence::Perform(), clang::TreeTransform< Derived >::RebuildArrayType(), clang::TreeTransform< Derived >::RebuildBitIntType(), clang::TreeTransform< Derived >::RebuildExtVectorType(), and clang::Sema::VerifyBitField().
|
inline |
Retrieve the C jmp_buf type.
Definition at line 2101 of file ASTContext.h.
References getTypeDeclType().
Referenced by DecodeTypeFromStr().
Definition at line 14190 of file ASTContext.cpp.
References clang::TargetInfo::getCUDABuiltinAddressSpace(), clang::getLangASFromTargetAS(), clang::TargetInfo::getOpenCLBuiltinAddressSpace(), and getTargetInfo().
Referenced by clang::Sema::ActOnVariableDeclarator(), and DecodeTypeFromStr().
|
inline |
Definition at line 834 of file ASTContext.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnDependentIdExpression(), clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnVarTemplateSpecialization(), AddEnumerators(), AddOverloadParameterChunks(), clang::arcmt::trans::MigrationContext::addPropertyAttribute(), adjustGVALinkageForAttributes(), AlignOfType(), AllowOverloadingOfFunction(), clang::arcmt::MigrationProcess::applyTransform(), areLaxCompatibleRVVTypes(), areLaxCompatibleSveTypes(), basicGVALinkageForFunction(), basicGVALinkageForVariable(), buildGlobalBlock(), buildImplicitRecord(), clang::Sema::BuildMatrixType(), builtinCommonTypeImpl(), CalculateHiddenNames(), clang::arcmt::trans::canApplyWeak(), canAssignObjCInterfacesInBlockPointer(), clang::Sema::CheckCompletedCXXClass(), CheckForIncompatibleAttributes(), clang::arcmt::checkForManualIssues(), CheckICE(), clang::Sema::CheckLogicalOperands(), ClassifyBinaryOp(), ClassifyConditional(), ClassifyDecl(), ClassifyInternal(), ClassifyMemberExpr(), ClassifyUnnamed(), clang::SemaCodeCompletion::CodeCompleteObjCMethodDecl(), clang::RecordDecl::completeDefinition(), clang::computeDependence(), computeKeyFunction(), clang::LinkageComputer::computeLVForDecl(), clang::PredefinedExpr::ComputeName(), clang::analyze_os_log::computeOSLogBufferLayout(), computeOverflowPatternExclusion(), constructDebugPieceForTrackedCondition(), clang::CIRGen::CIRGenTypes::convertType(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::CXXThisExpr::Create(), CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), clang::Sema::CreateBuiltinUnaryOp(), createDataFixit(), createOverloadsForFixedParams(), clang::Sema::CreateRecoveryExpr(), clang::tooling::createRenameAtomicChanges(), clang::CodeGen::CodeGenModule::CreateRuntimeVariable(), createSpanTypeForVarDecl(), clang::Sema::CXXThisScopeRAII::CXXThisScopeRAII(), DecodeTypeFromStr(), clang::FunctionDecl::doesDeclarationForceExternallyVisibleDefinition(), clang::Stmt::dumpPretty(), clang::LocationContext::dumpStack(), EmitDeclDestroy(), EmitDeclInit(), emitMappingInformation(), emitStoresForConstant(), EncodeBitField(), clang::Expr::EvaluateAsInitializer(), clang::SourceLocExpr::EvaluateInContext(), clang::ASTMergeAction::ExecuteAction(), clang::arcmt::trans::findSemiAfterLocation(), fixParamWithSpan(), fixUPCAddressofArraySubscriptWithSpan(), fixVarDeclWithArray(), FixVarInitializerWithSpan(), clang::FormatASTNodeDiagnosticArgument(), GCRewriteFinalize(), GenerateFixForUnusedDecl(), clang::index::generateUSRForDecl(), clang::index::generateUSRForType(), getAdjustedParameterType(), GetAlignOfType(), clang::tooling::getAssociatedRange(), getASTRecordLayout(), getAttrForPlatform(), clang::ento::MemRegionManager::getBlockDataRegion(), clang::FunctionDecl::getBuiltinID(), GetBuiltinType(), getByrefLifetime(), getCallingConvMangling(), getCanonicalParamType(), getCFConstantStringDecl(), clang::ASTNameGenerator::Implementation::getClassSymbolPrefix(), clang::ento::SValBuilder::getConditionType(), getCXXABIKind(), getDeclLanguageLinkage(), clang::LinkageComputer::getDeclLinkageAndVisibility(), GetDiagForGotoScopeDecl(), clang::ento::retaincountchecker::RefLeakReportVisitor::getEndPath(), DerefSimplePtrArithFixableGadget::getFixits(), UPCPreIncrementGadget::getFixits(), UUCAddAssignGadget::getFixits(), getFloatTypeSemantics(), clang::AnalysisDeclContext::getFunctionName(), GetGCAttrTypeForType(), clang::Expr::getIntegerConstantExpr(), clang::ento::CheckerContext::getLangOpts(), clang::interp::Context::getLangOpts(), clang::index::IndexingContext::getLangOpts(), clang::Decl::getLangOpts(), getLiteralInfo(), clang::CodeGen::CodeGenModule::getLLVMLinkageForDeclarator(), getLogicalOperationType(), clang::LinkageComputer::getLVForDecl(), getMacroName(), getMoreSpecialized(), clang::Sema::getMoreSpecializedTemplate(), clang::CXXRecordDecl::getMSVtorDispMode(), clang::StandardConversionSequence::getNarrowingKind(), clang::QualType::getNonLValueExprType(), getNSArrayObjects(), clang::NSAPI::GetNSIntegralKind(), getObjCEncodingForBlock(), getObjCGCAttrKind(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), clang::Sema::getPrintingPolicy(), getRealizedPlatform(), clang::DeclContext::getRedeclContext(), getRVVTypeSize(), clang::ObjCMethodDecl::getSelfType(), clang::ento::MemRegionManager::getStaticSize(), getStringLiteralArrayType(), getSVETypeSize(), clang::tooling::getText(), getTypeInfoDataSizeInChars(), getVTableContext(), clang::CodeGen::CodeGenModule::getVTableLinkage(), clang::ento::retaincountchecker::RetainCountChecker::handleAutoreleaseCounts(), handleBuiltinAliasAttr(), clang::Sema::handleTagNumbering(), clang::Decl::hasLocalOwningModuleStorage(), clang::ASTNodeImporter::hasReturnTypeDeclaredInside(), hasSameFunctionTypeIgnoringExceptionSpec(), clang::ast_matchers::libc_func_matchers::hasUnsafeFormatOrSArg(), InsertOCLBuiltinDeclarationsFromTable(), clang::Sema::isAcceptableNestedNameSpecifier(), clang::Expr::isCXX11ConstantExpr(), isDeclExternC(), clang::ParmVarDecl::isDestroyedInCallee(), clang::ObjCMethodDecl::isDirectMethod(), clang::ObjCPropertyDecl::isDirectProperty(), clang::FunctionDecl::isInlineDefinitionExternallyVisible(), clang::Expr::isIntegerConstantExpr(), clang::Sema::IsIntegralPromotion(), clang::Type::isIntegralType(), clang::VarDecl::isKnownToBeDefined(), clang::Sema::isLaxVectorConversion(), clang::Type::isLiteralType(), IsModifiable(), isMsLayout(), clang::VarDecl::isNoDestroy(), clang::QualType::isNonConstantStorage(), clang::QualType::isNonWeakInMRRWithObjCWeak(), clang::Expr::isNullPointerConstant(), isOutOfScopePreviousDeclaration(), clang::QualType::isPODType(), isPromotableBitField(), isPromotableIntegerType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), isSameEntity(), IsStringInit(), isTypeSubstitutable(), clang::Expr::isUnusedResultAWarning(), clang::VarDecl::isUsableInConstantExpressions(), isUserWritingOffTheEnd(), clang::CXXMethodDecl::isUsualDeallocationFunction(), IsWideCharCompatible(), clang::CodeGen::ABIInfo::isZeroLengthBitfieldPermittedInHomogeneousAggregate(), clang::CXXRecordDecl::lambdaIsDefaultConstructibleAndAssignable(), LocPropertyAttribute(), mangleOverrideDiscrimination(), MarkUsedTemplateParameters(), matchesPostDecrInWhile(), clang::Sema::MaybeBindToTemporary(), clang::tooling::maybeExtendRange(), clang::RecordDecl::mayInsertExtraPadding(), clang::ASTDeclMerger::mergeLambda(), clang::ASTDeclReader::mergeMergeable(), clang::ASTDeclReader::mergeRedeclarable(), mergeTypes(), needsConversionOfHalfVec(), clang::ento::ConditionBRVisitor::patternMatch(), printExprAsWritten(), clang::ProgramPoint::printJson(), clang::LocationContext::printJson(), printNode(), PrintStats(), clang::ento::retaincountchecker::RetainCountChecker::processLeaks(), ProcessStmtAttribute(), clang::randstruct::randomizeStructureLayout(), clang::ASTDeclReader::ReadFunctionDefinition(), clang::CodeGen::CodeGenModule::Release(), reportAnalyzerFunctionMisuse(), resolveAllocationOverload(), clang::edit::rewriteObjCRedundantCallWithLiteral(), clang::arcmt::trans::MigrationContext::rewritePropertyAttribute(), clang::edit::rewriteToObjCLiteralSyntax(), clang::CodeGen::CodeGenModule::setGlobalVisibility(), setInstantiatedFromUnnamedFieldDecl(), setObjCGCLValueClass(), shouldNotRewriteImmediateMessageArgs(), clang::shouldSkipCheckingODR(), ShouldUseExternalRTTIDescriptor(), clang::Sema::SpecialMemberIsTrivial(), clang::CodeGen::CodeGenModule::stopAutoInit(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), typesAreCompatible(), UnwrapSimilarArrayTypes(), UnwrapSimilarTypes(), clang::QualType::UseExcessPrecision(), useInlineVisibilityHidden(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ASTDeclReader::VisitDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTDeclReader::VisitEnumDecl(), clang::ASTDeclReader::VisitFieldDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ASTDeclReader::VisitFunctionDecl(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ASTDeclReader::VisitVarDeclImpl().
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 8594 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