clang 17.0.0git
|
#include "clang/AST/ASTContext.h"
#include "CXXABI.h"
#include "Interp/Context.h"
#include "clang/AST/APValue.h"
#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/ASTTypeTraits.h"
#include "clang/AST/Attr.h"
#include "clang/AST/AttrIterator.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Comment.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclContextInternals.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprConcepts.h"
#include "clang/AST/ExternalASTSource.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/MangleNumberingContext.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/ParentMapContext.h"
#include "clang/AST/RawCommentList.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/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/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetCXXABI.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/XRayLists.h"
#include "llvm/ADT/APFixedPoint.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.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/AArch64SVEACLETypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/WebAssemblyReferenceTypes.def"
#include "clang/AST/BuiltinTypes.def"
Go to the source code of this file.
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 | 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 | 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, NumEls, ElBits, IsSigned, IsFP, IsBF) |
#define | SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId, NumEls) |
#define | SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId) |
#define | PPC_VECTOR_TYPE(Name, Id, Size) |
#define | RVV_VECTOR_TYPE(Name, Id, SingletonId, ElKind, ElBits, NF, IsSigned, IsFP) |
#define | RVV_PREDICATE_TYPE(Name, Id, SingletonId, ElKind) |
#define | WASM_TYPE(Name, Id, SingletonId) |
#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 | RVV_VECTOR_TYPE_INT(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned) |
#define | RVV_VECTOR_TYPE_FLOAT(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(Name, MangledName, Id, SingletonId, NumEls, ElBits, IsSigned, IsFP, IsBF) |
#define | SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId, NumEls) |
#define | SVE_OPAQUE_TYPE(Name, MangledName, Id, SingleTonId) |
#define | RVV_VECTOR_TYPE(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP) |
#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 | 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 | 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 SourceLocation | getDeclLocForCommentSearch (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 Expr * | canonicalizeImmediatelyDeclaredConstraint (const ASTContext &C, Expr *IDC, QualType ConstrainedType) |
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) |
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) |
static std::optional< int64_t > | getSubobjectSizeInBits (const FieldDecl *Field, const ASTContext &Context) |
static std::optional< int64_t > | getSubobjectSizeInBits (const CXXRecordDecl *RD, const ASTContext &Context) |
template<typename RangeT > | |
static std::optional< int64_t > | structSubobjectsHaveUniqueObjectRepresentations (const RangeT &Subobjects, int64_t CurOffsetInBits, const ASTContext &Context, const clang::ASTRecordLayout &Layout) |
static auto | getCanonicalTemplateArguments (const ASTContext &C, ArrayRef< TemplateArgument > Args, bool &AnyNonCanonArgs) |
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 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 * | 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 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) |
static TemplateName | getCommonTemplateNameChecked (ASTContext &Ctx, TemplateName X, TemplateName Y) |
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) |
#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 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 | |||
) | 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 | |||
) | 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 | |||
) | 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 | |||
) | 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 | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define NON_UNIQUE_TYPE | ( | Class | ) | UNEXPECTED_TYPE(Class, "non-unique") |
#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_VECTOR_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
ElKind, | |||
ElBits, | |||
NF, | |||
IsSigned, | |||
IsFP | |||
) |
#define RVV_VECTOR_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned, | |||
IsFP | |||
) |
#define RVV_VECTOR_TYPE_FLOAT | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF | |||
) |
#define RVV_VECTOR_TYPE_INT | ( | Name, | |
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
NF, | |||
IsSigned | |||
) |
#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_PREDICATE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls | |||
) |
#define SVE_PREDICATE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls | |||
) |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define SVE_VECTOR_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
IsSigned, | |||
IsFP, | |||
IsBF | |||
) |
#define SVE_VECTOR_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId, | |||
NumEls, | |||
ElBits, | |||
IsSigned, | |||
IsFP, | |||
IsBF | |||
) |
#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 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 103 of file ASTContext.cpp.
|
static |
Definition at line 541 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 394 of file ASTContext.cpp.
References 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 11694 of file ASTContext.cpp.
References 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 11725 of file ASTContext.cpp.
References 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 9525 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 9516 of file ASTContext.cpp.
References clang::VectorType::getElementType(), clang::VectorType::getNumElements(), and clang::Type::isCanonicalUnqualified().
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 5382 of file ASTContext.cpp.
References CmpProtocolNames(), and getCanonicalDecl().
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 11633 of file ASTContext.cpp.
References 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 11753 of file ASTContext.cpp.
References clang::TargetInfo::getCXXABI(), clang::ASTContext::GetGVALinkageForFunction(), clang::ASTContext::getInlineVariableDefinitionKind(), clang::DeclContext::getLexicalParent(), clang::Decl::getParentFunctionOrMethod(), clang::ASTContext::getTargetInfo(), clang::VarDecl::getTemplateSpecializationKind(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_StrongODR, clang::NamedDecl::isExternallyVisible(), clang::TargetCXXABI::isMicrosoft(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), clang::VarDecl::isStaticDataMember(), clang::VarDecl::isStaticLocal(), 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().
|
static |
Determine whether the first type is a subtype of the second.
Definition at line 10009 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 801 of file ASTContext.cpp.
References clang::C, clang::Expr::containsUnexpandedParameterPack(), clang::ImplicitConceptSpecializationDecl::Create(), clang::ConceptSpecializationExpr::Create(), clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::ConceptReference::getNamedConcept(), clang::ConceptReference::getTemplateArgsAsWritten(), clang::ConceptSpecializationExpr::getTemplateArguments(), clang::Expr::isInstantiationDependent(), clang::TemplateArgument::Pack, and clang::TemplateArgument::Type.
|
static |
Definition at line 7775 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 5377 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 9941 of file ASTContext.cpp.
Referenced by getIntersectionOfProtocols().
|
static |
Definition at line 9072 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::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 8884 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 8873 of file ASTContext.cpp.
References CreateCharPtrNamedVaListDecl().
Referenced by CreateVaListDecl().
|
static |
Definition at line 8862 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::CharTy, and clang::ASTContext::getPointerType().
Referenced by CreateCharPtrBuiltinVaListDecl(), and CreateMSVaListDecl().
|
static |
Definition at line 9167 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::ArrayType::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 8869 of file ASTContext.cpp.
References CreateCharPtrNamedVaListDecl().
Referenced by clang::ASTContext::getBuiltinMSVaListDecl().
|
static |
Definition at line 9063 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getSizeType(), clang::ASTContext::getTypeSize(), clang::ASTContext::IntTy, and clang::ArrayType::Normal.
Referenced by CreateVaListDecl().
|
static |
Definition at line 8946 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::ArrayType::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::UnsignedCharTy, clang::ASTContext::UnsignedShortTy, clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9113 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::ArrayType::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9218 of file ASTContext.cpp.
References clang::TargetInfo::AAPCSABIBuiltinVaList, clang::TargetInfo::AArch64ABIBuiltinVaList, clang::TargetInfo::CharPtrBuiltinVaList, CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), CreateCharPtrBuiltinVaListDecl(), CreateHexagonBuiltinVaListDecl(), CreatePNaClABIBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateVoidPtrBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), clang::TargetInfo::HexagonBuiltinVaList, clang::TargetInfo::PNaClABIBuiltinVaList, clang::TargetInfo::PowerABIBuiltinVaList, clang::TargetInfo::SystemZBuiltinVaList, clang::TargetInfo::VoidPtrBuiltinVaList, and clang::TargetInfo::X86_64ABIBuiltinVaList.
Referenced by clang::ASTContext::getBuiltinVaListDecl().
|
static |
Definition at line 8877 of file ASTContext.cpp.
References clang::ASTContext::buildImplicitTypedef(), clang::ASTContext::getPointerType(), and clang::ASTContext::VoidTy.
Referenced by CreateVaListDecl().
|
static |
Definition at line 9010 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::ArrayType::Normal, clang::TagDecl::startDefinition(), clang::ASTContext::UnsignedIntTy, clang::ASTContext::VaListTagDecl, and clang::ASTContext::VoidTy.
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 11222 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::VectorType::GenericVector, 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 8225 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 Offset.
|
static |
Definition at line 3111 of file ASTContext.cpp.
References clang::C.
Referenced by clang::ASTContext::getCanonicalTemplateArgument(), clang::ASTContext::getCanonicalTemplateSpecializationType(), and clang::ASTContext::getDependentTemplateSpecializationType().
|
static |
Definition at line 12551 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), clang::QualType::getQualifiers(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12454 of file ASTContext.cpp.
References X().
Referenced by getCommonNonSugarTypeNode().
Definition at line 12396 of file ASTContext.cpp.
References clang::declaresSameEntity(), and X().
Referenced by getCommonDecl(), getCommonDeclChecked(), getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 12411 of file ASTContext.cpp.
References getCommonDecl(), and X().
|
static |
Definition at line 12418 of file ASTContext.cpp.
References getCommonDecl(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12546 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), and X().
Referenced by getCommonNonSugarTypeNode().
Definition at line 12578 of file ASTContext.cpp.
References clang::ArrayType::getIndexTypeCVRQualifiers(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12537 of file ASTContext.cpp.
References clang::ASTContext::getCanonicalNestedNameSpecifier(), and X().
Referenced by getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 12672 of file ASTContext.cpp.
References Enum, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::FunctionProtoType::ExtProtoInfo::ExtInfo, clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, 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 12564 of file ASTContext.cpp.
References clang::ASTContext::getCommonSugaredType(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12568 of file ASTContext.cpp.
References clang::ASTContext::hasSameExpr(), and X().
Referenced by getCommonNonSugarTypeNode().
Definition at line 12573 of file ASTContext.cpp.
References clang::ArrayType::getSizeModifier(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12975 of file ASTContext.cpp.
References CANONICAL_TYPE, Complex, 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::getDecayedType(), clang::ASTContext::getElaboratedType(), 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::hasSameType(), clang::Pipe, Pointer, clang::Qualified, clang::Unqualified, and X().
Referenced by clang::ASTContext::getCommonSugaredType().
|
static |
Definition at line 12459 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 12520 of file ASTContext.cpp.
References getCommonTemplateArguments().
|
static |
Definition at line 12505 of file ASTContext.cpp.
References getCommonTemplateArgument().
Referenced by getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), and getCommonTemplateArguments().
|
static |
Definition at line 12423 of file ASTContext.cpp.
References clang::TemplateName::getAsVoidPointer(), clang::ASTContext::getCanonicalTemplateName(), and X().
Referenced by getCommonSugarTypeNode(), getCommonTemplateArgument(), and getCommonTemplateNameChecked().
|
static |
Definition at line 12438 of file ASTContext.cpp.
References clang::TemplateName::getAsVoidPointer(), getCommonTemplateName(), and X().
Referenced by getCommonNonSugarTypeNode().
|
static |
Definition at line 12531 of file ASTContext.cpp.
References clang::ETK_None, and X().
Referenced by getCommonNonSugarTypeNode(), and getCommonSugarTypeNode().
|
static |
Definition at line 12444 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 1920 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::ConstantArrayType::getSize(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getTypeInfoInChars(), clang::TargetCXXABI::isMicrosoft(), and clang::TypeInfoChars::Width.
Referenced by clang::ASTContext::getTypeInfoInChars().
|
static |
D
. Definition at line 116 of file ASTContext.cpp.
References clang::Decl::getBeginLoc(), clang::SourceManager::getBufferOrNone(), clang::SourceManager::getExpansionLoc(), clang::SourceManager::getFileID(), clang::SourceManager::getFileOffset(), 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 |
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 7137 of file ASTContext.cpp.
References BFloat16Rank, clang::Type::castAs(), DoubleRank, Float128Rank, Float16Rank, FloatRank, clang::Type::getAs(), getFloatingRank(), clang::BuiltinType::getKind(), HalfRank, Ibm128Rank, and LongDoubleRank.
Referenced by getFloatingRank(), and clang::ASTContext::getFloatingTypeOrder().
Definition at line 7348 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 9952 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 8104 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 |
Definition at line 2786 of file ASTContext.cpp.
References clang::ASTRecordLayout::getBaseClassOffset(), and clang::ASTContext::toBits().
|
static |
Definition at line 2780 of file ASTContext.cpp.
References clang::ASTContext::getFieldOffset().
Referenced by structSubobjectsHaveUniqueObjectRepresentations().
|
static |
Definition at line 2831 of file ASTContext.cpp.
References structHasUniqueObjectRepresentations().
|
static |
Definition at line 2797 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 9561 of file ASTContext.cpp.
References clang::ASTContext::getCharWidth(), clang::BuiltinType::getKind(), clang::ASTContext::getLangOpts(), and clang::Type::isVLSTBuiltinType().
Referenced by clang::ASTContext::areCompatibleSveTypes(), and clang::ASTContext::areLaxCompatibleSveTypes().
|
static |
Definition at line 5055 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 6565 of file ASTContext.cpp.
References clang::Decl::getASTContext(), and clang::Decl::specific_attrs().
Referenced by clang::ASTContext::isSameEntity().
|
static |
Definition at line 8270 of file ASTContext.cpp.
References clang::Type::getAs(), clang::Type::getAsCXXRecordDecl(), clang::Type::getBaseElementTypeUnsafe(), and hasTemplateSpecializationInEncodedString().
Referenced by hasTemplateSpecializationInEncodedString().
|
static |
Definition at line 1008 of file ASTContext.cpp.
References clang::LangOptions::ASMM_Off, clang::LangOptions::ASMM_On, clang::LangOptions::ASMM_Target, and clang::TargetInfo::useAddressSpaceMapMangling().
Referenced by clang::ASTContext::InitBuiltinTypes().
|
static |
Definition at line 4471 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 4411 of file ASTContext.cpp.
References clang::QualType::getObjCLifetime(), clang::QualType::isCanonical(), clang::Qualifiers::OCL_ExplicitNone, and clang::Qualifiers::OCL_None.
Referenced by clang::ASTContext::getFunctionNoProtoType().
|
static |
Definition at line 6524 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 7722 of file ASTContext.cpp.
|
static |
Given that we have an enum type and a non-enum type, try to merge them.
Definition at line 10533 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 12588 of file ASTContext.cpp.
References clang::ASTContext::getCanonicalType(), clang::ASTContext::getCommonSugaredType(), and X().
Referenced by clang::ASTContext::mergeExceptionSpecs().
|
static |
Definition at line 4718 of file ASTContext.cpp.
Referenced by clang::ASTContext::getInjectedClassNameType().
|
static |
Definition at line 8213 of file ASTContext.cpp.
References clang::C, Enum, clang::EnumType::getDecl(), and getObjCEncodingForPrimitiveType().
Referenced by EncodeBitField().
|
static |
Definition at line 10033 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 5396 of file ASTContext.cpp.
References CmpProtocolNames(), and P.
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 2855 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 2836 of file ASTContext.cpp.
References getSubobjectOffset(), getSubobjectSizeInBits(), and Offset.
Referenced by structHasUniqueObjectRepresentations().
|
static |
Definition at line 2765 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 13179 of file ASTContext.cpp.
References clang::Type::getLocallyUnqualifiedSingleStepDesugaredType(), clang::SplitQualType::Quals, clang::QualType::split(), and clang::SplitQualType::Ty.
Referenced by clang::ASTContext::getCommonSugaredType().