clang 20.0.0git
|
#include "clang/AST/ASTContext.h"
#include "ByteCode/Context.h"
#include "CXXABI.h"
#include "clang/AST/APValue.h"
#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/ASTTypeTraits.h"
#include "clang/AST/Attr.h"
#include "clang/AST/AttrIterator.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Comment.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclContextInternals.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExternalASTSource.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/MangleNumberingContext.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/ParentMapContext.h"
#include "clang/AST/RawCommentList.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/UnresolvedSet.h"
#include "clang/AST/VTableBuilder.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/CommentOptions.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/NoSanitizeList.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/ProfileList.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetCXXABI.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/XRayLists.h"
#include "llvm/ADT/APFixedPoint.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SipHash.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "llvm/TargetParser/Triple.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <utility>
#include "clang/AST/TypeNodes.inc"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/HLSLIntangibleTypes.def"
#include "clang/Basic/AArch64SVEACLETypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/WebAssemblyReferenceTypes.def"
#include "clang/Basic/AMDGPUTypes.def"
#include "clang/AST/BuiltinTypes.def"
Go to the source code of this file.
Classes | |
struct | llvm::DenseMapInfo< llvm::FoldingSetNodeID > |
Macros | |
#define | TYPE(Name, Parent) 0, |
#define | ABSTRACT_TYPE(Name, Parent) |
#define | TYPE(Name, Parent) |
#define | ABSTRACT_TYPE(Name, Parent) |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | EXT_OPAQUE_TYPE(ExtType, Id, Ext) InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define | HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | SVE_TYPE(Name, Id, SingletonId) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | PPC_VECTOR_MMA_TYPE(Name, Id, Size) InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define | PPC_VECTOR_VSX_TYPE(Name, Id, Size) InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define | RVV_TYPE(Name, Id, SingletonId) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | WASM_TYPE(Name, Id, SingletonId) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) InitBuiltinType(SingletonId, BuiltinType::Id); |
#define | TYPE(Class, Base) |
#define | ABSTRACT_TYPE(Class, Base) |
#define | NON_CANONICAL_TYPE(Class, Base) |
#define | DEPENDENT_TYPE(Class, Base) case Type::Class: |
#define | NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) case BuiltinType::Id: |
#define | EXT_OPAQUE_TYPE(ExtType, Id, Ext) case BuiltinType::Id: |
#define | SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) |
#define | SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) |
#define | SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) |
#define | AARCH64_VECTOR_TYPE_MFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | PPC_VECTOR_TYPE(Name, Id, Size) |
#define | RVV_VECTOR_TYPE(Name, Id, SingletonId, ElKind, ElBits, NF, IsSigned, IsFP, IsBF) |
#define | RVV_PREDICATE_TYPE(Name, Id, SingletonId, ElKind) |
#define | WASM_TYPE(Name, Id, SingletonId) |
#define | AMDGPU_TYPE(NAME, ID, SINGLETONID, WIDTH, ALIGN) |
#define | HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | SIGNED_TYPE(Id, SingletonId) |
#define | UNSIGNED_TYPE(Id, SingletonId) |
#define | PLACEHOLDER_TYPE(Id, SingletonId) case BuiltinType::Id: |
#define | BUILTIN_TYPE(Id, SingletonId) |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) |
#define | EXT_OPAQUE_TYPE(ExtType, Id, Ext) |
#define | SVE_TYPE(Name, Id, SingletonId) |
#define | HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) |
#define | AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) case BuiltinType::Id: |
#define | RVV_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | NON_CANONICAL_TYPE(Class, Base) case Type::Class: |
#define | DEPENDENT_TYPE(Class, Base) case Type::Class: |
#define | NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class: |
#define | ABSTRACT_TYPE(Class, Base) |
#define | TYPE(Class, Base) |
#define | TYPE(Class, Base) |
#define | ABSTRACT_TYPE(Class, Base) |
#define | NON_CANONICAL_TYPE(Class, Base) case Type::Class: |
#define | SVE_INT_ELTTY(BITS, ELTS, SIGNED, NUMVECTORS) |
#define | SVE_ELTTY(ELTTY, ELTS, NUMVECTORS) {ELTTY, llvm::ElementCount::getScalable(ELTS), NUMVECTORS}; |
#define | SVE_VECTOR_TYPE_INT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) |
#define | SVE_VECTOR_TYPE_FLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | SVE_VECTOR_TYPE_BFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | SVE_PREDICATE_TYPE_ALL(Name, MangledName, Id, SingletonId, NumEls, NF) |
#define | AARCH64_VECTOR_TYPE_MFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) |
#define | RVV_VECTOR_TYPE_INT(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned) |
#define | RVV_VECTOR_TYPE_FLOAT(Name, Id, SingletonId, NumEls, ElBits, NF) |
#define | RVV_VECTOR_TYPE_BFLOAT(Name, Id, SingletonId, NumEls, ElBits, NF) |
#define | RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls) |
#define | WASM_REF_TYPE(Name, MangledName, Id, SingletonId, AS) |
#define | SVE_VECTOR_TYPE_INT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF, IsSigned) |
#define | SVE_VECTOR_TYPE_FLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | SVE_VECTOR_TYPE_BFLOAT(Name, MangledName, Id, SingletonId, NumEls, ElBits, NF) |
#define | SVE_PREDICATE_TYPE_ALL(Name, MangledName, Id, SingletonId, NumEls, NF) |
#define | SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) |
#define | AARCH64_VECTOR_TYPE(Name, MangledName, Id, SingletonId) |
#define | RVV_VECTOR_TYPE(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF) |
#define | RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls) |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) |
#define | SVE_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | RVV_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | WASM_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) case BuiltinType::Id: |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) case BuiltinType::Id: |
#define | EXT_OPAQUE_TYPE(ExtType, Id, Ext) case BuiltinType::Id: |
#define | PPC_VECTOR_TYPE(Name, Id, Size) case BuiltinType::Id: |
#define | HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) case BuiltinType::Id: |
#define | BUILTIN_TYPE(KIND, ID) |
#define | PLACEHOLDER_TYPE(KIND, ID) case BuiltinType::KIND: |
#define | ABSTRACT_TYPE(KIND, BASE) |
#define | TYPE(KIND, BASE) |
#define | DEPENDENT_TYPE(KIND, BASE) case Type::KIND: |
#define | NON_CANONICAL_TYPE(KIND, BASE) case Type::KIND: |
#define | NON_CANONICAL_UNLESS_DEPENDENT_TYPE(KIND, BASE) case Type::KIND: |
#define | TYPE(Class, Base) |
#define | ABSTRACT_TYPE(Class, Base) |
#define | NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class: |
#define | NON_CANONICAL_TYPE(Class, Base) case Type::Class: |
#define | DEPENDENT_TYPE(Class, Base) case Type::Class: |
#define | UNEXPECTED_TYPE(Class, Kind) |
#define | NON_CANONICAL_TYPE(Class, Base) UNEXPECTED_TYPE(Class, "non-canonical") |
#define | TYPE(Class, Base) |
#define | SUGAR_FREE_TYPE(Class) UNEXPECTED_TYPE(Class, "sugar-free") |
#define | NON_UNIQUE_TYPE(Class) UNEXPECTED_TYPE(Class, "non-unique") |
#define | UNEXPECTED_TYPE(Class, Kind) |
#define | TYPE(Class, Base) |
#define | DEPENDENT_TYPE(Class, Base) UNEXPECTED_TYPE(Class, "dependent") |
#define | CANONICAL_TYPE(Class) UNEXPECTED_TYPE(Class, "canonical") |
Enumerations | |
enum | FloatingRank { BFloat16Rank , Float16Rank , HalfRank , FloatRank , DoubleRank , LongDoubleRank , Float128Rank , Ibm128Rank } |
Functions | |
static SmallVector< SourceLocation, 2 > | getDeclLocsForCommentSearch (const Decl *D, SourceManager &SourceMgr) |
static const Decl & | adjustDeclToTemplate (const Decl &D) |
If we have a 'templated' declaration for a template, adjust 'D' to refer to the actual template. | |
static void | addRedeclaredMethods (const ObjCMethodDecl *ObjCMethod, SmallVectorImpl< const NamedDecl * > &Redeclared) |
static bool | isAddrSpaceMapManglingEnabled (const TargetInfo &TI, const LangOptions &LangOpts) |
static TypeInfoChars | getConstantArrayInfoInChars (const ASTContext &Context, const ConstantArrayType *CAT) |
getConstantArrayInfoInChars - Performing the computation in CharUnits instead of in bits prevents overflowing the uint64_t for some large arrays. | |
static bool | unionHasUniqueObjectRepresentations (const ASTContext &Context, const RecordDecl *RD, bool CheckIfTriviallyCopyable) |
static int64_t | getSubobjectOffset (const FieldDecl *Field, const ASTContext &Context, const clang::ASTRecordLayout &) |
static int64_t | getSubobjectOffset (const CXXRecordDecl *RD, const ASTContext &Context, const clang::ASTRecordLayout &Layout) |
static std::optional< int64_t > | structHasUniqueObjectRepresentations (const ASTContext &Context, const RecordDecl *RD, bool CheckIfTriviallyCopyable) |
static std::optional< int64_t > | getSubobjectSizeInBits (const FieldDecl *Field, const ASTContext &Context, bool CheckIfTriviallyCopyable) |
static std::optional< int64_t > | getSubobjectSizeInBits (const CXXRecordDecl *RD, const ASTContext &Context, bool CheckIfTriviallyCopyable) |
template<typename RangeT > | |
static std::optional< int64_t > | structSubobjectsHaveUniqueObjectRepresentations (const RangeT &Subobjects, int64_t CurOffsetInBits, const ASTContext &Context, const clang::ASTRecordLayout &Layout, bool CheckIfTriviallyCopyable) |
static auto | getCanonicalTemplateArguments (const ASTContext &C, ArrayRef< TemplateArgument > Args, bool &AnyNonCanonArgs) |
static void | encodeTypeForFunctionPointerAuth (const ASTContext &Ctx, raw_ostream &OS, QualType QT) |
Encode a function type for use in the discriminator of a function pointer type. | |
static bool | isCanonicalResultType (QualType T) |
Determine whether T is canonical as the result type of a function. | |
static bool | isCanonicalExceptionSpecification (const FunctionProtoType::ExceptionSpecInfo &ESI, bool NoexceptInType) |
static bool | NeedsInjectedClassNameType (const RecordDecl *D) |
static bool | hasAnyPackExpansions (ArrayRef< TemplateArgument > Args) |
static int | CmpProtocolNames (ObjCProtocolDecl *const *LHS, ObjCProtocolDecl *const *RHS) |
CmpProtocolNames - Comparison predicate for sorting protocols alphabetically. | |
static bool | areSortedAndUniqued (ArrayRef< ObjCProtocolDecl * > Protocols) |
static void | SortAndUniqueProtocols (SmallVectorImpl< ObjCProtocolDecl * > &Protocols) |
static const TemplateArgument * | getDefaultTemplateArgumentOrNone (const NamedDecl *P) |
static NamespaceDecl * | getNamespace (const NestedNameSpecifier *X) |
static bool | isSameQualifier (const NestedNameSpecifier *X, const NestedNameSpecifier *Y) |
static bool | hasSameOverloadableAttrs (const FunctionDecl *A, const FunctionDecl *B) |
Determine whether the attributes we can overload on are identical for A and B. | |
static FloatingRank | getFloatingRank (QualType T) |
getFloatingRank - Return a relative rank for floating point types. | |
static const Type * | getIntegerTypeForEnum (const EnumType *ET) |
static bool | isTypeTypedefedAsBOOL (QualType T) |
static std::string | charUnitsToString (const CharUnits &CU) |
static char | getObjCEncodingForPrimitiveType (const ASTContext *C, const BuiltinType *BT) |
static char | ObjCEncodingForEnumType (const ASTContext *C, const EnumType *ET) |
static void | EncodeBitField (const ASTContext *Ctx, std::string &S, QualType T, const FieldDecl *FD) |
static bool | hasTemplateSpecializationInEncodedString (const Type *T, bool VisitBasesAndFields) |
static TypedefDecl * | CreateCharPtrNamedVaListDecl (const ASTContext *Context, StringRef Name) |
static TypedefDecl * | CreateMSVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateCharPtrBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateVoidPtrBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateAArch64ABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreatePowerABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateX86_64ABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreatePNaClABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateAAPCSABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateSystemZBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateHexagonBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateXtensaABIBuiltinVaListDecl (const ASTContext *Context) |
static TypedefDecl * | CreateVaListDecl (const ASTContext *Context, TargetInfo::BuiltinVaListKind Kind) |
static bool | areCompatVectorTypes (const VectorType *LHS, const VectorType *RHS) |
areCompatVectorTypes - Return true if the two specified vector types are compatible. | |
static bool | areCompatMatrixTypes (const ConstantMatrixType *LHS, const ConstantMatrixType *RHS) |
areCompatMatrixTypes - Return true if the two specified matrix types are compatible. | |
static uint64_t | getSVETypeSize (ASTContext &Context, const BuiltinType *Ty) |
getSVETypeSize - Return SVE vector or predicate register size. | |
static uint64_t | getRVVTypeSize (ASTContext &Context, const BuiltinType *Ty) |
getRVVTypeSize - Return RVV vector register size. | |
static int | compareObjCProtocolsByName (ObjCProtocolDecl *const *lhs, ObjCProtocolDecl *const *rhs) |
Comparison routine for Objective-C protocols to be used with llvm::array_pod_sort. | |
static void | getIntersectionOfProtocols (ASTContext &Context, const ObjCInterfaceDecl *CommonBase, const ObjCObjectPointerType *LHSOPT, const ObjCObjectPointerType *RHSOPT, SmallVectorImpl< ObjCProtocolDecl * > &IntersectionSet) |
getIntersectionOfProtocols - This routine finds the intersection of set of protocols inherited from two distinct objective-c pointer objects with the given common base. | |
static bool | canAssignObjCObjectTypes (ASTContext &ctx, QualType lhs, QualType rhs) |
Determine whether the first type is a subtype of the second. | |
static bool | sameObjCTypeArgs (ASTContext &ctx, const ObjCInterfaceDecl *iface, ArrayRef< QualType > lhsArgs, ArrayRef< QualType > rhsArgs, bool stripKindOf) |
static QualType | mergeEnumWithInteger (ASTContext &Context, const EnumType *ET, QualType other, bool isBlockReturnType) |
Given that we have an enum type and a non-enum type, try to merge them. | |
static QualType | DecodeTypeFromStr (const char *&Str, const ASTContext &Context, ASTContext::GetBuiltinTypeError &Error, bool &RequiresICE, bool AllowTypeModifiers) |
DecodeTypeFromStr - This decodes one type descriptor from Str, advancing the pointer over the consumed characters. | |
static GVALinkage | basicGVALinkageForFunction (const ASTContext &Context, const FunctionDecl *FD) |
static GVALinkage | adjustGVALinkageForAttributes (const ASTContext &Context, const Decl *D, GVALinkage L) |
static GVALinkage | adjustGVALinkageForExternalDefinitionKind (const ASTContext &Ctx, const Decl *D, GVALinkage L) |
Adjust the GVALinkage for a declaration based on what an external AST source knows about whether there can be other definitions of this declaration. | |
static GVALinkage | basicGVALinkageForVariable (const ASTContext &Context, const VarDecl *VD) |
static Decl * | getCommonDecl (Decl *X, Decl *Y) |
template<class T , std::enable_if_t< std::is_base_of_v< Decl, T >, bool > = true> | |
static T * | getCommonDecl (T *X, T *Y) |
template<class T , std::enable_if_t< std::is_base_of_v< Decl, T >, bool > = true> | |
static T * | getCommonDeclChecked (T *X, T *Y) |
static TemplateName | getCommonTemplateName (ASTContext &Ctx, TemplateName X, TemplateName Y, bool IgnoreDeduced=false) |
static TemplateName | getCommonTemplateNameChecked (ASTContext &Ctx, TemplateName X, TemplateName Y, bool IgnoreDeduced) |
static auto | getCommonTypes (ASTContext &Ctx, ArrayRef< QualType > Xs, ArrayRef< QualType > Ys, bool Unqualified=false) |
template<class T > | |
static SourceLocation | getCommonAttrLoc (const T *X, const T *Y) |
static TemplateArgument | getCommonTemplateArgument (ASTContext &Ctx, const TemplateArgument &X, const TemplateArgument &Y) |
static bool | getCommonTemplateArguments (ASTContext &Ctx, SmallVectorImpl< TemplateArgument > &R, ArrayRef< TemplateArgument > Xs, ArrayRef< TemplateArgument > Ys) |
static auto | getCommonTemplateArguments (ASTContext &Ctx, ArrayRef< TemplateArgument > Xs, ArrayRef< TemplateArgument > Ys) |
template<class T > | |
static ElaboratedTypeKeyword | getCommonTypeKeyword (const T *X, const T *Y) |
template<class T > | |
static NestedNameSpecifier * | getCommonNNS (ASTContext &Ctx, const T *X, const T *Y) |
template<class T > | |
static QualType | getCommonElementType (ASTContext &Ctx, const T *X, const T *Y) |
template<class T > | |
static QualType | getCommonArrayElementType (ASTContext &Ctx, const T *X, Qualifiers &QX, const T *Y, Qualifiers &QY) |
template<class T > | |
static QualType | getCommonPointeeType (ASTContext &Ctx, const T *X, const T *Y) |
template<class T > | |
static auto * | getCommonSizeExpr (ASTContext &Ctx, T *X, T *Y) |
static auto | getCommonSizeModifier (const ArrayType *X, const ArrayType *Y) |
static auto | getCommonIndexTypeCVRQualifiers (const ArrayType *X, const ArrayType *Y) |
static void | mergeTypeLists (ASTContext &Ctx, SmallVectorImpl< QualType > &Out, ArrayRef< QualType > X, ArrayRef< QualType > Y) |
static QualType | getCommonNonSugarTypeNode (ASTContext &Ctx, const Type *X, Qualifiers &QX, const Type *Y, Qualifiers &QY) |
static QualType | getCommonSugarTypeNode (ASTContext &Ctx, const Type *X, const Type *Y, SplitQualType Underlying) |
static auto | unwrapSugar (SplitQualType &T, Qualifiers &QTotal) |
static std::vector< std::string > | getFMVBackendFeaturesFor (const llvm::SmallVectorImpl< StringRef > &FMVFeatStrings) |
static SYCLKernelInfo | BuildSYCLKernelInfo (CanQualType KernelNameType, const FunctionDecl *FD) |
#define AARCH64_VECTOR_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define AARCH64_VECTOR_TYPE_MFLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define AARCH64_VECTOR_TYPE_MFLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | KIND, | |
BASE | |||
) |
#define ABSTRACT_TYPE | ( | Name, | |
Parent | |||
) |
#define ABSTRACT_TYPE | ( | Name, | |
Parent | |||
) |
#define AMDGPU_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
Width, | |||
Align | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define AMDGPU_TYPE | ( | NAME, | |
ID, | |||
SINGLETONID, | |||
WIDTH, | |||
ALIGN | |||
) |
#define AMDGPU_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
Width, | |||
Align | |||
) | case BuiltinType::Id: |
#define AMDGPU_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
Width, | |||
Align | |||
) | case BuiltinType::Id: |
#define BUILTIN_TYPE | ( | Id, | |
SingletonId | |||
) |
#define BUILTIN_TYPE | ( | KIND, | |
ID | |||
) |
#define CANONICAL_TYPE | ( | Class | ) | UNEXPECTED_TYPE(Class, "canonical") |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | UNEXPECTED_TYPE(Class, "dependent") |
#define DEPENDENT_TYPE | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define EXT_OPAQUE_TYPE | ( | ExtType, | |
Id, | |||
Ext | |||
) | InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define EXT_OPAQUE_TYPE | ( | ExtType, | |
Id, | |||
Ext | |||
) | case BuiltinType::Id: |
#define EXT_OPAQUE_TYPE | ( | ExtType, | |
Id, | |||
Ext | |||
) |
#define EXT_OPAQUE_TYPE | ( | ExtType, | |
Id, | |||
Ext | |||
) | case BuiltinType::Id: |
#define HLSL_INTANGIBLE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define HLSL_INTANGIBLE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define HLSL_INTANGIBLE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) |
#define HLSL_INTANGIBLE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define IMAGE_TYPE | ( | ImgType, | |
Id, | |||
SingletonId, | |||
Access, | |||
Suffix | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define IMAGE_TYPE | ( | ImgType, | |
Id, | |||
SingletonId, | |||
Access, | |||
Suffix | |||
) | case BuiltinType::Id: |
#define IMAGE_TYPE | ( | ImgType, | |
Id, | |||
SingletonId, | |||
Access, | |||
Suffix | |||
) |
#define IMAGE_TYPE | ( | ImgType, | |
Id, | |||
SingletonId, | |||
Access, | |||
Suffix | |||
) |
#define IMAGE_TYPE | ( | ImgType, | |
Id, | |||
SingletonId, | |||
Access, | |||
Suffix | |||
) | case BuiltinType::Id: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) | UNEXPECTED_TYPE(Class, "non-canonical") |
#define NON_CANONICAL_TYPE | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | Class, | |
Base | |||
) |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define NON_UNIQUE_TYPE | ( | Class | ) | UNEXPECTED_TYPE(Class, "non-unique") |
#define PLACEHOLDER_TYPE | ( | Id, | |
SingletonId | |||
) | case BuiltinType::Id: |
#define PLACEHOLDER_TYPE | ( | KIND, | |
ID | |||
) | case BuiltinType::KIND: |
#define PPC_VECTOR_MMA_TYPE | ( | Name, | |
Id, | |||
Size | |||
) | InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define PPC_VECTOR_TYPE | ( | Name, | |
Id, | |||
Size | |||
) |
#define PPC_VECTOR_TYPE | ( | Name, | |
Id, | |||
Size | |||
) | case BuiltinType::Id: |
#define PPC_VECTOR_VSX_TYPE | ( | Name, | |
Id, | |||
Size | |||
) | InitBuiltinType(Id##Ty, BuiltinType::Id); |
#define RVV_PREDICATE_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
ElKind | |||
) |
#define RVV_PREDICATE_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls | |||
) |
#define RVV_PREDICATE_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls | |||
) |
#define RVV_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define RVV_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define RVV_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define RVV_VECTOR_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
ElKind, | |||
ElBits, | |||
NF, | |||
IsSigned, | |||
IsFP, | |||
IsBF | |||
) |
#define RVV_VECTOR_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned, | |||
IsFP, | |||
IsBF | |||
) |
#define RVV_VECTOR_TYPE_BFLOAT | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define RVV_VECTOR_TYPE_FLOAT | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define RVV_VECTOR_TYPE_INT | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned | |||
) |
#define SIGNED_TYPE | ( | Id, | |
SingletonId | |||
) |
#define SUGAR_FREE_TYPE | ( | Class | ) | UNEXPECTED_TYPE(Class, "sugar-free") |
#define SVE_ELTTY | ( | ELTTY, | |
ELTS, | |||
NUMVECTORS | |||
) | {ELTTY, llvm::ElementCount::getScalable(ELTS), NUMVECTORS}; |
#define SVE_INT_ELTTY | ( | BITS, | |
ELTS, | |||
SIGNED, | |||
NUMVECTORS | |||
) |
#define SVE_OPAQUE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_OPAQUE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_OPAQUE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_PREDICATE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_PREDICATE_TYPE_ALL | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
NF | |||
) |
#define SVE_PREDICATE_TYPE_ALL | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
NF | |||
) |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define SVE_VECTOR_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_VECTOR_TYPE_BFLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define SVE_VECTOR_TYPE_BFLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define SVE_VECTOR_TYPE_FLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define SVE_VECTOR_TYPE_FLOAT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define SVE_VECTOR_TYPE_INT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned | |||
) |
#define SVE_VECTOR_TYPE_INT | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | KIND, | |
BASE | |||
) |
#define TYPE | ( | Name, | |
Parent | |||
) | 0, |
#define TYPE | ( | Name, | |
Parent | |||
) |
#define UNEXPECTED_TYPE | ( | Class, | |
Kind | |||
) |
#define UNEXPECTED_TYPE | ( | Class, | |
Kind | |||
) |
#define UNSIGNED_TYPE | ( | Id, | |
SingletonId | |||
) |
#define WASM_REF_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
AS | |||
) |
#define WASM_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define WASM_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) |
#define WASM_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
enum FloatingRank |
Enumerator | |
---|---|
BFloat16Rank | |
Float16Rank | |
HalfRank | |
FloatRank | |
DoubleRank | |
LongDoubleRank | |
Float128Rank | |
Ibm128Rank |
Definition at line 104 of file ASTContext.cpp.
|
static |
Definition at line 513 of file ASTContext.cpp.
References clang::Decl::getDeclContext(), clang::ObjCMethodDecl::getSelector(), and clang::ObjCMethodDecl::isInstanceMethod().
Referenced by clang::ASTContext::getCommentForDecl().
If we have a 'templated' declaration for a template, adjust 'D' to refer to the actual template.
If we have an implicit instantiation, adjust 'D' to refer to template.
Definition at line 355 of file ASTContext.cpp.
References D, clang::EnumDecl::getInstantiatedFromMemberEnum(), clang::FunctionDecl::getInstantiatedFromMemberFunction(), clang::VarDecl::getInstantiatedFromStaticDataMember(), clang::ClassTemplateSpecializationDecl::getSpecializedTemplateOrPartial(), and clang::TSK_ImplicitInstantiation.
Referenced by clang::ASTContext::attachCommentsToJustParsedDecls(), clang::ASTContext::getCommentForDecl(), and clang::ASTContext::getRawCommentForAnyRedecl().
|
static |
Definition at line 12467 of file ASTContext.cpp.
References D, clang::ASTContext::getLangOpts(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_StrongODR, clang::Decl::hasAttr(), and clang::ASTContext::shouldExternalize().
Referenced by clang::ASTContext::GetGVALinkageForFunction(), and clang::ASTContext::GetGVALinkageForVariable().
|
static |
Adjust the GVALinkage for a declaration based on what an external AST source knows about whether there can be other definitions of this declaration.
Definition at line 12498 of file ASTContext.cpp.
References D, clang::ExternalASTSource::EK_Always, clang::ExternalASTSource::EK_Never, clang::ExternalASTSource::EK_ReplyHazy, clang::ASTContext::getExternalSource(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_StrongODR, and clang::ExternalASTSource::hasExternalDefinitions().
Referenced by clang::ASTContext::GetGVALinkageForFunction(), and clang::ASTContext::GetGVALinkageForVariable().
|
static |
areCompatMatrixTypes - Return true if the two specified matrix types are compatible.
Definition at line 10125 of file ASTContext.cpp.
References clang::MatrixType::getElementType(), clang::ConstantMatrixType::getNumColumns(), clang::ConstantMatrixType::getNumRows(), and clang::Type::isCanonicalUnqualified().
Referenced by clang::ASTContext::mergeTypes().
|
static |
areCompatVectorTypes - Return true if the two specified vector types are compatible.
Definition at line 10116 of file ASTContext.cpp.
References clang::VectorType::getElementType(), clang::VectorType::getNumElements(), and clang::Type::isCanonicalUnqualified().
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 5787 of file ASTContext.cpp.
References CmpProtocolNames(), and getCanonicalDecl().
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 12398 of file ASTContext.cpp.
References clang::External, clang::TargetInfo::getCXXABI(), clang::ASTContext::getLangOpts(), clang::ASTContext::getTargetInfo(), clang::FunctionDecl::getTemplateSpecializationKind(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_StrongODR, clang::Decl::hasAttr(), clang::NamedDecl::isExternallyVisible(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineDefinitionExternallyVisible(), clang::TargetCXXABI::isMicrosoft(), clang::FunctionDecl::isMSExternInline(), clang::FunctionDecl::isUserProvided(), clang::TSK_ExplicitInstantiationDeclaration, clang::TSK_ExplicitInstantiationDefinition, clang::TSK_ExplicitSpecialization, clang::TSK_ImplicitInstantiation, and clang::TSK_Undeclared.
Referenced by clang::ASTContext::GetGVALinkageForFunction(), and clang::ASTContext::mayExternalize().
|
static |
Definition at line 12526 of file ASTContext.cpp.
References clang::TargetInfo::getCXXABI(), clang::VarDecl::getDescribedVarTemplate(), clang::ASTContext::GetGVALinkageForFunction(), clang::ASTContext::getInlineVariableDefinitionKind(), clang::ASTContext::getLangOpts(), clang::DeclContext::getLexicalParent(), clang::Decl::getParentFunctionOrMethod(), clang::ASTContext::getTargetInfo(), clang::VarDecl::getTemplateSpecializationKind(), clang::ValueDecl::getType(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_StrongODR, clang::QualType::isConstQualified(), clang::NamedDecl::isExternallyVisible(), clang::VarDecl::isInline(), clang::TargetCXXABI::isMicrosoft(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), clang::VarDecl::isStaticDataMember(), clang::VarDecl::isStaticLocal(), clang::QualType::isVolatileQualified(), clang::ASTContext::None, clang::ASTContext::Strong, clang::TSK_ExplicitInstantiationDeclaration, clang::TSK_ExplicitInstantiationDefinition, clang::TSK_ExplicitSpecialization, clang::TSK_ImplicitInstantiation, clang::TSK_Undeclared, clang::ASTContext::Weak, and clang::ASTContext::WeakUnknown.
Referenced by clang::ASTContext::GetGVALinkageForVariable(), and clang::ASTContext::mayExternalize().
|
static |
Definition at line 14478 of file ASTContext.cpp.
Referenced by clang::ASTContext::registerSYCLEntryPointFunction().
|
static |
Determine whether the first type is a subtype of the second.
Definition at line 10717 of file ASTContext.cpp.
References clang::ASTContext::canAssignObjCInterfaces(), clang::Type::getAs(), clang::ObjCObjectPointerType::isObjCIdType(), and clang::ASTContext::typesAreBlockPointerCompatible().
Referenced by sameObjCTypeArgs().
|
static |
Definition at line 8302 of file ASTContext.cpp.
References clang::CharUnits::getQuantity().
Referenced by clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), and clang::ASTContext::getObjCEncodingForMethodDecl().
|
static |
CmpProtocolNames - Comparison predicate for sorting protocols alphabetically.
Definition at line 5782 of file ASTContext.cpp.
References clang::DeclarationName::compare().
Referenced by areSortedAndUniqued(), and SortAndUniqueProtocols().
|
static |
Comparison routine for Objective-C protocols to be used with llvm::array_pod_sort.
Definition at line 10649 of file ASTContext.cpp.
Referenced by getIntersectionOfProtocols().
|
static |
Definition at line 9608 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::NamespaceDecl::Create(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getLangOpts(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getTranslationUnitDecl(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::Decl::setDeclContext(), clang::Decl::setImplicit(), clang::TagDecl::startDefinition(), clang::T, clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9421 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::NamespaceDecl::Create(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getLangOpts(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getTranslationUnitDecl(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::ASTContext::IntTy, clang::Decl::setDeclContext(), clang::TagDecl::startDefinition(), clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9410 of file ASTContext.cpp.
References CreateCharPtrNamedVaListDecl().
Referenced by CreateVaListDecl().
|
static |
Definition at line 9399 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::CharTy, clang::ASTContext::getPointerType(), and clang::T.
Referenced by CreateCharPtrBuiltinVaListDecl(), and CreateMSVaListDecl().
|
static |
Definition at line 9703 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypedefType(), clang::ASTContext::getTypeSize(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9406 of file ASTContext.cpp.
References CreateCharPtrNamedVaListDecl().
Referenced by clang::ASTContext::getBuiltinMSVaListDecl().
|
static |
Definition at line 9599 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypeSize(), clang::ASTContext::IntTy, and clang::Normal.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9483 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypedefType(), clang::ASTContext::getTypeSize(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::UnsignedCharTy, clang::ASTContext::UnsignedShortTy, clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9649 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypeSize(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::ASTContext::LongTy, clang::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9791 of file ASTContext.cpp.
References clang::TargetInfo::AAPCSABIBuiltinVaList, clang::TargetInfo::AArch64ABIBuiltinVaList, clang::TargetInfo::CharPtrBuiltinVaList, CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), CreateCharPtrBuiltinVaListDecl(), CreateHexagonBuiltinVaListDecl(), CreatePNaClABIBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateVoidPtrBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), CreateXtensaABIBuiltinVaListDecl(), clang::TargetInfo::HexagonBuiltinVaList, clang::TargetInfo::PNaClABIBuiltinVaList, clang::TargetInfo::PowerABIBuiltinVaList, clang::TargetInfo::SystemZBuiltinVaList, clang::TargetInfo::VoidPtrBuiltinVaList, clang::TargetInfo::X86_64ABIBuiltinVaList, and clang::TargetInfo::XtensaABIBuiltinVaList.
Referenced by clang::ASTContext::getBuiltinVaListDecl().
|
static |
Definition at line 9414 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::getPointerType(), clang::T, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9546 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypeSize(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::UnsignedIntTy, clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9755 of file ASTContext.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::buildImplicitRecord(), clang::ASTContext::buildImplicitTypedef(), clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), clang::IdentifierTable::get(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ICIS_NoInit, clang::ASTContext::Idents, clang::ASTContext::IntTy, clang::TagDecl::startDefinition(), and clang::ASTContext::VaListTagDecl.
Referenced by CreateVaListDecl().
|
static |
DecodeTypeFromStr - This decodes one type descriptor from Str, advancing the pointer over the consumed characters.
This returns the resultant type. If AllowTypeModifiers is false then modifier like * are not parsed, just basic types. This allows "v2i*" to be parsed as a pointer to a v2i instead of a vector of "i*".
RequiresICE is filled in on return to indicate whether the value is required to be an Integer Constant Expression.
Definition at line 11973 of file ASTContext.cpp.
References clang::ASTContext::BFloat16Ty, clang::ASTContext::BoolTy, c, clang::ASTContext::CharTy, DecodeTypeFromStr(), clang::ASTContext::DoubleTy, clang::ASTContext::Float128Ty, clang::ASTContext::Float16Ty, clang::ASTContext::FloatTy, clang::ASTContext::GE_Missing_setjmp, clang::ASTContext::GE_Missing_stdio, clang::ASTContext::GE_Missing_ucontext, clang::Generic, clang::ASTContext::getAddrSpaceQualType(), clang::ASTContext::getArrayDecayedType(), clang::ASTContext::getBuiltinVaListType(), clang::ASTContext::getCFConstantStringType(), clang::ASTContext::getComplexType(), clang::ASTContext::getExtVectorType(), clang::ASTContext::getFILEType(), clang::TargetInfo::getInt64Type(), clang::TargetInfo::getIntTypeByWidth(), clang::ASTContext::getjmp_bufType(), clang::ASTContext::getLangASForBuiltinAddressSpace(), clang::ASTContext::getLangOpts(), clang::TargetInfo::getLongWidth(), clang::ASTContext::getLValueReferenceType(), clang::ASTContext::getObjCIdType(), clang::ASTContext::getObjCSelType(), clang::ASTContext::getObjCSuperType(), clang::ASTContext::getPointerDiffType(), clang::ASTContext::getPointerType(), clang::ASTContext::getProcessIDType(), clang::ASTContext::getScalableVectorType(), clang::ASTContext::getsigjmp_bufType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getucontext_tType(), clang::ASTContext::getVectorType(), clang::ASTContext::getVolatileType(), clang::ASTContext::getWideCharType(), clang::ASTContext::HalfTy, clang::ASTContext::Int128Ty, clang::ASTContext::IntTy, clang::Type::isArrayType(), clang::Type::isIntegralOrEnumerationType(), clang::ASTContext::LongDoubleTy, clang::ASTContext::LongLongTy, clang::ASTContext::LongTy, clang::ASTContext::ShortTy, clang::Signed, clang::ASTContext::SignedCharTy, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::Unsigned, clang::ASTContext::UnsignedCharTy, clang::ASTContext::UnsignedInt128Ty, clang::ASTContext::UnsignedIntTy, clang::ASTContext::UnsignedLongLongTy, clang::ASTContext::UnsignedLongTy, clang::ASTContext::UnsignedShortTy, and clang::ASTContext::VoidTy.
Referenced by DecodeTypeFromStr(), clang::ASTContext::DecodeTypeStr(), and clang::ASTContext::GetBuiltinType().
|
static |
Definition at line 8760 of file ASTContext.cpp.
References clang::Type::castAs(), clang::Type::getAs(), clang::ASTContext::getASTRecordLayout(), clang::FieldDecl::getBitWidthValue(), clang::FieldDecl::getFieldIndex(), clang::ASTRecordLayout::getFieldOffset(), clang::ASTContext::getLangOpts(), getObjCEncodingForPrimitiveType(), clang::FieldDecl::getParent(), clang::FieldDecl::isBitField(), clang::ObjCRuntime::isGNUFamily(), clang::ASTContext::lookupFieldBitOffset(), ObjCEncodingForEnumType(), clang::LangOptions::ObjCRuntime, and clang::T.
|
static |
Encode a function type for use in the discriminator of a function pointer type.
We can't use the itanium scheme for this since C has quite permissive rules for type compatibility that we need to be compatible with.
Formally, this function associates every function pointer type T with an encoded string E(T). Let the equivalence relation T1 ~ T2 be defined as E(T1) == E(T2). E(T) is part of the ABI of values of type T. C type compatibility requires equivalent treatment under the ABI, so CCompatible(T1, T2) must imply E(T1) == E(T2), that is, CCompatible must be a subset of ~. Crucially, however, it must be a proper subset because CCompatible is not an equivalence relation: for example, int[] is compatible with both int[1] and int[2], but the latter are not compatible with each other. Therefore this encoding function must be careful to only distinguish types if there is no third type with which they are both required to be compatible.
Definition at line 3236 of file ASTContext.cpp.
References clang::Type::castAs(), encodeTypeForFunctionPointerAuth(), clang::QualType::getCanonicalType(), clang::NamedDecl::getIdentifier(), clang::IdentifierInfo::getLength(), clang::IdentifierInfo::getName(), getPointeeType(), clang::CharUnits::getQuantity(), clang::ASTContext::getSignatureParameterType(), clang::Type::getTypeClass(), clang::TagDecl::getTypedefNameForAnonDecl(), clang::QualType::getTypePtr(), clang::ASTContext::getTypeSizeInChars(), clang::ASTContext::IntTy, clang::QualType::isNull(), and clang::T.
Referenced by encodeTypeForFunctionPointerAuth(), and clang::ASTContext::getPointerAuthTypeDiscriminator().
|
static |
Definition at line 3104 of file ASTContext.cpp.
References clang::C.
Referenced by clang::ASTContext::getCanonicalTemplateArgument(), clang::ASTContext::getCanonicalTemplateName(), clang::ASTContext::getCanonicalTemplateSpecializationType(), and clang::ASTContext::getDependentTemplateSpecializationType().
|
static |
Definition at line 13352 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), clang::QualType::getQualifiers(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13255 of file ASTContext.cpp.
References X.
Referenced by getCommonNonSugarTypeNode().
Definition at line 13195 of file ASTContext.cpp.
References clang::declaresSameEntity(), and X.
Referenced by getCommonDecl(), getCommonDeclChecked(), getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 13210 of file ASTContext.cpp.
References getCommonDecl(), and X.
|
static |
Definition at line 13217 of file ASTContext.cpp.
References getCommonDecl(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13347 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), and X.
Referenced by getCommonNonSugarTypeNode().
Definition at line 13379 of file ASTContext.cpp.
References clang::ArrayType::getIndexTypeCVRQualifiers(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13338 of file ASTContext.cpp.
References clang::ASTContext::getCanonicalNestedNameSpecifier(), and X.
Referenced by getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 13473 of file ASTContext.cpp.
References BitInt, clang::Enum, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::FunctionProtoType::ExtProtoInfo::ExtInfo, clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, clang::ASTContext::getArrayParameterType(), clang::ASTContext::getAtomicType(), clang::ASTContext::getAutoType(), clang::ASTContext::getBlockPointerType(), getCommonArrayElementType(), getCommonAttrLoc(), getCommonDecl(), getCommonDeclChecked(), getCommonElementType(), getCommonIndexTypeCVRQualifiers(), getCommonNNS(), getCommonPointeeType(), getCommonSizeExpr(), getCommonSizeModifier(), clang::ASTContext::getCommonSugaredType(), getCommonTemplateArguments(), getCommonTemplateNameChecked(), getCommonTypeKeyword(), getCommonTypes(), clang::ASTContext::getComplexType(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getConstantMatrixType(), clang::ASTContext::getDependentAddressSpaceType(), clang::ASTContext::getDependentNameType(), clang::ASTContext::getDependentSizedArrayType(), clang::ASTContext::getDependentSizedExtVectorType(), clang::ASTContext::getDependentSizedMatrixType(), clang::ASTContext::getDependentTemplateSpecializationType(), clang::ASTContext::getDependentVectorType(), clang::ASTContext::getExtVectorType(), clang::ASTContext::getFunctionNoProtoType(), clang::ASTContext::getFunctionType(), clang::ASTContext::getIncompleteArrayType(), clang::ASTContext::getInjectedClassNameType(), clang::ASTContext::getLValueReferenceType(), clang::ASTContext::getMemberPointerType(), clang::ASTContext::getObjCObjectPointerType(), clang::ASTContext::getObjCObjectType(), clang::ASTContext::getPackExpansionType(), clang::ASTContext::getPointerType(), clang::ASTContext::getReadPipeType(), clang::ASTContext::getRValueReferenceType(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTContext::getTemplateTypeParmType(), clang::Type::getTypeClass(), clang::QualType::getTypePtr(), clang::ASTContext::getUnaryTransformType(), clang::ASTContext::getVectorType(), clang::ASTContext::getWritePipeType(), clang::ASTContext::hasSameExpr(), clang::FunctionProtoType::ExtProtoInfo::HasTrailingReturn, clang::Type::isInstantiationDependentType(), clang::ASTContext::mergeExceptionSpecs(), NON_UNIQUE_TYPE, P, clang::FunctionProtoType::ExtProtoInfo::RefQualifier, SUGAR_FREE_TYPE, clang::FunctionProtoType::ExtProtoInfo::TypeQuals, UNEXPECTED_TYPE, clang::FunctionProtoType::ExtProtoInfo::Variadic, and X.
Referenced by clang::ASTContext::getCommonSugaredType().
|
static |
Definition at line 13365 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13369 of file ASTContext.cpp.
References clang::ASTContext::hasSameExpr(), and X.
Referenced by getCommonNonSugarTypeNode().
Definition at line 13374 of file ASTContext.cpp.
References clang::ArrayType::getSizeModifier(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13806 of file ASTContext.cpp.
References clang::Atomic, BitInt, CANONICAL_TYPE, Complex, clang::Enum, clang::ASTContext::getAdjustedType(), clang::TemplateName::getAsVoidPointer(), clang::ASTContext::getAttributedType(), clang::ASTContext::getAutoType(), clang::ASTContext::getBTFTagAttributedType(), getCommonDecl(), getCommonNNS(), clang::ASTContext::getCommonSugaredType(), getCommonTemplateArguments(), getCommonTemplateName(), getCommonTypeKeyword(), clang::ASTContext::getCountAttributedType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getElaboratedType(), clang::Expr::getIntegerConstantExpr(), getKind(), clang::ASTContext::getMacroQualifiedType(), clang::ASTContext::getParenType(), clang::ASTContext::getQualifiedType(), clang::ASTContext::getSubstTemplateTypeParmType(), clang::ASTContext::getTemplateSpecializationType(), clang::Type::getTypeClass(), clang::ASTContext::getTypedefType(), clang::ASTContext::getTypeOfType(), clang::ASTContext::getUnaryTransformType(), clang::ASTContext::getUsingType(), clang::ASTContext::hasSameExpr(), clang::ASTContext::hasSameType(), clang::Expr::isIntegerConstantExpr(), clang::Pipe, Pointer, clang::Qualified, clang::Unqualified, clang::Vector, and X.
Referenced by clang::ASTContext::getCommonSugaredType().
|
static |
Definition at line 13260 of file ASTContext.cpp.
References clang::TemplateArgument::Expression, clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsTemplate(), clang::TemplateArgument::getAsTemplateOrTemplatePattern(), clang::TemplateArgument::getAsType(), clang::TemplateName::getAsVoidPointer(), clang::ASTContext::getCommonSugaredType(), getCommonTemplateName(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getNullPtrType(), clang::TemplateArgument::getNumTemplateExpansions(), clang::Expr::getType(), clang::ASTContext::hasSameType(), clang::TemplateArgument::NullPtr, clang::TemplateArgument::Template, clang::TemplateArgument::TemplateExpansion, clang::TemplateArgument::Type, and X.
Referenced by getCommonTemplateArguments().
|
static |
Definition at line 13321 of file ASTContext.cpp.
References getCommonTemplateArguments().
|
static |
Definition at line 13306 of file ASTContext.cpp.
References getCommonTemplateArgument().
Referenced by getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), and getCommonTemplateArguments().
|
static |
Definition at line 13222 of file ASTContext.cpp.
References clang::TemplateName::getAsVoidPointer(), clang::ASTContext::getCanonicalTemplateName(), and X.
Referenced by getCommonSugarTypeNode(), getCommonTemplateArgument(), and getCommonTemplateNameChecked().
|
static |
Definition at line 13237 of file ASTContext.cpp.
References clang::TemplateName::getAsVoidPointer(), getCommonTemplateName(), and X.
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 13332 of file ASTContext.cpp.
References clang::None, and X.
Referenced by getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 13245 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), and clang::Unqualified.
Referenced by getCommonNonSugarTypeNode().
|
static |
getConstantArrayInfoInChars - Performing the computation in CharUnits instead of in bits prevents overflowing the uint64_t for some large arrays.
Definition at line 1853 of file ASTContext.cpp.
References clang::TypeInfoChars::Align, clang::TypeInfoChars::AlignRequirement, clang::Default, clang::CharUnits::fromQuantity(), clang::TargetInfo::getCXXABI(), clang::ArrayType::getElementType(), clang::TargetInfo::getPointerWidth(), clang::CharUnits::getQuantity(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getTypeInfoInChars(), clang::ConstantArrayType::getZExtSize(), clang::TargetCXXABI::isMicrosoft(), and clang::TypeInfoChars::Width.
Referenced by clang::ASTContext::getTypeInfoInChars().
|
static |
D
. Definition at line 139 of file ASTContext.cpp.
References clang::Decl::castFromDeclContext(), D, clang::Decl::getBeginLoc(), clang::Decl::getDeclContext(), clang::SourceManager::getExpansionLoc(), clang::Decl::getLocation(), clang::SourceManager::getSpellingLoc(), clang::Decl::isImplicit(), clang::SourceLocation::isMacroID(), clang::TSK_ImplicitInstantiation, and clang::TSK_Undeclared.
Referenced by clang::ASTContext::attachCommentsToJustParsedDecls(), and clang::ASTContext::getRawCommentForDeclNoCache().
|
static |
Definition at line 6823 of file ASTContext.cpp.
References P.
Referenced by clang::ASTContext::getCanonicalTemplateName().
|
static |
getFloatingRank - Return a relative rank for floating point types.
This routine will assert if passed a built-in type that isn't a float.
Definition at line 7656 of file ASTContext.cpp.
References BFloat16Rank, clang::Type::castAs(), DoubleRank, Float128Rank, Float16Rank, FloatRank, clang::Type::getAs(), getFloatingRank(), clang::BuiltinType::getKind(), HalfRank, Ibm128Rank, LongDoubleRank, and clang::T.
Referenced by getFloatingRank(), and clang::ASTContext::getFloatingTypeOrder().
|
static |
Definition at line 14358 of file ASTContext.cpp.
Referenced by clang::ASTContext::getFunctionFeatureMap().
Definition at line 7875 of file ASTContext.cpp.
References clang::EnumType::getDecl(), clang::EnumDecl::getIntegerType(), clang::QualType::getTypePtr(), clang::EnumDecl::isComplete(), and clang::EnumDecl::isScoped().
Referenced by clang::ASTContext::getIntegerTypeOrder().
|
static |
getIntersectionOfProtocols - This routine finds the intersection of set of protocols inherited from two distinct objective-c pointer objects with the given common base.
It is used to build composite qualifier list of the composite type of the conditional expression involving two objective-c pointer objects.
Definition at line 10660 of file ASTContext.cpp.
References clang::ASTContext::CollectInheritedProtocols(), compareObjCProtocolsByName(), clang::ObjCObjectType::getInterface(), clang::ObjCObjectPointerType::getObjectType(), and clang::ObjCProtocolQualifiers< T >::quals().
Referenced by clang::ASTContext::areCommonBaseCompatible().
|
static |
|
static |
Definition at line 8635 of file ASTContext.cpp.
References clang::C, clang::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), clang::BuiltinType::getKind(), clang::BuiltinType::getName(), and clang::DiagnosticsEngine::Report().
Referenced by EncodeBitField(), and ObjCEncodingForEnumType().
|
static |
getRVVTypeSize - Return RVV vector register size.
Definition at line 10252 of file ASTContext.cpp.
References clang::ASTContext::BoolTy, clang::ASTContext::BuiltinVectorTypeInfo::EC, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ASTContext::getBuiltinVectorTypeInfo(), clang::ASTContext::getLangOpts(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getTypeSize(), clang::TargetInfo::getVScaleRange(), and clang::Type::isRVVVLSBuiltinType().
Referenced by clang::ASTContext::areCompatibleRVVTypes(), and clang::ASTContext::areLaxCompatibleRVVTypes().
|
static |
Definition at line 2761 of file ASTContext.cpp.
References clang::ASTRecordLayout::getBaseClassOffset(), and clang::ASTContext::toBits().
|
static |
Definition at line 2755 of file ASTContext.cpp.
References clang::ASTContext::getFieldOffset().
Referenced by structSubobjectsHaveUniqueObjectRepresentations().
|
static |
Definition at line 2815 of file ASTContext.cpp.
References structHasUniqueObjectRepresentations().
|
static |
Definition at line 2773 of file ASTContext.cpp.
References clang::ASTContext::getTypeSizeInChars(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::TagDecl::isUnion(), structHasUniqueObjectRepresentations(), and clang::ASTContext::toBits().
Referenced by structSubobjectsHaveUniqueObjectRepresentations().
|
static |
getSVETypeSize - Return SVE vector or predicate register size.
Definition at line 10171 of file ASTContext.cpp.
References clang::ASTContext::getCharWidth(), clang::BuiltinType::getKind(), clang::ASTContext::getLangOpts(), and clang::Type::isSveVLSBuiltinType().
Referenced by clang::ASTContext::areCompatibleSveTypes(), and clang::ASTContext::areLaxCompatibleSveTypes().
|
static |
Definition at line 5457 of file ASTContext.cpp.
Referenced by clang::ASTContext::getTemplateSpecializationType().
|
static |
Determine whether the attributes we can overload on are identical for A and B.
Will ignore any overloadable attrs represented in the type of A and B.
Definition at line 7117 of file ASTContext.cpp.
References clang::Decl::getASTContext(), and clang::Decl::specific_attrs().
Referenced by clang::ASTContext::isSameEntity().
|
static |
Definition at line 8805 of file ASTContext.cpp.
References clang::Type::getAs(), clang::Type::getAsCXXRecordDecl(), clang::Type::getBaseElementTypeUnsafe(), hasTemplateSpecializationInEncodedString(), and clang::T.
Referenced by hasTemplateSpecializationInEncodedString().
|
static |
Definition at line 900 of file ASTContext.cpp.
References clang::LangOptionsBase::ASMM_Off, clang::LangOptionsBase::ASMM_On, clang::LangOptionsBase::ASMM_Target, and clang::TargetInfo::useAddressSpaceMapMangling().
Referenced by clang::ASTContext::InitBuiltinTypes().
|
static |
Definition at line 4812 of file ASTContext.cpp.
References clang::EST_BasicNoexcept, clang::EST_DependentNoexcept, clang::EST_Dynamic, clang::EST_None, clang::FunctionProtoType::ExceptionSpecInfo::Exceptions, clang::Type::getAs(), clang::QualType::isCanonical(), and clang::FunctionProtoType::ExceptionSpecInfo::Type.
Determine whether T
is canonical as the result type of a function.
Definition at line 4752 of file ASTContext.cpp.
References clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, and clang::T.
Referenced by clang::ASTContext::getFunctionNoProtoType().
|
static |
Definition at line 7076 of file ASTContext.cpp.
References clang::NestedNameSpecifier::getAsIdentifier(), clang::NestedNameSpecifier::getAsType(), clang::Type::getCanonicalTypeInternal(), clang::NestedNameSpecifier::getKind(), getNamespace(), clang::NestedNameSpecifier::getPrefix(), clang::NestedNameSpecifier::Global, clang::NestedNameSpecifier::Identifier, isSameQualifier(), clang::NestedNameSpecifier::Namespace, clang::NestedNameSpecifier::NamespaceAlias, clang::NestedNameSpecifier::Super, clang::NestedNameSpecifier::TypeSpec, clang::NestedNameSpecifier::TypeSpecWithTemplate, and X.
Referenced by clang::ASTContext::isSameEntity(), and isSameQualifier().
Definition at line 8249 of file ASTContext.cpp.
References clang::T.
|
static |
Given that we have an enum type and a non-enum type, try to merge them.
Definition at line 11269 of file ASTContext.cpp.
References clang::EnumType::getDecl(), clang::EnumDecl::getIntegerType(), clang::ASTContext::getTypeSize(), clang::ASTContext::hasSameType(), clang::Type::isIntegerType(), and clang::QualType::isNull().
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 13389 of file ASTContext.cpp.
References clang::Found, clang::ASTContext::getCanonicalType(), clang::ASTContext::getCommonSugaredType(), clang::T, and X.
Referenced by clang::ASTContext::mergeExceptionSpecs().
|
static |
Definition at line 5064 of file ASTContext.cpp.
References D.
Referenced by clang::ASTContext::getInjectedClassNameType().
|
static |
Definition at line 8748 of file ASTContext.cpp.
References clang::C, clang::Enum, clang::EnumType::getDecl(), and getObjCEncodingForPrimitiveType().
Referenced by EncodeBitField().
|
static |
Definition at line 10741 of file ASTContext.cpp.
References clang::ObjCTypeParamList::begin(), canAssignObjCObjectTypes(), clang::Contravariant, clang::Covariant, clang::ObjCInterfaceDecl::getTypeParamList(), clang::ObjCTypeParamDecl::getVariance(), clang::ASTContext::hasSameType(), and clang::Invariant.
Referenced by clang::ASTContext::areCommonBaseCompatible(), and clang::ASTContext::canAssignObjCInterfaces().
|
static |
Definition at line 5801 of file ASTContext.cpp.
References CmpProtocolNames(), and P.
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 2842 of file ASTContext.cpp.
References clang::RecordDecl::fields(), clang::ASTContext::getASTRecordLayout(), clang::TagDecl::isUnion(), and structSubobjectsHaveUniqueObjectRepresentations().
Referenced by getSubobjectSizeInBits(), and clang::ASTContext::hasUniqueObjectRepresentations().
|
static |
Definition at line 2822 of file ASTContext.cpp.
References getSubobjectOffset(), and getSubobjectSizeInBits().
Referenced by structHasUniqueObjectRepresentations().
|
static |
Definition at line 2738 of file ASTContext.cpp.
References clang::RecordDecl::field_empty(), clang::RecordDecl::fields(), clang::TypeDecl::getTypeForDecl(), clang::ASTContext::getTypeSizeInChars(), clang::ASTContext::hasUniqueObjectRepresentations(), and clang::TagDecl::isUnion().
Referenced by clang::ASTContext::hasUniqueObjectRepresentations().
|
static |
Definition at line 14043 of file ASTContext.cpp.
References clang::Qualifiers::addConsistentQualifiers(), clang::Type::getLocallyUnqualifiedSingleStepDesugaredType(), clang::QualType::split(), and clang::T.
Referenced by clang::ASTContext::getCommonSugaredType().