clang
8.0.0
|
#include "clang/AST/ASTContext.h"
#include "CXXABI.h"
#include "clang/AST/APValue.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.def"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.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 | 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 | 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 | 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 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 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 | getObjCEncodingForPrimitiveKind (const ASTContext *C, BuiltinType::Kind kind) |
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 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 111 of file ASTContext.cpp.
|
static |
Definition at line 453 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 315 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::getCommentForDecl(), and clang::ASTContext::getRawCommentForAnyRedecl().
|
static |
Definition at line 9637 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 9660 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 7807 of file ASTContext.cpp.
References clang::VectorType::getElementType(), clang::VectorType::getNumElements(), and clang::Type::isCanonicalUnqualified().
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 4396 of file ASTContext.cpp.
References CmpProtocolNames(), and getCanonicalDecl().
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 9575 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetGVALinkageForFunction().
|
static |
Definition at line 9688 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetGVALinkageForVariable().
|
static |
Determine whether the first type is a subtype of the second.
Definition at line 8172 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 6177 of file ASTContext.cpp.
References clang::CharUnits::getQuantity().
|
static |
CmpProtocolNames - Comparison predicate for sorting protocols alphabetically.
Definition at line 4391 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 8100 of file ASTContext.cpp.
|
static |
Definition at line 7429 of file ASTContext.cpp.
|
static |
Definition at line 7240 of file ASTContext.cpp.
|
static |
Definition at line 7229 of file ASTContext.cpp.
|
static |
Definition at line 7218 of file ASTContext.cpp.
|
static |
Template specializations to abstract away from pointers and TypeLocs.
Definition at line 10164 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
ast_type_traits::DynTypedNode createDynTypedNode | ( | const TypeLoc & | Node | ) |
Definition at line 10168 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
ast_type_traits::DynTypedNode createDynTypedNode | ( | const NestedNameSpecifierLoc & | Node | ) |
Definition at line 10173 of file ASTContext.cpp.
References clang::ast_type_traits::DynTypedNode::create().
|
static |
Definition at line 7225 of file ASTContext.cpp.
Referenced by clang::ASTContext::getBuiltinMSVaListDecl().
|
static |
Definition at line 7420 of file ASTContext.cpp.
|
static |
Definition at line 7303 of file ASTContext.cpp.
|
static |
Definition at line 7470 of file ASTContext.cpp.
|
static |
Definition at line 7524 of file ASTContext.cpp.
Referenced by clang::ASTContext::getBuiltinVaListDecl().
|
static |
Definition at line 7233 of file ASTContext.cpp.
|
static |
Definition at line 7367 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 9237 of file ASTContext.cpp.
Referenced by clang::ASTContext::GetBuiltinType().
|
static |
Definition at line 6598 of file ASTContext.cpp.
|
static |
Definition at line 749 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 1674 of file ASTContext.cpp.
Referenced by clang::ASTContext::getTypeInfoInChars().
|
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 5551 of file ASTContext.cpp.
References 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 5766 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 8111 of file ASTContext.cpp.
Referenced by clang::ASTContext::areCommonBaseCompatible().
|
static |
Definition at line 6498 of file ASTContext.cpp.
References clang::TargetInfo::getLongWidth(), and clang::ASTContext::getTargetInfo().
Referenced by ObjCEncodingForEnumType().
|
static |
Definition at line 4076 of file ASTContext.cpp.
Referenced by clang::ASTContext::getTemplateSpecializationType().
|
static |
Definition at line 771 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 3615 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_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 3562 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 2326 of file ASTContext.cpp.
References clang::Type::castAs(), and clang::RecordDecl::field_empty().
Definition at line 6124 of file ASTContext.cpp.
|
static |
Given that we have an enum type and a non-enum type, try to merge them.
Definition at line 8676 of file ASTContext.cpp.
Referenced by clang::ASTContext::mergeTypes().
|
static |
Definition at line 3826 of file ASTContext.cpp.
Referenced by clang::ASTContext::getInjectedClassNameType().
|
static |
Definition at line 6586 of file ASTContext.cpp.
References clang::Type::castAs(), clang::EnumType::getDecl(), clang::EnumDecl::getIntegerType(), getObjCEncodingForPrimitiveKind(), and clang::EnumDecl::isFixed().
|
static |
Definition at line 8196 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 4410 of file ASTContext.cpp.
References CmpProtocolNames(), and P.
Referenced by clang::ASTContext::getObjCObjectType().
|
static |
Definition at line 2339 of file ASTContext.cpp.
Referenced by clang::ASTContext::hasUniqueObjectRepresentations().
|
static |
Definition at line 2311 of file ASTContext.cpp.
Referenced by clang::ASTContext::hasUniqueObjectRepresentations().