clang
10.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/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/RawCommentList.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/RecursiveASTVisitor.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/FixedPoint.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/SanitizerBlacklist.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/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/None.h"
#include "llvm/ADT/Optional.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/ADT/Triple.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <map>
#include <memory>
#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/AST/BuiltinTypes.def"
Go to the source code of this file.
Classes | |
class | clang::ASTContext::ParentMap |
class | clang::ASTContext::ParentMap::ASTVisitor |
A RecursiveASTVisitor that builds a map from nodes to their parents as defined by the RecursiveASTVisitor . More... | |
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 | 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, Id, SingletonId, ElKind, ElBits, IsSigned, IsFP) |
#define | SVE_PREDICATE_TYPE(Name, Id, SingletonId, ElKind) |
#define | TYPE(Class, Base) |
#define | ABSTRACT_TYPE(Class, Base) |
#define | NON_CANONICAL_TYPE(Class, Base) case Type::Class: |
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) |
#define | SVE_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 | 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: |
Enumerations | |
enum | FloatingRank { Float16Rank, HalfRank, FloatRank, DoubleRank, LongDoubleRank, Float128Rank } |
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. More... | |
static void | addRedeclaredMethods (const ObjCMethodDecl *ObjCMethod, SmallVectorImpl< const NamedDecl *> &Redeclared) |
static Expr * | canonicalizeImmediatelyDeclaredConstraint (const ASTContext &C, Expr *IDC, QualType ConstrainedType) |
static const LangASMap * | getAddressSpaceMap (const TargetInfo &T, const LangOptions &LOpts) |
static bool | isAddrSpaceMapManglingEnabled (const TargetInfo &TI, const LangOptions &LangOpts) |
static std::pair< CharUnits, CharUnits > | 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. More... | |
static bool | unionHasUniqueObjectRepresentations (const ASTContext &Context, const RecordDecl *RD) |
static bool | isStructEmpty (QualType Ty) |
static llvm::Optional< int64_t > | structHasUniqueObjectRepresentations (const ASTContext &Context, const RecordDecl *RD) |
static bool | isCanonicalResultType (QualType T) |
Determine whether T is canonical as the result type of a function. More... | |
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. More... | |
static bool | areSortedAndUniqued (ArrayRef< ObjCProtocolDecl *> Protocols) |
static void | SortAndUniqueProtocols (SmallVectorImpl< ObjCProtocolDecl *> &Protocols) |
static FloatingRank | getFloatingRank (QualType T) |
getFloatingRank - Return a relative rank for floating point types. More... | |
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 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 * | 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. More... | |
static int | compareObjCProtocolsByName (ObjCProtocolDecl *const *lhs, ObjCProtocolDecl *const *rhs) |
Comparison routine for Objective-C protocols to be used with llvm::array_pod_sort. More... | |
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. More... | |
static bool | canAssignObjCObjectTypes (ASTContext &ctx, QualType lhs, QualType rhs) |
Determine whether the first type is a subtype of the second. More... | |
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. More... | |
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. More... | |
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. More... | |
static GVALinkage | basicGVALinkageForVariable (const ASTContext &Context, const VarDecl *VD) |
template<typename T > | |
static ast_type_traits::DynTypedNode | createDynTypedNode (const T &Node) |
Template specializations to abstract away from pointers and TypeLocs. More... | |
template<> | |
ast_type_traits::DynTypedNode | createDynTypedNode (const TypeLoc &Node) |
template<> | |
ast_type_traits::DynTypedNode | createDynTypedNode (const NestedNameSpecifierLoc &Node) |
#define ABSTRACT_TYPE | ( | Name, | |
Parent | |||
) |
#define ABSTRACT_TYPE | ( | Name, | |
Parent | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define ABSTRACT_TYPE | ( | KIND, | |
BASE | |||
) |
#define ABSTRACT_TYPE | ( | Class, | |
Base | |||
) |
#define BUILTIN_TYPE | ( | KIND, | |
ID | |||
) |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define DEPENDENT_TYPE | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#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 | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define NON_CANONICAL_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | Class, | |
Base | |||
) |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | KIND, | |
BASE | |||
) | case Type::KIND: |
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | Class, | |
Base | |||
) | case Type::Class: |
#define PLACEHOLDER_TYPE | ( | KIND, | |
ID | |||
) | case BuiltinType::KIND: |
#define SVE_PREDICATE_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
ElKind | |||
) |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | InitBuiltinType(SingletonId, BuiltinType::Id); |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) | case BuiltinType::Id: |
#define SVE_VECTOR_TYPE | ( | Name, | |
Id, | |||
SingletonId, | |||
ElKind, | |||
ElBits, | |||
IsSigned, | |||
IsFP | |||
) |
#define TYPE | ( | Name, | |
Parent | |||
) | 0, |
#define TYPE | ( | Name, | |
Parent | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
#define TYPE | ( | KIND, | |
BASE | |||
) |
#define TYPE | ( | Class, | |
Base | |||
) |
enum FloatingRank |
Enumerator | |
---|---|
Float16Rank | |
HalfRank | |
FloatRank | |
DoubleRank | |
LongDoubleRank | |
Float128Rank |
Definition at line 99 of file ASTContext.cpp.
|
static |
Definition at line 474 of file ASTContext.cpp.
References clang::Decl::getDeclContext(), clang::ObjCMethodDecl::getSelector(), clang::ObjCMethodDecl::isInstanceMethod(), and clang::ObjCInterfaceDecl::known_extensions().
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 327 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 9982 of file ASTContext.cpp.
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 10005 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 |
areCompatVectorTypes - Return true if the two specified vector types are compatible.
Definition at line 8098 of file ASTContext.cpp.
References clang::VectorType::getElementType(), clang::VectorType::getNumElements(), and clang::Type::isCanonicalUnqualified().
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 4681 of file ASTContext.cpp.
References CmpProtocolNames(), and getCanonicalDecl().
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 9920 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetGVALinkageForFunction().
|
static |
Definition at line 10033 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetGVALinkageForVariable().
|
static |
Determine whether the first type is a subtype of the second.
Definition at line 8481 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 720 of file ASTContext.cpp.
References clang::TemplateArgumentListInfo::addArgument(), clang::TemplateParameterList::begin(), clang::ConceptSpecializationExpr::Create(), clang::TemplateParameterList::Create(), clang::TemplateTypeParmDecl::Create(), clang::NonTypeTemplateParmDecl::Create(), clang::TemplateTemplateParmDecl::Create(), clang::CreateItaniumCXXABI(), clang::CreateMicrosoftCXXABI(), clang::TemplateParameterList::end(), clang::TargetCXXABI::Fuchsia, clang::TargetCXXABI::GenericAArch64, clang::TargetCXXABI::GenericARM, clang::TargetCXXABI::GenericItanium, clang::TargetCXXABI::GenericMIPS, clang::ASTContext::getCanonicalType(), clang::Type::getContainedAutoType(), clang::TargetInfo::getCXXABI(), clang::TemplateParmPosition::getDepth(), clang::TemplateParmPosition::getIndex(), clang::TargetCXXABI::getKind(), clang::TemplateParmPosition::getPosition(), clang::TemplateParameterList::getRequiresClause(), clang::TemplateDecl::getTemplateParameters(), clang::ASTContext::getTranslationUnitDecl(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::TypeDecl::getTypeForDecl(), clang::TargetCXXABI::iOS, clang::TargetCXXABI::iOS64, clang::TemplateTemplateParmDecl::isExpandedParameterPack(), clang::TemplateTemplateParmDecl::isParameterPack(), clang::TargetCXXABI::Microsoft, P, clang::TemplateArgument::Pack, clang::NonTypeTemplateParmDecl::setPlaceholderTypeConstraint(), clang::TemplateTypeParmDecl::setTypeConstraint(), clang::TemplateParameterList::size(), clang::TemplateArgument::Type, clang::TargetCXXABI::WatchOS, and clang::TargetCXXABI::WebAssembly.
|
static |
Definition at line 6479 of file ASTContext.cpp.
References clang::CharUnits::getQuantity().
|
static |
CmpProtocolNames - Comparison predicate for sorting protocols alphabetically.
Definition at line 4676 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 8409 of file ASTContext.cpp.
|
static |
Definition at line 7713 of file ASTContext.cpp.
|
static |
Definition at line 7524 of file ASTContext.cpp.
|
static |
Definition at line 7513 of file ASTContext.cpp.
|
static |
Definition at line 7502 of file ASTContext.cpp.
|
static |
Template specializations to abstract away from pointers and TypeLocs.
Definition at line 10536 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
ast_type_traits::DynTypedNode createDynTypedNode | ( | const TypeLoc & | Node | ) |
Definition at line 10540 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
ast_type_traits::DynTypedNode createDynTypedNode | ( | const NestedNameSpecifierLoc & | Node | ) |
Definition at line 10545 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
|
static |
Definition at line 7509 of file ASTContext.cpp.
Referenced by clang::ASTContext::getBuiltinMSVaListDecl().
|
static |
Definition at line 7704 of file ASTContext.cpp.
|
static |
Definition at line 7587 of file ASTContext.cpp.
|
static |
Definition at line 7754 of file ASTContext.cpp.
|
static |
Definition at line 7808 of file ASTContext.cpp.
Referenced by clang::ASTContext::getBuiltinVaListDecl().
|
static |
Definition at line 7517 of file ASTContext.cpp.
|
static |
Definition at line 7651 of file ASTContext.cpp.
|
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 9544 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetBuiltinType().
|
static |
Definition at line 6920 of file ASTContext.cpp.
|
static |
Definition at line 916 of file ASTContext.cpp.
References clang::TargetInfo::getAddressSpaceMap().
Referenced by clang::ASTContext::InitBuiltinTypes().
|
static |
getConstantArrayInfoInChars - Performing the computation in CharUnits instead of in bits prevents overflowing the uint64_t for some large arrays.
Definition at line 1840 of file ASTContext.cpp.
Referenced by clang::ASTContext::getTypeInfoInChars().
|
static |
D
. Definition at line 131 of file ASTContext.cpp.
References clang::Decl::getBeginLoc(), clang::SourceManager::getExpansionLoc(), clang::Decl::getLocation(), clang::Decl::isImplicit(), clang::SourceManager::isMacroArgExpansion(), 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 5850 of file ASTContext.cpp.
References clang::Type::castAs(), DoubleRank, Float128Rank, Float16Rank, FloatRank, clang::Type::getAs(), clang::BuiltinType::getKind(), HalfRank, and LongDoubleRank.
Referenced by clang::ASTContext::getFloatingTypeOfSizeWithinDomain(), and clang::ASTContext::getFloatingTypeOrder().
Definition at line 6070 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 8420 of file ASTContext.cpp.
Referenced by clang::ASTContext::areCommonBaseCompatible().
|
static |
Definition at line 6808 of file ASTContext.cpp.
References clang::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), clang::ASTContext::getDiagnostics(), clang::BuiltinType::getKind(), clang::TargetInfo::getLongWidth(), clang::BuiltinType::getName(), clang::ASTContext::getPrintingPolicy(), clang::ASTContext::getTargetInfo(), and clang::DiagnosticsEngine::Report().
Referenced by ObjCEncodingForEnumType().
|
static |
Definition at line 4342 of file ASTContext.cpp.
Referenced by clang::ASTContext::getTemplateSpecializationType().
|
static |
Definition at line 941 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 3877 of file ASTContext.cpp.
References clang::ASTContext::Allocate(), clang::EST_BasicNoexcept, clang::EST_DependentNoexcept, clang::EST_Dynamic, clang::EST_DynamicNone, clang::EST_MSAny, clang::EST_NoexceptFalse, clang::EST_NoexceptTrue, clang::EST_None, clang::EST_NoThrow, clang::EST_Unevaluated, clang::EST_Uninstantiated, clang::EST_Unparsed, clang::FunctionProtoType::ExceptionSpecInfo::Exceptions, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::Type::getAs(), clang::ASTContext::getCanonicalFunctionResultType(), clang::ASTContext::getCanonicalParamType(), clang::ASTContext::getCanonicalType(), clang::ASTContext::getLangOpts(), clang::FunctionProtoType::ExtProtoInfo::HasTrailingReturn, clang::QualType::isCanonical(), isCanonicalResultType(), clang::isComputedNoexcept(), clang::FunctionProtoType::Profile(), clang::FunctionProtoType::ExceptionSpecInfo::Type, and clang::TypeAlignment.
Determine whether T
is canonical as the result type of a function.
Definition at line 3824 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(), and isCanonicalExceptionSpecification().
Definition at line 2539 of file ASTContext.cpp.
References clang::Type::castAs(), and clang::RecordDecl::field_empty().
Definition at line 6426 of file ASTContext.cpp.
|
static |
Given that we have an enum type and a non-enum type, try to merge them.
Definition at line 8985 of file ASTContext.cpp.
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 4092 of file ASTContext.cpp.
Referenced by clang::ASTContext::getInjectedClassNameType().
|
static |
Definition at line 6908 of file ASTContext.cpp.
References clang::Type::castAs(), clang::EnumType::getDecl(), clang::EnumDecl::getIntegerType(), getObjCEncodingForPrimitiveType(), and clang::EnumDecl::isFixed().
|
static |
Definition at line 8505 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 4695 of file ASTContext.cpp.
References CmpProtocolNames(), and P.
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 2552 of file ASTContext.cpp.
Referenced by clang::ASTContext::hasUniqueObjectRepresentations().
|
static |
Definition at line 2524 of file ASTContext.cpp.
Referenced by clang::ASTContext::hasUniqueObjectRepresentations().