clang  3.7.0
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
clang::Type Class Reference

#include <Type.h>

Inheritance diagram for clang::Type:
[legend]
Collaboration diagram for clang::Type:
[legend]

Classes

class  ArrayTypeBitfields
 
class  AttributedTypeBitfields
 
class  AutoTypeBitfields
 
class  BuiltinTypeBitfields
 
class  FunctionTypeBitfields
 
class  ObjCObjectTypeBitfields
 
class  ReferenceTypeBitfields
 
class  TypeWithKeywordBitfields
 
class  VectorTypeBitfields
 

Public Types

enum  TypeClass { TagFirst = Record, TagLast = Enum }
 
enum  ScalarTypeKind {
  STK_CPointer, STK_BlockPointer, STK_ObjCObjectPointer, STK_MemberPointer,
  STK_Bool, STK_Integral, STK_Floating, STK_IntegralComplex,
  STK_FloatingComplex
}
 

Public Member Functions

TypeClass getTypeClass () const
 
bool isFromAST () const
 Whether this type comes from an AST file. More...
 
bool containsUnexpandedParameterPack () const
 Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates. More...
 
bool isCanonicalUnqualified () const
 
QualType getLocallyUnqualifiedSingleStepDesugaredType () const
 
bool isIncompleteType (NamedDecl **Def=nullptr) const
 Def If non-NULL, and the type refers to some kind of declaration that can be completed (such as a C struct, C++ class, or Objective-C class), will be set to the declaration. More...
 
bool isIncompleteOrObjectType () const
 
bool isObjectType () const
 Determine whether this type is an object type. More...
 
bool isLiteralType (const ASTContext &Ctx) const
 
bool isStandardLayoutType () const
 Test if this type is a standard-layout type. (C++0x [basic.type]p9) More...
 
bool isBuiltinType () const
 isBuiltinType - returns true if the type is a builtin type. More...
 
bool isSpecificBuiltinType (unsigned K) const
 isSpecificBuiltinType - Test for a particular builtin type. More...
 
bool isPlaceholderType () const
 
const BuiltinTypegetAsPlaceholderType () const
 
bool isSpecificPlaceholderType (unsigned K) const
 isSpecificPlaceholderType - Test for a specific placeholder type. More...
 
bool isNonOverloadPlaceholderType () const
 
bool isIntegerType () const
 
bool isEnumeralType () const
 
bool isBooleanType () const
 
bool isCharType () const
 
bool isWideCharType () const
 
bool isChar16Type () const
 
bool isChar32Type () const
 
bool isAnyCharacterType () const
 Determine whether this type is any of the built-in character types. More...
 
bool isIntegralType (ASTContext &Ctx) const
 Determine whether this type is an integral type. More...
 
bool isIntegralOrEnumerationType () const
 Determine whether this type is an integral or enumeration type. More...
 
bool isIntegralOrUnscopedEnumerationType () const
 Determine whether this type is an integral or unscoped enumeration type. More...
 
bool isRealFloatingType () const
 Floating point categories. More...
 
bool isComplexType () const
 
bool isAnyComplexType () const
 
bool isFloatingType () const
 
bool isHalfType () const
 
bool isRealType () const
 
bool isArithmeticType () const
 
bool isVoidType () const
 
bool isScalarType () const
 
bool isAggregateType () const
 Determines whether the type is a C++ aggregate type or C aggregate or union type. More...
 
bool isFundamentalType () const
 Tests whether the type is categorized as a fundamental type. More...
 
bool isCompoundType () const
 Tests whether the type is categorized as a compound type. More...
 
bool isFunctionType () const
 
bool isFunctionNoProtoType () const
 
bool isFunctionProtoType () const
 
bool isPointerType () const
 
bool isAnyPointerType () const
 
bool isBlockPointerType () const
 
bool isVoidPointerType () const
 
bool isReferenceType () const
 
bool isLValueReferenceType () const
 
bool isRValueReferenceType () const
 
bool isFunctionPointerType () const
 
bool isMemberPointerType () const
 
bool isMemberFunctionPointerType () const
 
bool isMemberDataPointerType () const
 
bool isArrayType () const
 
bool isConstantArrayType () const
 
bool isIncompleteArrayType () const
 
bool isVariableArrayType () const
 
bool isDependentSizedArrayType () const
 
bool isRecordType () const
 
bool isClassType () const
 
bool isStructureType () const
 
bool isObjCBoxableRecordType () const
 
bool isInterfaceType () const
 
bool isStructureOrClassType () const
 
bool isUnionType () const
 
bool isComplexIntegerType () const
 
bool isVectorType () const
 
bool isExtVectorType () const
 
bool isObjCObjectPointerType () const
 
bool isObjCRetainableType () const
 
bool isObjCLifetimeType () const
 
bool isObjCIndirectLifetimeType () const
 
bool isObjCNSObjectType () const
 
bool isObjCIndependentClassType () const
 
bool isObjCObjectType () const
 
bool isObjCQualifiedInterfaceType () const
 
bool isObjCQualifiedIdType () const
 
bool isObjCQualifiedClassType () const
 
bool isObjCObjectOrInterfaceType () const
 
bool isObjCIdType () const
 
bool isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const
 
bool isObjCClassType () const
 
bool isObjCClassOrClassKindOfType () const
 
bool isBlockCompatibleObjCPointerType (ASTContext &ctx) const
 
bool isObjCSelType () const
 
bool isObjCBuiltinType () const
 
bool isObjCARCBridgableType () const
 Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an. More...
 
bool isCARCBridgableType () const
 Determine whether the given type T is a "bridgeable" C type. More...
 
bool isTemplateTypeParmType () const
 
bool isNullPtrType () const
 
bool isAtomicType () const
 
bool isImage1dT () const
 
bool isImage1dArrayT () const
 
bool isImage1dBufferT () const
 
bool isImage2dT () const
 
bool isImage2dArrayT () const
 
bool isImage3dT () const
 
bool isImageType () const
 
bool isSamplerT () const
 
bool isEventT () const
 
bool isOpenCLSpecificType () const
 
bool isObjCARCImplicitlyUnretainedType () const
 
Qualifiers::ObjCLifetime getObjCARCImplicitLifetime () const
 Return the implicit lifetime for this type, which must not be dependent. More...
 
ScalarTypeKind getScalarTypeKind () const
 getScalarTypeKind - Given that this is a scalar type, classify it. More...
 
bool isDependentType () const
 
bool isInstantiationDependentType () const
 Determine whether this type is an instantiation-dependent type, meaning that the type involves a template parameter (even if the definition does not actually depend on the type substituted for that template parameter). More...
 
bool isUndeducedType () const
 Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type which has not yet been deduced. More...
 
bool isVariablyModifiedType () const
 Whether this type is a variably-modified type (C99 6.7.5). More...
 
bool hasSizedVLAType () const
 Whether this type involves a variable-length array type with a definite size. More...
 
bool hasUnnamedOrLocalType () const
 Whether this type is or contains a local or unnamed type. More...
 
bool isOverloadableType () const
 Determines whether this is a type for which one can define an overloaded operator. More...
 
bool isElaboratedTypeSpecifier () const
 Determine wither this type is a C++ elaborated-type-specifier. More...
 
bool canDecayToPointerType () const
 Determines whether this type can decay to a pointer type. More...
 
bool hasPointerRepresentation () const
 
bool hasObjCPointerRepresentation () const
 
bool hasIntegerRepresentation () const
 Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector. More...
 
bool hasSignedIntegerRepresentation () const
 Determine whether this type has an signed integer representation of some sort, e.g., it is an signed integer type or a vector. More...
 
bool hasUnsignedIntegerRepresentation () const
 Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector. More...
 
bool hasFloatingRepresentation () const
 Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof. More...
 
const RecordTypegetAsStructureType () const
 
const RecordTypegetAsUnionType () const
 NOTE: getAs*ArrayType are methods on ASTContext. More...
 
const ComplexTypegetAsComplexIntegerType () const
 
const ObjCObjectTypegetAsObjCInterfaceType () const
 
const ObjCObjectPointerTypegetAsObjCInterfacePointerType () const
 
const ObjCObjectPointerTypegetAsObjCQualifiedIdType () const
 
const ObjCObjectPointerTypegetAsObjCQualifiedClassType () const
 
const ObjCObjectTypegetAsObjCQualifiedInterfaceType () const
 
CXXRecordDeclgetAsCXXRecordDecl () const
 Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization. More...
 
TagDeclgetAsTagDecl () const
 Retrieves the TagDecl that this type refers to, either because the type is a TagType or because it is the injected-class-name type of a class template or class template partial specialization. More...
 
const CXXRecordDeclgetPointeeCXXRecordDecl () const
 
AutoTypegetContainedAutoType () const
 Get the AutoType whose type will be deduced for a variable with an initializer of this type. This looks through declarators like pointer types, but not through decltype or typedefs. More...
 
template<typename T >
const T * getAs () const
 
const ArrayTypegetAsArrayTypeUnsafe () const
 
template<typename T >
const T * castAs () const
 
const ArrayTypecastAsArrayTypeUnsafe () const
 
const TypegetBaseElementTypeUnsafe () const
 
const TypegetArrayElementTypeNoTypeQual () const
 
QualType getPointeeType () const
 
const TypegetUnqualifiedDesugaredType () const
 
bool isPromotableIntegerType () const
 More type predicates useful for type checking/promotion. More...
 
bool isSignedIntegerType () const
 
bool isUnsignedIntegerType () const
 
bool isSignedIntegerOrEnumerationType () const
 
bool isUnsignedIntegerOrEnumerationType () const
 
bool isConstantSizeType () const
 
bool isSpecifierType () const
 
Linkage getLinkage () const
 Determine the linkage of this type. More...
 
Visibility getVisibility () const
 Determine the visibility of this type. More...
 
bool isVisibilityExplicit () const
 Return true if the visibility was explicitly set is the code. More...
 
LinkageInfo getLinkageAndVisibility () const
 Determine the linkage and visibility of this type. More...
 
bool isLinkageValid () const
 True if the computed linkage is valid. Used for consistency checking. Should always return true. More...
 
Optional< NullabilityKindgetNullability (const ASTContext &context) const
 
bool canHaveNullability () const
 
Optional< ArrayRef< QualType > > getObjCSubstitutions (const DeclContext *dc) const
 
bool acceptsObjCTypeParams () const
 
const char * getTypeClassName () const
 
QualType getCanonicalTypeInternal () const
 
CanQualType getCanonicalTypeUnqualified () const
 
void dump () const
 
template<>
const TypedefTypegetAs () const
 This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type. More...
 
template<>
const TemplateSpecializationTypegetAs () const
 This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type. More...
 
template<>
const AttributedTypegetAs () const
 This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type. More...
 

Protected Member Functions

Typethis_ ()
 
 Type (TypeClass tc, QualType canon, bool Dependent, bool InstantiationDependent, bool VariablyModified, bool ContainsUnexpandedParameterPack)
 
void setDependent (bool D=true)
 
void setInstantiationDependent (bool D=true)
 
void setVariablyModified (bool VM=true)
 
void setContainsUnexpandedParameterPack (bool PP=true)
 

Protected Attributes

union {
   TypeBitfields   TypeBits
 
   ArrayTypeBitfields   ArrayTypeBits
 
   AttributedTypeBitfields   AttributedTypeBits
 
   AutoTypeBitfields   AutoTypeBits
 
   BuiltinTypeBitfields   BuiltinTypeBits
 
   FunctionTypeBitfields   FunctionTypeBits
 
   ObjCObjectTypeBitfields   ObjCObjectTypeBits
 
   ReferenceTypeBitfields   ReferenceTypeBits
 
   TypeWithKeywordBitfields   TypeWithKeywordBits
 
   VectorTypeBitfields   VectorTypeBits
 
}; 
 

Friends

template<class T >
class TypePropertyCache
 
class ASTContext
 
class ASTReader
 
class ASTWriter
 

Detailed Description

Type - This is the base class of the type hierarchy. A central concept with types is that each type always has a canonical type. A canonical type is the type with any typedef names stripped out of it or the types it references. For example, consider:

typedef int foo; typedef foo* bar; 'int *' 'foo *' 'bar'

There will be a Type object created for 'int'. Since int is canonical, its canonicaltype pointer points to itself. There is also a Type for 'foo' (a TypedefType). Its CanonicalType pointer points to the 'int' Type. Next there is a PointerType that represents 'int*', which, like 'int', is canonical. Finally, there is a PointerType type for 'foo*' whose canonical type is 'int*', and there is a TypedefType for 'bar', whose canonical type is also 'int*'.

Non-canonical types are useful for emitting diagnostics, without losing information about typedefs being used. Canonical types are useful for type comparisons (they allow by-pointer equality tests) and useful for reasoning about whether something has a particular form (e.g. is a function type), because they implicitly, recursively, strip all typedefs out of a type.

Types, once created, are immutable.

Definition at line 1234 of file Type.h.

Member Enumeration Documentation

Enumerator
STK_CPointer 
STK_BlockPointer 
STK_ObjCObjectPointer 
STK_MemberPointer 
STK_Bool 
STK_Integral 
STK_Floating 
STK_IntegralComplex 
STK_FloatingComplex 

Definition at line 1710 of file Type.h.

Enumerator
TagFirst 
TagLast 

Definition at line 1236 of file Type.h.

Constructor & Destructor Documentation

clang::Type::Type ( TypeClass  tc,
QualType  canon,
bool  Dependent,
bool  InstantiationDependent,
bool  VariablyModified,
bool  ContainsUnexpandedParameterPack 
)
inlineprotected

Definition at line 1455 of file Type.h.

References clang::NoLinkage, and TypeBits.

Referenced by clang::Sema::LookupInlineAsmIdentifier().

Member Function Documentation

bool Type::acceptsObjCTypeParams ( ) const

Determines if this is an ObjC interface type that may accept type parameters.

Definition at line 1342 of file Type.cpp.

References getAsObjCInterfaceType().

bool clang::Type::canDecayToPointerType ( ) const
inline

Determines whether this type can decay to a pointer type.

Definition at line 5507 of file Type.h.

References isArrayType(), and isFunctionType().

bool Type::canHaveNullability ( ) const

Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type or a dependent type that could instantiate to any kind of pointer type.

Definition at line 3345 of file Type.cpp.

References getCanonicalTypeInternal(), getKind(), getTypeClass(), and clang::QualType::getTypePtr().

Referenced by clang::Sema::checkNullabilityTypeSpecifier(), GetFullTypeForDeclarator(), and processTypeAttrs().

template<typename T >
const T * clang::Type::castAs ( ) const

Member-template castAs<specific type>. Look through sugar for the underlying instance of <specific type>.

This method has the same relationship to getAs<T> as cast<T> has to dyn_cast<T>; which is to say, the underlying type must have the intended type, and this method will never return null.

Definition at line 5586 of file Type.h.

References getUnqualifiedDesugaredType().

Referenced by clang::Sema::ActOnClassPropertyRefExpr(), clang::Sema::ActOnFunctionDeclarator(), addInstantiatedParametersToScope(), clang::Sema::adjustCCAndNoReturn(), clang::ASTContext::adjustDeducedFunctionResultType(), adjustFunctionTypeForInstantiation(), applyObjCProtocolQualifiers(), clang::ASTContext::areCommonBaseCompatible(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildVariableInstantiation(), clang::ASTContext::canAssignObjCInterfaces(), checkArithmeticOnObjCPointer(), clang::Sema::CheckCompareOperands(), checkConditionalPointerCompatibility(), CheckConstantExpression(), CheckConstexprCtorInitializer(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExplicitlyDefaultedMemberExceptionSpec(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::checkInitMethod(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckMain(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CodeCompleteCase(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CGDebugInfo::completeClassData(), clang::CodeGen::CGDebugInfo::completeType(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::PredefinedExpr::ComputeName(), clang::ObjCObjectType::computeSuperClassTypeSlow(), convertToComplexValue(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitCopyConstructor(), clang::Sema::DefineImplicitDefaultConstructor(), clang::Sema::DefineImplicitDestructor(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineImplicitMoveConstructor(), clang::Sema::DiagnoseSentinelCalls(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenModule::EmitNullConstant(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitWritebackArg(), EncodeBitField(), EvalAndBitcastToAPInt(), clang::Sema::EvaluateImplicitExceptionSpec(), clang::CXXRecordDecl::FindBaseClass(), clang::Expr::findBoundMemberType(), clang::Sema::FindCompositeObjCPointerType(), FindDesignatorMismatch(), clang::CXXRecordDecl::FindNestedNameSpecifierMember(), clang::CXXRecordDecl::FindOrdinaryMember(), findSubobject(), clang::CXXRecordDecl::FindTagMember(), clang::CXXRecordDecl::FindVirtualBaseClass(), clang::Expr::getBestDynamicClassType(), getCallingConvMangling(), clang::CallExpr::getCallReturnType(), getCXXRecord(), GetFullTypeForDeclarator(), clang::BlockExpr::getFunctionType(), clang::ObjCObjectPointerType::getInterfaceType(), clang::ObjCObjectPointerType::getObjectType(), clang::ReferenceType::getPointeeType(), clang::ObjCInterfaceDecl::getSuperClassType(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), handleSentinelAttr(), hasDeducedReturnType(), clang::Sema::InstantiateExceptionSpec(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::CXXMethodDecl::isConst(), clang::CodeGen::CodeGenModule::isPaddedAtomicType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), IsStructurallyEquivalent(), clang::CXXMethodDecl::isVolatile(), clang::Sema::LookupMethodInObjectType(), LookupMethodInReceiverType(), clang::Sema::LookupTemplateName(), clang::MangleContext::mangleName(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::Sema::MergeFunctionDecl(), ObjCEncodingForEnumType(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareScalarCast(), clang::Sema::ResolveExceptionSpec(), clang::CXXNewExpr::shouldNullCheckAllocation(), clang::Sema::startLambdaDefinition(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().

const ArrayType * clang::Type::castAsArrayTypeUnsafe ( ) const
inline

A variant of castAs<> for array type which silently discards qualifiers from the outermost type.

Definition at line 5595 of file Type.h.

References getUnqualifiedDesugaredType().

Referenced by CheckConstantExpression(), FindDesignatorMismatch(), getArrayIndexingBound(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), and isFlexibleArrayMemberExpr().

bool clang::Type::containsUnexpandedParameterPack ( ) const
inline

Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates.

A type that contains a parameter pack shall be expanded by the ellipsis operator at some point. For example, the typedef in the following example contains an unexpanded parameter pack 'T':

template<typename ...T>
struct X {
typedef T* pointer_types; // ill-formed; T is a parameter pack.
};

Note that this routine does not specify which

Definition at line 1506 of file Type.h.

References TypeBits.

Referenced by clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::BuildBaseInitializer(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckPackExpansion(), clang::NestedNameSpecifier::containsUnexpandedParameterPack(), clang::DeclarationNameInfo::containsUnexpandedParameterPack(), clang::Sema::containsUnexpandedParameterPacks(), clang::Sema::DiagnoseUnexpandedParameterPack(), GetFullTypeForDeclarator(), clang::ASTContext::getPackExpansionType(), and clang::Sema::SubstParmVarDecl().

LLVM_DUMP_METHOD void Type::dump ( ) const

Definition at line 2297 of file ASTDumper.cpp.

References clang::QualType::dump().

const Type * Type::getArrayElementTypeNoTypeQual ( ) const

getArrayElementTypeNoTypeQual - If this is an array type, return the element type of the array, potentially with type qualifiers missing. This method should never be used when type qualifiers are meaningful.

Definition at line 190 of file Type.cpp.

References getElementType(), and getUnqualifiedDesugaredType().

Referenced by evenFlexibleArraySize().

template<typename T >
const T * clang::Type::getAs ( ) const

Member-template getAs<specific type>'. Look through sugar for an instance of <specific type>. This scheme will eventually replace the specific getAsXXXX methods above.

There are some specializations of this member template listed immediately following this class.

Definition at line 5555 of file Type.h.

References getUnqualifiedDesugaredType().

Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::actOnObjCTypeArgsOrProtocolQualifiers(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnSuperClassOfClassInterface(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTypedefedProtocols(), clang::Sema::ActOnUninitializedDecl(), addBlockPointerConversion(), AddClassMessageCompletions(), clang::Sema::AddConversionCandidate(), AddFunctionParameterChunks(), addFunctionPointerConversion(), AddFunctionTypeQualsToCompletionString(), clang::Sema::AddMemberOperatorCandidates(), clang::Sema::AddMethodCandidate(), AddObjCKeyValueCompletions(), clang::Sema::AddOverloadCandidate(), AddTypedNameChunk(), clang::Sema::adjustCCAndNoReturn(), AdjustFunctionParmAndArgTypesForDeduction(), appendFunctionType(), appendType(), applyObjCTypeArgs(), clang::ASTContext::areComparableObjCPointerTypes(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::AttachBaseSpecifiers(), clang::ASTDeclReader::attachPreviousDeclImpl(), BitsContainNoUserData(), breakDownVectorType(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::Sema::BuildArrayType(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildExpressionFromIntegralTemplateArgument(), BuildFieldReferenceExpr(), clang::Sema::BuildMemberReferenceExpr(), buildMemcpyForAssignmentOp(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), buildSingleCopyAssignRecursively(), clang::Sema::BuildTypeofExprType(), clang::Sema::BuildUnaryTransformType(), clang::Sema::BuildVariableInstantiation(), clang::Sema::BuildVectorLiteral(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::arcmt::trans::canApplyWeak(), canAssignObjCObjectTypes(), clang::canCalleeThrow(), canExpandIndirectArgument(), clang::Sema::canThrow(), clang::canTypeidThrow(), CanUseSingleInheritance(), captureInBlock(), captureInLambda(), clang::ento::StoreManager::CastRetrievedVal(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBaseClassAccess(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), CheckConstantExpression(), CheckConstexprParameterTypes(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckDistantExceptionSpec(), checkEnumComparison(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckExtVectorCast(), CheckExtVectorComponent(), CheckFallThroughForBody(), clang::Sema::CheckFieldDecl(), checkFormatStringExpr(), clang::Sema::CheckFriendTypeDecl(), CheckIncrementDecrementOperand(), CheckIndirectionOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckMain(), clang::Sema::CheckMemberPointerConversion(), clang::Sema::CheckMessageArgumentTypes(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckNonNullArguments(), clang::Sema::CheckNontrivialField(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCConversion(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), clang::Sema::CheckObjCForCollectionOperand(), clang::Sema::checkObjCKindOfType(), checkObjCPointerTypesForAssignment(), checkOpenCLConditionVector(), checkOpenCLVectorShift(), CheckOperatorNewDeleteTypes(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckParmsForFunctionDef(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), checkQualifiedFunction(), checkRecordTypeForCapability(), CheckRelatedResultTypeCompatibility(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), checkTypedefTypeForCapability(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckUnresolvedMemberAccess(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorOperands(), checkVectorResult(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyTypeForARCConversion(), ClassifyUnnamed(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CodeCompleteObjCSuperMessage(), CollectVisibleConversions(), CollectVRQualifiers(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::Sema::CompleteConstructorCall(), CompleteNonViableCandidate(), clang::Sema::computeDeclContext(), clang::Sema::ComputeDefaultedDefaultCtorExceptionSpec(), clang::Sema::ComputeDefaultedDtorExceptionSpec(), clang::Sema::ComputeDefaultedMoveCtorExceptionSpec(), clang::Sema::ComputeInheritingCtorExceptionSpec(), clang::PredefinedExpr::ComputeName(), clang::CodeGen::CodeGenModule::computeNonVirtualBaseClassOffset(), ComputeVMIClassTypeInfoFlags(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::ConversionToObjCStringLiteralCheck(), ConvertDeclSpecToType(), clang::CodeGen::CodeGenTypes::ConvertType(), ConvertTypeToDiagnosticString(), CopyObject(), create_dispatch_once(), create_OSAtomicCompareAndSwap(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), CreateNewFunctionDecl(), clang::Sema::CreatePropertyDecl(), CXXRecordMembersNamed(), clang::Sema::DeclClonePragmaWeak(), decomposeTypeForEH(), clang::Sema::DeduceAutoType(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultArgumentPromotion(), defaultedSpecialMemberIsConstexpr(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), Desugar(), clang::InitializationSequence::Diagnose(), DiagnoseArityMismatch(), clang::Sema::DiagnoseAssignmentEnum(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseAvailabilityOfDecl(), diagnoseBadCast(), DiagnoseBadConversion(), DiagnoseBadTarget(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), diagnoseListInit(), DiagnoseNarrowingInInitList(), clang::Sema::DiagnosePropertyAccessorMismatch(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSentinelCalls(), doesUsualArrayDeleteWantSize(), doRewriteToUTF8StringBoxedExpressionHelper(), dumpBasePath(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenModule::EmitConstantValue(), clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitEndEHSpec(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), EmitFunctionDeclLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenModule::EmitNullConstant(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), EmitObjectDelete(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheckForCast(), EncodeBitField(), clang::ento::ExprEngine::evalLoad(), EvaluateBinaryTypeTrait(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), EvaluateUnaryTypeTrait(), evenFlexibleArraySize(), clang::Sema::ExtractUnqualifiedFunctionType(), FieldHasTrivialDestructorBody(), clang::Sema::FindAllocationFunctions(), clang::Sema::FindCompositeObjCPointerType(), clang::Sema::FindCompositePointerType(), FindConversionForRefInit(), findEnumForBlockReturn(), clang::RecordDecl::findFirstNamedDataMember(), FindHiddenVirtualMethod(), clang::Sema::FindInstantiatedDecl(), FindOverriddenMethod(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CXXRecordDecl::forallBases(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), getAbsoluteValueArgumentType(), GetAlignOfType(), clang::CXXNewExpr::getAllocatedType(), getArrayIndexingBound(), GetAssumedMessageSendExprType(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), clang::Sema::getCallingConvAttributedType(), clang::FunctionDecl::getCallResultType(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getCanonicalNestedNameSpecifier(), clang::ASTContext::getCommentForDecl(), clang::CXXConversionDecl::getConversionType(), clang::CXXMethodDecl::getCorrespondingMethodInClass(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ASTContext::getDeclAlign(), clang::ento::CallEvent::getDeclaredResultType(), clang::getDeclUsageType(), clang::TemplateTypeParmDecl::getDepth(), clang::CXXDeleteExpr::getDestroyedType(), clang::CFGImplicitDtor::getDestructorDecl(), clang::Sema::getDestructorName(), getFloatingRank(), clang::ASTContext::getFloatTypeSemantics(), GetFullTypeForDeclarator(), clang::getFunctionExtInfo(), clang::CodeCompleteConsumer::OverloadCandidate::getFunctionType(), clang::Decl::getFunctionType(), clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable(), GetGCAttrTypeForType(), clang::TemplateTypeParmDecl::getIndex(), clang::ASTContext::getInnerObjCOwnership(), clang::ObjCObjectType::getInterface(), clang::ASTContext::getIntWidth(), clang::ASTContext::getLegacyIntegralTypeEncoding(), clang::ento::TypedValueRegion::getLocationType(), clang::ASTContext::getLValueReferenceType(), clang::UnresolvedMemberExpr::getNamingClass(), clang::QualType::getNonReferenceType(), clang::NSAPI::GetNSIntegralKind(), clang::NSAPI::getNSNumberFactoryMethodKind(), GetNumNonZeroBytesInInit(), clang::OverloadCandidate::getNumParams(), clang::FunctionDecl::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), clang::ASTContext::getObjCObjectType(), clang::TemplateArgument::getPackExpansionPattern(), getPointeeCXXRecordDecl(), clang::ASTContext::getPreferredTypeAlign(), clang::ASTContext::getPromotedIntegerType(), getRangeForType(), clang::ObjCMessageExpr::getReceiverInterface(), getRecordArgABI(), getRecordType(), clang::CXXMethodDecl::getRefQualifier(), clang::FunctionDecl::getReturnType(), GetReturnType(), clang::ASTContext::getRValueReferenceType(), clang::Sema::GetSignedVectorType(), clang::CodeGen::CodeGenTBAA::getTBAAStructTypeInfo(), getTypeExpansion(), clang::ASTContext::getTypeInfoDataSizeInChars(), clang::CXXMethodDecl::getTypeQualifiers(), clang::GetUnderlyingFunction(), clang::Expr::getValueKindForType(), clang::ento::MemRegionManager::getVarRegion(), HandleBaseToDerivedCast(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleInitPriorityAttr(), HandleMemberPointerAccess(), handleModeAttr(), handleObjCOwnershipTypeAttr(), handleSentinelAttr(), hasBooleanRepresentation(), hasDefaultCXXMethodCC(), HasExplicitOwnershipAttr(), clang::hasImplicitExceptionSpec(), hasIsEqualMethod(), HasNoThrowOperator(), clang::CodeGen::CodeGenFunction::hasVolatileMember(), clang::Sema::IgnoredValueConversions(), clang::Sema::inferCUDATargetForImplicitSpecialMember(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::ASTReader::InitializeContext(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), is32Or64BitBasicType(), IsAcceptableNonMemberOperatorCandidate(), clang::CXXDynamicCastExpr::isAlwaysNull(), isAtLeastAsSpecializedAs(), clang::Sema::IsBlockPointerConversion(), isBooleanType(), IsCFError(), isCFStringType(), isCharSpecialization(), clang::ento::cocoa::isCocoaObjectRef(), clang::Sema::IsComplexPromotion(), clang::Expr::isConstantInitializer(), IsConstructorDelegationValid(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::QualType::isCXX11PODType(), IsDerivedFromInclusive(), isDispatchBlock(), isEmptyField(), isEmptyRecord(), isFirstArgumentCompatibleWithType(), clang::Sema::IsFloatingPointPromotion(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::ABIInfo::isHomogeneousAggregate(), clang::Sema::isInitListConstructor(), isIntegerLikeType(), clang::Sema::IsIntegralPromotion(), isKnownNonNilCollectionType(), isLiteralType(), IsLLVMStringRef(), clang::Sema::IsMemberPointerConversion(), clang::FunctionDecl::isNoReturn(), IsNSError(), isNSStringType(), clang::Expr::isNullPointerConstant(), isObjCIdOrObjectKindOfType(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::TemplateTypeParmDecl::isParameterPack(), IsPartOfAST(), isPermittedNeonBaseType(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToRecordType(), isRecordWithSSEVectorType(), clang::ento::cocoa::isRefType(), isSafeForCXXConstantCapture(), isSafeToConvert(), isScopedEnumerationType(), isSimpleTemplateIdType(), isSingleElementStruct(), IsSmallVector(), isSSEVectorType(), IsStandardConversion(), isStandardLayoutType(), clang::Sema::isStdInitializerList(), IsStdString(), IsStdVector(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), isTBAAPathStruct(), isTemplateArgumentTemplateParameter(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), IsUserDefinedConversion(), isVarDeclStrongDefinition(), isVariableCapturable(), IsVoidStarType(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), clang::CodeGen::CodeGenFunction::IvarTypeWithAggrGCObjects(), LookupAnyMember(), LookupDirect(), clang::Sema::LookupInlineAsmField(), LookupMemberExpr(), LookupMethodInReceiverType(), LookupVisibleDecls(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::Sema::MarkFunctionReferenced(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), maybeAdjustInterfaceForSubscriptingCheck(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::MergeTypedefNameDecl(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclExceptionSpecs(), NoteIndirectBases(), NoteSurrogateCandidate(), ObjCEnumerationCollection(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), clang::ASTContext::ObjCQualifiedClassTypesAreCompatible(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), OpenCLConvertScalarsToVectors(), clang::operator<<(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformMoveOrCopyInitialization(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), PopulateKeysForFields(), print_elem(), PrintFloatingLiteral(), printIntegral(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::processSwitch(), PropertyMemoryAttribute(), pushTemporaryCleanup(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::Sema::RequireCompleteDeclContext(), clang::Sema::RequireCompleteExprType(), clang::Sema::RequireCompleteType(), clang::Sema::RequireLiteralType(), clang::Sema::RequireNonAbstractType(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFP2Ret(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFPRet(), rewriteToNumericBoxedExpression(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), clang::CXXRecordDecl::setBases(), clang::ASTContext::setCFConstantStringType(), clang::Sema::SetCtorInitializers(), setObjCGCLValueClass(), ShouldDiagnoseUnusedDecl(), shouldNotPrintDirectly(), ShouldTryAgainWithRedefinitionType(), clang::Expr::skipRValueSubobjectAdjustments(), clang::Sema::SpecialMemberIsTrivial(), clang::CodeGen::CodeGenFunction::StartThunk(), clang::QualType::stripObjCKindOfType(), clang::ObjCObjectType::stripObjCKindOfTypeAndQuals(), clang::Sema::SubstituteExplicitTemplateArguments(), threadSafetyCheckIsPointer(), clang::TreeTransform< Derived >::TransformExceptionSpec(), clang::TreeTransform< Derived >::TransformReferenceType(), tryAtomicConversion(), TryClassUnification(), TryConstCast(), TryConstructorInitialization(), clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(), clang::Sema::tryExprAsCall(), TryImplicitConversion(), TryListConversion(), TryLValueToRValueCast(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitialization(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), TryReinterpretCast(), TryStaticCast(), TryStaticMemberPointerUpcast(), TryStaticPointerDowncast(), TryStaticReferenceDowncast(), TryUserDefinedConversion(), TryValueInitialization(), TypeIsInnerPointer(), UnwrapDissimilarPointerTypes(), clang::ASTContext::UnwrapSimilarPointerTypes(), clang::Sema::UsualArithmeticConversions(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ento::ExprEngine::VisitOffsetOfExpr(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().

const TypedefType * Type::getAs ( ) const

This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type.

Definition at line 325 of file Type.cpp.

const TemplateSpecializationType * Type::getAs ( ) const

This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type.

Definition at line 329 of file Type.cpp.

const AttributedType * Type::getAs ( ) const

This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type.

Definition at line 333 of file Type.cpp.

const ArrayType * clang::Type::getAsArrayTypeUnsafe ( ) const
inline
const ComplexType * Type::getAsComplexIntegerType ( ) const

Definition at line 407 of file Type.cpp.

Referenced by handleComplexIntConversion(), and isComplexIntegerType().

CXXRecordDecl * Type::getAsCXXRecordDecl ( ) const

Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization.

Definition at line 1505 of file Type.cpp.

References getAsTagDecl().

Referenced by clang::Sema::ActOnCXXTryBlock(), clang::Sema::ActOnDecltypeExpression(), BaseInSet(), clang::ASTContext::BlockRequiresCopying(), BuildImplicitBaseInitializer(), BuildNonArrayForRange(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCompleteVariableDeclaration(), CheckConstexprCtorInitializer(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckEquivalentExceptionSpec(), checkForConsumableClass(), checkMoveAssignmentForRepeatedMove(), checkTrivialClassMembers(), checkTrivialSubobjectCall(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteConstructor(), computeBlockInfo(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::Sema::ComputeDefaultedMoveAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedMoveCtorExceptionSpec(), diagnoseBadCast(), clang::Sema::DiagnoseEmptyLookup(), DiagnoseReinterpretUpDownCast(), DiagnoseUninitializedReference(), diagnoseUnreadableFields(), DumpCXXRecordLayout(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXConstructLValue(), EmitDeclDestroy(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::ento::StoreManager::evalDerivedToBase(), clang::ento::StoreManager::evalDynamicCast(), EvaluateUnaryTypeTrait(), findSubobject(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::ento::MemRegion::getAsOffset(), clang::ASTContext::getCommentForDecl(), getContainedDynamicClass(), clang::CFGImplicitDtor::getDestructorDecl(), clang::Sema::getFixItZeroInitializerForType(), clang::LambdaExpr::getLambdaClass(), clang::CodeGen::CGCXXABI::getMemberPointerAdjustment(), clang::MemberPointerType::getMostRecentCXXRecordDecl(), clang::UnresolvedMemberExpr::getNamingClass(), getOffsetOfFullPath(), clang::CXXMemberCallExpr::getRecordDecl(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::CXXUuidofExpr::GetUuidAttrOfType(), HandleBaseToDerivedCast(), HandleLValueBase(), HandleLValueBasePath(), HandleMemberPointerAccess(), hasNontrivialDestruction(), clang::FunctionDecl::hasUnusedResultAttr(), InitializationHasSideEffects(), isAutoCastType(), isConsumableType(), clang::Sema::IsDerivedFrom(), isInAllocaArgument(), clang::CXXTypeidExpr::isPotentiallyEvaluated(), isReadByLvalueToRvalueConversion(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::isThisOutsideMemberFunctionBody(), clang::CodeGen::CodeGenModule::isTypeConstant(), isTypeValid(), clang::Expr::isUnusedResultAWarning(), isValidBaseClass(), clang::Sema::isValidVarArgType(), LeastDerivedClassWithSameLayout(), mapConsumableAttrState(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), print_elem(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::CodeGen::CodeGenFunction::PushDestructorCleanup(), recoverFromMSUnqualifiedLookup(), regionMatchesCXXRecordType(), clang::CXXRecordDecl::setBases(), treatUnusedNewEscaped(), TryListInitialization(), usesMultipleInheritanceModel(), clang::ento::ExprEngine::VisitCXXDestructor(), and warnAboutAmbiguousFunction().

const ObjCObjectPointerType * Type::getAsObjCInterfacePointerType ( ) const
const ObjCObjectType * Type::getAsObjCInterfaceType ( ) const

Definition at line 1475 of file Type.cpp.

Referenced by acceptsObjCTypeParams(), and getBaseMessageSendResultType().

const ObjCObjectPointerType * Type::getAsObjCQualifiedClassType ( ) const

Definition at line 1465 of file Type.cpp.

Referenced by clang::Sema::BuildInstanceMessage().

const ObjCObjectPointerType * Type::getAsObjCQualifiedIdType ( ) const
const ObjCObjectType * Type::getAsObjCQualifiedInterfaceType ( ) const

Definition at line 1441 of file Type.cpp.

Referenced by isObjCQualifiedInterfaceType().

const BuiltinType * clang::Type::getAsPlaceholderType ( ) const
inline
const RecordType * Type::getAsStructureType ( ) const
TagDecl * Type::getAsTagDecl ( ) const

Retrieves the TagDecl that this type refers to, either because the type is a TagType or because it is the injected-class-name type of a class template or class template partial specialization.

Definition at line 1509 of file Type.cpp.

Referenced by clang::Sema::ActOnTag(), emitDestructorsFunction(), EmitNullConstant(), emitProxyTaskFunction(), emitTaskPrivateMappingFunction(), and getAsCXXRecordDecl().

const RecordType * Type::getAsUnionType ( ) const
const Type * clang::Type::getBaseElementTypeUnsafe ( ) const
inline
QualType clang::Type::getCanonicalTypeInternal ( ) const
inline
CanQualType clang::Type::getCanonicalTypeUnqualified ( ) const
inline
AutoType * Type::getContainedAutoType ( ) const
Linkage Type::getLinkage ( ) const
LinkageInfo Type::getLinkageAndVisibility ( ) const
QualType Type::getLocallyUnqualifiedSingleStepDesugaredType ( ) const

Pull a single level of sugar off of this locally-unqualified type. Users should generally prefer SplitQualType::getSingleStepDesugaredType() or QualType::getSingleStepDesugaredType(const ASTContext&).

Definition at line 223 of file Type.cpp.

References getTypeClass().

Optional< NullabilityKind > Type::getNullability ( const ASTContext context) const
Qualifiers::ObjCLifetime Type::getObjCARCImplicitLifetime ( ) const

Return the implicit lifetime for this type, which must not be dependent.

Definition at line 3506 of file Type.cpp.

References isObjCARCImplicitlyUnretainedType(), clang::Qualifiers::OCL_ExplicitNone, and clang::Qualifiers::OCL_Strong.

Referenced by clang::Sema::BuildCXXNew(), clang::Sema::CheckParameter(), and clang::Sema::inferObjCARCLifetime().

Optional< ArrayRef< QualType > > Type::getObjCSubstitutions ( const DeclContext dc) const

Retrieve the set of substitutions required when accessing a member of the Objective-C receiver type that is declared in the given context.

*this is the type of the object we're operating on, e.g., the receiver for a message send or the base of a property access, and is expected to be of some object or object pointer type.

Parameters
dcThe declaration context for which we are building up a substitution mapping, which should be an Objective-C class, extension, category, or method within.
Returns
an array of type arguments that can be substituted for the type parameters of the given declaration context in any type described within that context, or an empty optional to indicate that no substitution is required.

Extract the class from the receiver object type.

Definition at line 1260 of file Type.cpp.

References clang::ASTContext::getObjCObjectType(), clang::DeclContext::getParentASTContext(), clang::ObjCInterfaceDecl::getTypeParamList(), clang::None, and clang::ASTContext::ObjCBuiltinIdTy.

Referenced by clang::Sema::CheckMessageArgumentTypes(), clang::CodeCompletionResult::CreateCodeCompletionString(), and clang::QualType::substObjCMemberType().

const CXXRecordDecl * Type::getPointeeCXXRecordDecl ( ) const

If this is a pointer or reference to a RecordType, return the CXXRecordDecl that that type refers to.

If this is not a pointer or reference, or the type being pointed to does not refer to a CXXRecordDecl, returns NULL.

Definition at line 1490 of file Type.cpp.

References getAs(), and getPointeeType().

Referenced by adjustReturnValue(), DiagnoseReinterpretUpDownCast(), clang::ento::StoreManager::evalDerivedToBase(), isSetOnReadPtrType(), and regionMatchesCXXRecordType().

QualType Type::getPointeeType ( ) const

getPointeeType - If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.

Definition at line 414 of file Type.cpp.

References getPointeeType(), and clang::ExtQualsTypeCommonBase::QualType.

Referenced by clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddConversionCandidate(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildFieldReferenceExpr(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildResolvedCallExpr(), BuildSimilarlyQualifiedPointerType(), clang::arcmt::trans::canApplyWeak(), clang::canCalleeThrow(), captureInLambda(), clang::ento::StoreManager::castRegion(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalPointerCompatibility(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDistantExceptionSpec(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), CheckFallThroughForBody(), checkForConsumableClass(), CheckIndirectionOperand(), CheckNonNullArguments(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCConversion(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyTypeForARCConversion(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteMemberReferenceExpr(), CollectVRQualifiers(), CompareStandardConversionSequences(), CompleteNonViableCandidate(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CreateBuiltinArraySubscriptExpr(), decomposeTypeForEH(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefineImplicitCopyAssignment(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), clang::Sema::DiagnoseAssignmentResult(), diagnoseBadCast(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), clang::Sema::DiagnoseSentinelCalls(), diagnoseStringPlusChar(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMemberExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::ento::StoreManager::evalDynamicCast(), clang::Sema::ExtractUnqualifiedFunctionType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), GenOpenCLArgMetadata(), GetAlignOfType(), clang::ento::MemRegion::getAsOffset(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), clang::CallExpr::getCallReturnType(), getCoreType(), getCXXRecord(), clang::ASTContext::getDeclAlign(), clang::getDeclUsageType(), getDeepPointeeType(), getElementType(), clang::getFunctionExtInfo(), clang::ASTContext::getInnerObjCOwnership(), clang::PointerLikeTypeLoc< ObjCObjectPointerTypeLoc, ObjCObjectPointerType >::getInnerType(), clang::QualType::getNonLValueExprType(), clang::QualType::getNonReferenceType(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCQualType(), getOpenCLKernelParameterType(), getPointeeCXXRecordDecl(), getPointeeType(), clang::CXXMemberCallExpr::getRecordDecl(), getRecordType(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::GetUnderlyingFunction(), clang::CXXUuidofExpr::GetUuidAttrOfType(), HandleBaseToDerivedCast(), clang::consumed::ConsumedStmtVisitor::handleCall(), clang::Sema::HandleFunctionTypeMismatch(), HandleMemberPointerAccess(), handleNSReturnsRetainedAttr(), handleObjCOwnershipTypeAttr(), HasExplicitOwnershipAttr(), InitCatchParam(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::Sema::IsBlockPointerConversion(), isCallbackArg(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::Sema::isInitListConstructor(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::Expr::isNullPointerConstant(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), IsStructurallyEquivalent(), IsTypeModifiable(), clang::AtomicExpr::isVolatile(), LookupMemberExpr(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeVarDeclExceptionSpecs(), NoteSurrogateCandidate(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), clang::Sema::PrepareScalarCast(), print_elem(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ObjCObjectPointerType::Profile(), recoverFromMSUnqualifiedLookup(), clang::Sema::RequireCompleteExprType(), clang::Sema::RequireNonAbstractType(), rewriteBuiltinFunctionDecl(), treatUnusedNewEscaped(), clang::Sema::tryExprAsCall(), TryObjectArgumentInitialization(), TryStaticCast(), TryToFixInvalidVariablyModifiedType(), UnwrapDissimilarPointerTypes(), clang::ASTContext::UnwrapSimilarPointerTypes(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::consumed::ConsumedStmtVisitor::VisitCXXConstructExpr(), clang::ento::UndefOrNullArgVisitor::VisitNode(), and clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl().

Type::ScalarTypeKind Type::getScalarTypeKind ( ) const
TypeClass clang::Type::getTypeClass ( ) const
inline

Definition at line 1486 of file Type.h.

References TypeBits.

Referenced by addAssociatedClassesAndNamespaces(), BuildSimilarlyQualifiedPointerType(), canHaveNullability(), clang::LocInfoType::classof(), clang::BuiltinType::classof(), clang::ComplexType::classof(), clang::ParenType::classof(), clang::PointerType::classof(), clang::AdjustedType::classof(), clang::DecayedType::classof(), clang::BlockPointerType::classof(), clang::ReferenceType::classof(), clang::LValueReferenceType::classof(), clang::RValueReferenceType::classof(), clang::MemberPointerType::classof(), clang::ArrayType::classof(), clang::ConstantArrayType::classof(), clang::IncompleteArrayType::classof(), clang::VariableArrayType::classof(), clang::DependentSizedArrayType::classof(), clang::DependentSizedExtVectorType::classof(), clang::VectorType::classof(), clang::ExtVectorType::classof(), clang::FunctionType::classof(), clang::FunctionNoProtoType::classof(), clang::FunctionProtoType::classof(), clang::UnresolvedUsingType::classof(), clang::TypedefType::classof(), clang::TypeOfExprType::classof(), clang::TypeOfType::classof(), clang::DecltypeType::classof(), clang::UnaryTransformType::classof(), clang::TagType::classof(), clang::RecordType::classof(), clang::EnumType::classof(), clang::AttributedType::classof(), clang::TemplateTypeParmType::classof(), clang::SubstTemplateTypeParmType::classof(), clang::SubstTemplateTypeParmPackType::classof(), clang::AutoType::classof(), clang::TemplateSpecializationType::classof(), clang::InjectedClassNameType::classof(), clang::ElaboratedType::classof(), clang::DependentNameType::classof(), clang::DependentTemplateSpecializationType::classof(), clang::PackExpansionType::classof(), clang::ObjCObjectType::classof(), clang::ObjCInterfaceType::classof(), clang::ObjCObjectPointerType::classof(), clang::AtomicType::classof(), computeCachedProperties(), computeLinkageInfo(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::Sema::CreateParsedType(), DeduceTemplateArgumentsByTypeMatch(), Desugar(), getAsSugar(), clang::QualType::getBaseTypeIdentifier(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::ast_type_traits::ASTNodeKind::getFromNode(), getLocallyUnqualifiedSingleStepDesugaredType(), clang::TypeLoc::getTypeLocClass(), clang::UnqualTypeLoc::getTypeLocClass(), getUnqualifiedDesugaredType(), clang::ASTContext::getVariableArrayDecayedType(), clang::QualType::isCXX98PODType(), isObjCReceiverType(), IsPossiblyOpaquelyQualifiedType(), isSpecifierType(), IsStructurallyEquivalent(), MarkUsedTemplateParameters(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeTypes(), clang::ASTContext::PrintStats(), clang::VectorType::Profile(), clang::RecursiveASTVisitor< Derived >::TraverseType(), clang::Sema::tryCaptureVariable(), UnwrapTypeForDebugInfo(), and clang::TypeVisitor< ASTNodeImporter, QualType >::Visit().

const char * Type::getTypeClassName ( ) const

Definition at line 2464 of file Type.cpp.

References TypeBits.

Referenced by clang::ASTNodeImporter::VisitType().

const Type * Type::getUnqualifiedDesugaredType ( ) const

getUnqualifiedDesugaredType() - Return the specified type with any "sugar" removed from the type, removing any typedefs, typeofs, etc., as well as any qualifiers.

getUnqualifiedDesugaredType - Pull any qualifiers and syntactic sugar off the given type. This should produce an object of the same dynamic type as the canonical type.

Definition at line 340 of file Type.cpp.

References getTypeClass().

Referenced by castAs(), castAsArrayTypeUnsafe(), getArrayElementTypeNoTypeQual(), getAs(), getAsArrayTypeUnsafe(), getAsStructureType(), getAsUnionType(), and clang::ASTContext::getUnqualifiedArrayType().

Visibility clang::Type::getVisibility ( ) const
inline

Determine the visibility of this type.

Definition at line 1898 of file Type.h.

References getLinkageAndVisibility(), and clang::LinkageInfo::getVisibility().

bool Type::hasFloatingRepresentation ( ) const

Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof.

Definition at line 1769 of file Type.cpp.

References isFloatingType().

Referenced by clang::Sema::CheckCompareOperands(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorLogicalOperands(), and handleTransparentUnionAttr().

bool Type::hasIntegerRepresentation ( ) const

Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector.

Definition at line 1576 of file Type.cpp.

References isIntegerType().

Referenced by clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CreateBuiltinUnaryOp(), and clang::Sema::SemaBuiltinShuffleVector().

bool clang::Type::hasObjCPointerRepresentation ( ) const
inline

hasObjCPointerRepresentation - Whether this type can represent an objective pointer type for the purpose of GC'ability

Definition at line 5516 of file Type.h.

References isObjCObjectPointerType().

bool clang::Type::hasPointerRepresentation ( ) const
inline

hasPointerRepresentation - Whether this type is represented natively as a pointer; this includes pointers, references, block pointers, and Objective-C interface, qualified id, and qualified interface types, as well as nullptr_t.

Definition at line 5511 of file Type.h.

References isBlockPointerType(), isNullPtrType(), isObjCObjectPointerType(), isPointerType(), and isReferenceType().

Referenced by Evaluate(), EvaluatePointer(), is32Or64BitBasicType(), and tryEmitARCRetainScalarExpr().

bool Type::hasSignedIntegerRepresentation ( ) const

Determine whether this type has an signed integer representation of some sort, e.g., it is an signed integer type or a vector.

Definition at line 1713 of file Type.cpp.

References isSignedIntegerOrEnumerationType().

Referenced by CheckOpenMPLoop(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), emitOMPAtomicRMW(), clang::ASTContext::getCorrespondingUnsignedType(), handleIntegerConversion(), and clang::analyze_format_string::ArgType::matchesType().

bool Type::hasSizedVLAType ( ) const

Whether this type involves a variable-length array type with a definite size.

Definition at line 3584 of file Type.cpp.

References getAsArrayTypeUnsafe(), and isVariablyModifiedType().

Referenced by clang::QualType::isCanonicalAsParam().

bool Type::hasUnnamedOrLocalType ( ) const

Whether this type is or contains a local or unnamed type.

Definition at line 3229 of file Type.cpp.

References clang::TypePropertyCache< Private >::ensure(), and TypeBits.

Referenced by clang::Sema::CheckTemplateArgument().

bool Type::hasUnsignedIntegerRepresentation ( ) const

Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector.

Definition at line 1753 of file Type.cpp.

References isUnsignedIntegerOrEnumerationType().

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and DiagnoseBadShiftValues().

bool Type::isAggregateType ( ) const

Determines whether the type is a C++ aggregate type or C aggregate or union type.

An aggregate type is an array or a class type (struct, union, or class) that has no user-declared constructors, no private or protected non-static data members, no base classes, and no virtual functions (C++ [dcl.init.aggr]p1). The notion of an aggregate type subsumes the notion of C aggregates (C99 6.2.5p21) because it also includes union types.

Definition at line 1845 of file Type.cpp.

Referenced by clang::Sema::AddInitializerToDecl(), TryListConversion(), and TryListInitialization().

bool Type::isAnyCharacterType ( ) const
bool clang::Type::isAnyComplexType ( ) const
inline
bool clang::Type::isAnyPointerType ( ) const
inline

Definition at line 5235 of file Type.h.

References isObjCObjectPointerType(), and isPointerType().

Referenced by clang::Sema::AddAlignValueAttr(), AreTypesCompatible(), AuditedType(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), clang::Sema::CheckAdditionOperands(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCompareOperands(), checkConditionalNullPointer(), clang::Sema::checkNullabilityTypeSpecifier(), CheckOriginalCallArgDeduction(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CodeCompleteExpression(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseBadFunctionCast(), diagnosePointerIncompatibility(), diagnoseStringPlusChar(), EvalAddr(), clang::Sema::FindCompositePointerType(), getElementType(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), clang::CXXMemberCallExpr::getRecordDecl(), handleOwnershipAttr(), handleRestrictAttr(), isCallbackArg(), clang::ento::Loc::isLocType(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), clang::ASTContext::isSentinelNullExpr(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), TryReinterpretCast(), TypeIsInnerPointer(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), and clang::ento::UndefOrNullArgVisitor::VisitNode().

bool Type::isArithmeticType ( ) const
bool clang::Type::isArrayType ( ) const
inline

Definition at line 5271 of file Type.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnOpenMPAlignedClause(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildAtomicType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssign(), clang::Sema::BuildVAArgExpr(), canDecayToPointerType(), captureInBlock(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckParameter(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyTemporary(), clang::CXXBindTemporaryExpr::Create(), clang::Sema::CreateBuiltinArraySubscriptExpr(), createReferenceTemporary(), DecodeTypeFromStr(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentResult(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::emitArrayDestroy(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), clang::CodeGen::CodeGenModule::EmitConstantInit(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), Evaluate(), EvaluateArray(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), EvaluateInPlace(), EvaluateUnaryTypeTrait(), FastEvaluateAsRValue(), FindDesignatorMismatch(), findSubobject(), clang::ASTContext::getAdjustedParameterType(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::GetBuiltinType(), getCoreType(), clang::ASTContext::getDecayedType(), getElementType(), clang::ASTContext::getExceptionObjectType(), clang::ASTContext::getInnerObjCOwnership(), clang::ASTContext::getObjCEncodingTypeSize(), clang::CXXUuidofExpr::GetUuidAttrOfType(), clang::InitializationSequence::InitializeFrom(), isCompoundType(), clang::Expr::isConstantInitializer(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), IsStandardConversion(), isZeroSized(), clang::Sema::LookupInlineAsmIdentifier(), clang::Sema::MergeVarDeclTypes(), pushTemporaryCleanup(), setObjCGCLValueClass(), TryListConversion(), TryReferenceInit(), TryReferenceInitializationCore(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitMemberExpr().

bool clang::Type::isAtomicType ( ) const
inline
bool Type::isBlockCompatibleObjCPointerType ( ASTContext ctx) const
bool clang::Type::isBlockPointerType ( ) const
inline

Definition at line 5238 of file Type.h.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnObjCForCollectionStmt(), applyObjCTypeArgs(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCBridgedCast(), clang::ento::StoreManager::castRegion(), CastsAwayConstness(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), checkConditionalBlockPointerCompatibility(), checkConditionalNullPointer(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckMessageArgumentTypes(), CheckObjCCollectionLiteralElement(), clang::Sema::CheckPointerConversion(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CodeCompleteExpression(), compareConversionFunctions(), clang::Sema::ConvertArgumentsForCall(), clang::CodeCompletionResult::CreateCodeCompletionString(), DiagnoseBadFunctionCast(), diagnoseObjCARCConversion(), DiagnoseUninitializedUse(), clang::CodeGen::CodeGenFunction::EmitARCRetain(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutorelease(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), EvalAddr(), clang::ento::SValBuilder::evalCast(), FormatFunctionParameter(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::ASTContext::getByrefLifetime(), GetFullTypeForDeclarator(), clang::Decl::getFunctionType(), GetGCAttrTypeForType(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), clang::ObjCPropertyDecl::getSetterKind(), clang::CallEventManager::getSimpleCall(), clang::Sema::getVariadicCallType(), handleAnalyzerNoReturnAttr(), handleObjCGCTypeAttr(), handleOwnershipAttr(), handleRestrictAttr(), handleSentinelAttr(), hasPointerRepresentation(), is32Or64BitBasicType(), isCallbackArg(), clang::CXXConversionDecl::isLambdaToBlockPointerConversion(), clang::ento::Loc::isLocType(), isObjCARCBridgableType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::maybeExtendBlockObject(), clang::ASTContext::mergeTypes(), clang::Sema::PrepareCastToObjCObjectPointer(), PropertyMemoryAttribute(), rewriteToObjCProperty(), shouldEmitSeparateBlockRetain(), SuggestInitializationFixit(), TryReinterpretCast(), TryStaticCast(), and TypeIsInnerPointer().

bool clang::Type::isBooleanType ( ) const
inline
bool clang::Type::isBuiltinType ( ) const
inline

isBuiltinType - returns true if the type is a builtin type.

Helper methods to distinguish type categories. All type predicates operate on the canonical type, ignoring typedefs and qualifiers.

Definition at line 5286 of file Type.h.

Referenced by clang::ASTContext::getExtVectorType(), clang::ASTContext::getVectorType(), handleIBOutletCollection(), HandleVectorSizeAttr(), isTypeSubstitutable(), and clang::ento::ExprEngine::VisitOffsetOfExpr().

bool clang::Type::isCanonicalUnqualified ( ) const
inline
bool Type::isCARCBridgableType ( ) const

Determine whether the given type T is a "bridgeable" C type.

Definition at line 3575 of file Type.cpp.

References clang::PointerType::getPointeeType(), isRecordType(), and isVoidType().

Referenced by clang::Sema::BuildObjCBridgedCast(), and handleObjCNSObject().

bool Type::isChar16Type ( ) const
bool Type::isChar32Type ( ) const
bool Type::isCharType ( ) const
bool Type::isClassType ( ) const

Definition at line 357 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait().

bool Type::isComplexIntegerType ( ) const
bool Type::isComplexType ( ) const
bool clang::Type::isCompoundType ( ) const
inline

Tests whether the type is categorized as a compound type.

Returns
True for types specified in C++0x [basic.compound].

Definition at line 5207 of file Type.h.

References isArrayType(), isEnumeralType(), isFunctionType(), isMemberPointerType(), isPointerType(), isRecordType(), isReferenceType(), and isUnionType().

Referenced by EvaluateUnaryTypeTrait().

bool clang::Type::isConstantArrayType ( ) const
inline
bool Type::isConstantSizeType ( ) const

isConstantSizeType - Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. It is not legal to call this on incomplete types.

isConstantSizeType - Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. It is not legal to call this on incomplete types or dependent types.

Definition at line 1859 of file Type.cpp.

References isDependentType(), and isIncompleteType().

Referenced by clang::Sema::BuildArrayType(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::ASTContext::getConstantArrayType(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), HandleSizeof(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().

bool clang::Type::isDependentSizedArrayType ( ) const
inline

Definition at line 5283 of file Type.h.

bool clang::Type::isDependentType ( ) const
inline

isDependentType - Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]).

Definition at line 1727 of file Type.h.

References TypeBits.

Referenced by clang::Sema::ActOnChooseExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStmtExpr(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddInitializerToDecl(), addInstantiatedParametersToScope(), applyObjCTypeArgs(), clang::Sema::BuildArrayType(), clang::Sema::BuildArrayTypeTrait(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXNamedCast(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildCXXUuidof(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExtVectorType(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemberInitializer(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBridgedCast(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildUnaryTransformType(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVariableInstantiation(), clang::Sema::canThrow(), captureInLambda(), checkAcquireOrderAttrCommon(), clang::Sema::CheckAllocatedType(), checkArithmeticIncompletePointerType(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCastAlign(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConstexprFunctionBody(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckOMPThreadPrivateDecl(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckQualifiedMemberReference(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), classifyPointerDeclarator(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::computeDeclContext(), computeDeclRefDependence(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceClosureReturnType(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), clang::Sema::DiagnoseUnusedNestedTypedefs(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateUnaryTypeTrait(), findTemplateParameter(), FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), FormatFunctionParameter(), clang::Expr::getBestDynamicClassType(), clang::ASTContext::getCanonicalTemplateSpecializationType(), clang::ASTContext::getConstantArrayType(), clang::ento::CallEvent::getDeclaredResultType(), clang::CXXDeleteExpr::getDestroyedType(), clang::Sema::getDestructorName(), clang::ASTContext::getExtVectorType(), getLVForTemplateParameterList(), clang::QualType::getNonLValueExprType(), clang::ASTContext::getUnaryTransformType(), handleNonNullAttr(), handleObjCOwnershipTypeAttr(), hasDeducibleTemplateParameters(), hasDependentAlignment(), clang::InitializationSequence::InitializeFrom(), clang::Sema::isAcceptableNestedNameSpecifier(), IsAcceptableNonMemberOperatorCandidate(), isConstantSizeType(), clang::Sema::isCopyElisionCandidate(), clang::QualType::isCXX11PODType(), clang::AutoType::isDeduced(), clang::NestedNameSpecifier::isDependent(), clang::TemplateArgument::isDependent(), clang::DeclarationName::isDependentName(), IsDerivedFromInclusive(), clang::Sema::isIncompatibleTypedef(), isLiteralType(), clang::Sema::isNonTypeNestedNameSpecifier(), isObjCReceiverType(), isOverloadableType(), isPromotableIntegerType(), isStandardLayoutType(), clang::UnaryTransformType::isSugared(), clang::TemplateSpecializationType::isSugared(), clang::PackExpansionType::isSugared(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), isValidSubjectOfCFAttribute(), isValidSubjectOfNSAttribute(), isValidSubjectOfNSReturnsRetainedAttribute(), clang::Sema::isValidVarArgType(), IsVariableNonDependentAndAConstantExpression(), LookupDirect(), clang::Sema::LookupInlineAsmIdentifier(), LookupMemberExpr(), clang::Sema::LookupTemplateName(), LookupVisibleDecls(), MarkUsedTemplateParameters(), MatchTemplateParameterKind(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), clang::Sema::PerformObjectMemberConversion(), processTypeAttrs(), clang::AutoType::Profile(), RebuildDeclaratorInCurrentInstantiation(), clang::TreeTransform< Derived >::RebuildInitList(), clang::Sema::RebuildTypeInCurrentInstantiation(), clang::Sema::RequireLiteralType(), clang::Sema::SemaConvertVectorExpr(), clang::CXXRecordDecl::setBases(), ShouldDiagnoseUnusedDecl(), SubstDefaultTemplateArgument(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryToFixInvalidVariablyModifiedType(), clang::TypoExpr::TypoExpr(), VariableCanNeverBeAConstantExpression(), and clang::Sema::VerifyBitField().

bool Type::isElaboratedTypeSpecifier ( ) const

Determine wither this type is a C++ elaborated-type-specifier.

Definition at line 2449 of file Type.cpp.

References clang::TypeWithKeyword::KeywordIsTagTypeKind().

Referenced by clang::Sema::ActOnFriendTypeDecl(), and clang::Sema::CheckFriendTypeDecl().

bool clang::Type::isEnumeralType ( ) const
inline
bool clang::Type::isEventT ( ) const
inline
bool clang::Type::isExtVectorType ( ) const
inline
bool Type::isFloatingType ( ) const
bool clang::Type::isFromAST ( ) const
inline

Whether this type comes from an AST file.

Definition at line 1489 of file Type.h.

References TypeBits.

bool clang::Type::isFunctionNoProtoType ( ) const
inline

Definition at line 1616 of file Type.h.

Referenced by clang::Sema::ActOnFunctionDeclarator().

bool clang::Type::isFunctionPointerType ( ) const
inline
bool clang::Type::isFunctionProtoType ( ) const
inline
bool clang::Type::isFunctionType ( ) const
inline

Definition at line 5229 of file Type.h.

Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBlockPointerType(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberPointerType(), clang::Sema::CallExprUnaryConversions(), canDecayToPointerType(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyBinaryOp(), ClassifyUnnamed(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Expr::findBoundMemberType(), FindConversionForRefInit(), clang::ASTContext::getAdjustedParameterType(), clang::ASTContext::getBlockPointerType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getDeclAlign(), clang::ASTContext::getExceptionObjectType(), GetFullTypeForDeclarator(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), HandleAddressSpaceTypeAttribute(), clang::Sema::HandleDeclarator(), HandleSizeof(), handleX86ForceAlignArgPointerAttr(), clang::Sema::IgnoredValueConversions(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::QualType::isCForbiddenLValueType(), isCompoundType(), clang::Declarator::isDeclarationOfFunction(), isIncompleteOrObjectType(), IsModifiable(), isObjectType(), clang::Sema::IsPointerConversion(), IsStandardConversion(), clang::Sema::LookupInlineAsmIdentifier(), LookupMemberExpr(), maybeSynthesizeBlockSignature(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::PerformMemberExprBaseConversion(), ResolveOverloadForDeduction(), clang::CodeGen::CodeGenFunction::OpaqueValueMappingData::shouldBindAsLValue(), TryReferenceInit(), TryReferenceInitializationCore(), and TryStaticCast().

bool clang::Type::isFundamentalType ( ) const
inline

Tests whether the type is categorized as a fundamental type.

Returns
True for types specified in C++0x [basic.fundamental].

Definition at line 5197 of file Type.h.

References isArithmeticType(), isEnumeralType(), and isVoidType().

Referenced by EvaluateUnaryTypeTrait().

bool clang::Type::isHalfType ( ) const
inline
bool clang::Type::isImage1dArrayT ( ) const
inline

Definition at line 5351 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImage1dBufferT ( ) const
inline

Definition at line 5355 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImage1dT ( ) const
inline

Definition at line 5347 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImage2dArrayT ( ) const
inline

Definition at line 5363 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImage2dT ( ) const
inline

Definition at line 5359 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImage3dT ( ) const
inline

Definition at line 5367 of file Type.h.

References isSpecificBuiltinType().

Referenced by isImageType().

bool clang::Type::isImageType ( ) const
inline
bool clang::Type::isIncompleteArrayType ( ) const
inline
bool clang::Type::isIncompleteOrObjectType ( ) const
inline

isIncompleteOrObjectType - Return true if this is an incomplete or object type, in other words, not a function type.

Definition at line 1536 of file Type.h.

References isFunctionType().

Referenced by clang::Sema::BuildQualifiedType(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckTemplateArgument(), clang::Sema::IsPointerConversion(), and TryStaticCast().

bool Type::isIncompleteType ( NamedDecl **  Def = nullptr) const

Def If non-NULL, and the type refers to some kind of declaration that can be completed (such as a C struct, C++ class, or Objective-C class), will be set to the declaration.

Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. isIncompleteType - Return true if this is an incomplete type. A type that can describe objects, but which lacks information needed to determine its size (e.g. void, or a fwd declared struct). Clients of this routine will need to determine if the size is actually required.

isIncompleteType - Return true if this is an incomplete type (C99 6.2.5p1)

  • a type that can describe objects, but which lacks information needed to determine its size.

Definition at line 1869 of file Type.cpp.

References getElementType(), clang::ObjCInterfaceDecl::hasDefinition(), clang::TagDecl::isCompleteDefinition(), clang::EnumDecl::isFixed(), isIncompleteType(), and isVoidType().

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::BuildArrayType(), clang::Sema::BuildUnaryTransformType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), checkRecordTypeForCapability(), clang::Sema::CheckSubscriptingKind(), CheckVecStepTraitOperandType(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), DiagnoseBadConversion(), DiagnoseForRangeVariableCopies(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), EvaluateUnaryTypeTrait(), clang::ento::ElementRegion::getAsArrayOffset(), clang::ento::MemRegion::getAsOffset(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getDeclAlign(), clang::Sema::getDestructorName(), clang::ento::TypedValueRegion::getExtent(), clang::ASTContext::getObjCEncodingTypeSize(), isConstantSizeType(), clang::QualType::isCXX11PODType(), isEnableIf(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), isIncompleteType(), isLiteralType(), isStandardLayoutType(), clang::QualType::isTriviallyCopyableType(), clang::CodeGen::CGCXXABI::isTypeInfoCalculable(), IsUserDefinedConversion(), clang::Sema::isValidVarArgType(), isZeroSized(), clang::Sema::LookupTemplateName(), matchTypes(), clang::Sema::RequireCompleteExprType(), ShouldDiagnoseUnusedDecl(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().

bool clang::Type::isInstantiationDependentType ( ) const
inline
bool clang::Type::isIntegerType ( ) const
inline

isIntegerType() does not include complex integers (a GCC extension). isComplexIntegerType() can be used to test for complex integers.

Definition at line 5448 of file Type.h.

References clang::IsEnumDeclComplete(), and clang::IsEnumDeclScoped().

Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnSEHExceptBlock(), AddObjCKeyValueCompletions(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), CheckIncrementDecrementOperand(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckLoopHintExpr(), checkOpenCLConditionVector(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckVectorCast(), clang::Sema::CheckVectorOperands(), create_dispatch_once(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::DiagnoseAssignmentEnum(), DiagnoseBadFunctionCast(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), EvaluateBuiltinClassifyType(), expandStringLiteral(), extractStringLiteralCharacter(), clang::ArraySubscriptExpr::getBase(), clang::ArraySubscriptExpr::getIdx(), clang::UserDefinedLiteral::getLiteralOperatorKind(), handleIntegerToComplexFloatConversion(), handleIntToFloatConversion(), handleOwnershipAttr(), HandleVectorSizeAttr(), hasIntegerRepresentation(), clang::IntegerLiteral::IntegerLiteral(), isAcceptableMethodMismatch(), clang::Sema::IsIntegralPromotion(), isIntOrBool(), isNullPointerConstantForConversion(), clang::InitListExpr::isStringLiteralInit(), mergeEnumWithInteger(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), and SemaBuiltinAnnotation().

bool clang::Type::isIntegralOrEnumerationType ( ) const
inline

Determine whether this type is an integral or enumeration type.

Definition at line 5476 of file Type.h.

References clang::IsEnumDeclComplete().

Referenced by clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::AddInitializerToDecl(), clang::ento::SimpleConstraintManager::assumeAuxForSymbol(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckCaseExpression(), clang::Sema::CheckConvertedConstantExpression(), CheckICE(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckTemplateArgument(), DecodeTypeFromStr(), emitReplacement(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateBuiltinConstantP(), EvaluateCPlusPlus11IntegralConstantExpr(), EvaluateIntegerOrLValue(), clang::Sema::FinalizeDeclaration(), findCompleteObject(), getAbsoluteValueKind(), clang::ento::BasicValueFactory::getAPSIntType(), clang::ASTContext::getObjCEncodingTypeSize(), clang::ento::ProgramState::getSValAsScalarOrLoc(), handleModeAttr(), clang::ento::SValBuilder::haveSameType(), clang::ObjCSubscriptRefExpr::isArraySubscriptRefExpr(), clang::Expr::isKnownToHaveBooleanValue(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), clang::ento::SValBuilder::makeZeroVal(), clang::Sema::ICEConvertDiagnoser::match(), clang::ento::ExprEngine::processBranch(), RecoverCastedSymbol(), TryReinterpretCast(), TryStaticCast(), clang::Sema::VerifyBitField(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), and clang::ento::ExprEngine::VisitIncrementDecrementOperator().

bool Type::isIntegralOrUnscopedEnumerationType ( ) const
bool Type::isIntegralType ( ASTContext Ctx) const

Determine whether this type is an integral type.

This routine determines whether the given type is an integral type per C++ [basic.fundamental]p7. Although the C standard does not define the term "integral type", it has a similar term "integer type", and in C++ the two terms are equivalent. However, C's "integer type" includes enumeration types, while C++'s "integer type" does not. The ASTContext parameter is used to determine whether we should be following the C or C++ rules when determining whether this type is an integral/integer type.

For cases where C permits "an integer type" and C++ permits "an integral type", use this routine.

For cases where C permits "an integer type" and C++ permits "an integral or enumeration type", use isIntegralOrEnumerationType() instead.

Parameters
CtxThe context in which this type occurs.
Returns
true if the type is considered an integral type, false otherwise.

Definition at line 1602 of file Type.cpp.

References clang::ASTContext::getLangOpts().

Referenced by clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnVariableDeclarator(), checkIntToPointerCast(), clang::Sema::CheckObjCARCConversion(), create_OSAtomicCompareAndSwap(), DiagnoseBinOpPrecedence(), EvaluateUnaryTypeTrait(), clang::StandardConversionSequence::getNarrowingKind(), getNextLargerIntegralType(), handleVecTypeHint(), clang::Expr::IgnoreParenNoopCasts(), clang::Sema::IsIntegralPromotion(), isRepresentableIntegerValue(), IsStandardConversion(), TryReinterpretCast(), TryStaticCast(), and tryVectorConvertAndSplat().

bool Type::isInterfaceType ( ) const

Definition at line 372 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait().

bool Type::isLinkageValid ( ) const

True if the computed linkage is valid. Used for consistency checking. Should always return true.

Definition at line 3309 of file Type.cpp.

References computeLinkageInfo(), getCanonicalTypeInternal(), clang::LinkageInfo::getLinkage(), and TypeBits.

bool Type::isLiteralType ( const ASTContext Ctx) const
bool clang::Type::isLValueReferenceType ( ) const
inline
bool clang::Type::isMemberDataPointerType ( ) const
inline
bool clang::Type::isMemberFunctionPointerType ( ) const
inline
bool clang::Type::isMemberPointerType ( ) const
inline
bool clang::Type::isNonOverloadPlaceholderType ( ) const
inline

isNonOverloadPlaceholderType - Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType.

Definition at line 5420 of file Type.h.

Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::BuildCXXNew(), clang::Sema::checkPseudoObjectAssignment(), and clang::Sema::DeduceAutoType().

bool clang::Type::isNullPtrType ( ) const
inline
bool Type::isObjCARCBridgableType ( ) const

Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an.

Definition at line 3570 of file Type.cpp.

References isBlockPointerType(), and isObjCObjectPointerType().

Referenced by clang::Sema::BuildObjCBridgedCast(), and classifyTypeForARCConversion().

bool Type::isObjCARCImplicitlyUnretainedType ( ) const

Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong.

Definition at line 3512 of file Type.cpp.

References getCanonicalTypeInternal(), clang::QualType::getTypePtr(), and isObjCLifetimeType().

Referenced by checkARCPropertyImpl(), getObjCARCImplicitLifetime(), inferARCLifetimeForPointee(), inferARCWriteback(), and clang::Sema::MaybeBindToTemporary().

bool Type::isObjCBoxableRecordType ( ) const

Definition at line 367 of file Type.cpp.

bool clang::Type::isObjCBuiltinType ( ) const
inline
bool Type::isObjCClassOrClassKindOfType ( ) const

Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>.

Unlike isObjCIdOrObjectKindOfType, there is no relevant bound here because Objective-C's type system cannot express "a class object for a subclass of NSFoo".

Definition at line 495 of file Type.cpp.

References clang::ObjCObjectPointerType::isKindOfType(), clang::ObjCObjectPointerType::isObjCClassType(), and clang::ObjCObjectPointerType::isObjCQualifiedClassType().

Referenced by clang::Sema::BuildInstanceMessage().

bool clang::Type::isObjCClassType ( ) const
inline
bool Type::isObjCIdOrObjectKindOfType ( const ASTContext ctx,
const ObjCObjectType *&  bound 
) const

Whether the type is Objective-C 'id' or a __kindof type of an object type, e.g., __kindof NSView * or __kindof id <NSCopying>.

Parameters
boundWill be set to the bound on non-id subtype types, which will be (possibly specialized) Objective-C class type, or null for 'id.

Definition at line 469 of file Type.cpp.

References getAs(), clang::ObjCObjectPointerType::getObjectType(), clang::ObjCObjectPointerType::isKindOfType(), clang::ObjCObjectPointerType::isObjCClassType(), clang::ObjCObjectPointerType::isObjCIdType(), clang::ObjCObjectPointerType::isObjCQualifiedClassType(), and clang::ObjCObjectType::stripObjCKindOfTypeAndQuals().

Referenced by clang::Sema::BuildInstanceMessage().

bool clang::Type::isObjCIdType ( ) const
inline
bool Type::isObjCIndependentClassType ( ) const

Definition at line 3537 of file Type.cpp.

Referenced by clang::Sema::ActOnMethodDeclaration().

bool Type::isObjCIndirectLifetimeType ( ) const

Definition at line 3547 of file Type.cpp.

References isObjCLifetimeType().

bool Type::isObjCLifetimeType ( ) const
bool Type::isObjCNSObjectType ( ) const

Definition at line 3532 of file Type.cpp.

Referenced by clang::ASTContext::isObjCNSObjectType(), and isObjCRetainableType().

bool clang::Type::isObjCObjectOrInterfaceType ( ) const
inline
bool clang::Type::isObjCObjectPointerType ( ) const
inline

Definition at line 5304 of file Type.h.

Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::actOnObjCTypeParam(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), AddObjCKeyValueCompletions(), AdjustFunctionParmAndArgTypesForDeduction(), adjustReturnValue(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildQualifiedType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAdditionOperands(), checkArithmeticOnObjCPointer(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompareOperands(), checkFormatStringExpr(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckMessageArgumentTypes(), checkMethodFamilyMismatch(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), CheckObjCCollectionLiteralElement(), checkObjCDealloc(), checkObjCPointerIntrospection(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::DiagnoseAssignmentResult(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), emitBadConversionNotes(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), clang::CodeGen::CodeGenFunction::EnterCXXTryStmt(), clang::Sema::FindCompositeObjCPointerType(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::ASTContext::getByrefLifetime(), GetGCAttrTypeForType(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), clang::ASTContext::getUnqualifiedObjCPointerType(), handleObjCGCTypeAttr(), handleObjCIndependentClass(), handleObjCMethodFamilyAttr(), hasIsEqualMethod(), hasObjCPointerRepresentation(), hasPointerRepresentation(), isAnyPointerType(), clang::ento::cocoa::isCocoaObjectRef(), isObjCARCBridgableType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), isValidSubjectOfNSAttribute(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclTypes(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareCastToObjCObjectPointer(), clang::TreeTransform< Derived >::RebuildCXXForRangeStmt(), clang::Sema::SelectorsForTypoCorrection(), clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec(), TryConstCast(), TryReinterpretCast(), TryStaticCast(), TypeIsInnerPointer(), validateBoxingMethod(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

bool clang::Type::isObjCObjectType ( ) const
inline
bool clang::Type::isObjCQualifiedClassType ( ) const
inline
bool clang::Type::isObjCQualifiedIdType ( ) const
inline
bool Type::isObjCQualifiedInterfaceType ( ) const

Definition at line 1451 of file Type.cpp.

References getAsObjCQualifiedInterfaceType().

bool Type::isObjCRetainableType ( ) const
bool clang::Type::isObjCSelType ( ) const
inline
bool clang::Type::isObjectType ( ) const
inline

Determine whether this type is an object type.

Definition at line 1541 of file Type.h.

References isFunctionType(), isReferenceType(), and isVoidType().

Referenced by EvaluateBinaryTypeTrait(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), and GetFullTypeForDeclarator().

bool clang::Type::isOpenCLSpecificType ( ) const
inline
bool clang::Type::isOverloadableType ( ) const
inline

Determines whether this is a type for which one can define an overloaded operator.

Definition at line 5502 of file Type.h.

References isDependentType(), isEnumeralType(), and isRecordType().

Referenced by clang::Sema::BuildBinOp(), clang::Sema::BuildUnaryOp(), and clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr().

bool clang::Type::isPlaceholderType ( ) const
inline

isPlaceholderType - Test for a type which does not represent an actual type-system type but is instead used as a placeholder for various convenient purposes within Clang. All such types are BuiltinTypes.

Definition at line 5400 of file Type.h.

Referenced by clang::Sema::BuildCXXTypeId(), clang::Sema::BuildExpressionTrait(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CreateGenericSelectionExpr(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), and clang::Expr::hasPlaceholderType().

bool clang::Type::isPointerType ( ) const
inline

Definition at line 5232 of file Type.h.

Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnVariableDeclarator(), AdjustFunctionParmAndArgTypesForDeduction(), BuildCXXCastArgument(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::CheckAdditionOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), CheckForDanglingReferenceOrPointer(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckNonTypeTemplateParameterType(), checkPointerIntegerMismatch(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), clang::Sema::CreateBuiltinUnaryOp(), decomposeTypeForEH(), clang::Sema::DeduceTemplateArguments(), diagnoseObjCARCConversion(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), EmitDynamicCastToNull(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), EvalAddr(), clang::ento::SValBuilder::evalCast(), EvaluateBuiltinClassifyType(), EvaluateBuiltinConstantP(), EvaluateObjectArgument(), EvaluateUnaryTypeTrait(), ExprLooksBoolean(), clang::Sema::FindCompositePointerType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), GenOpenCLArgMetadata(), clang::QualType::getBaseTypeIdentifier(), clang::CodeGen::CodeGenModule::GetConstantArrayFromStringLiteral(), getCoreType(), clang::CXXDeleteExpr::getDestroyedType(), clang::UserDefinedLiteral::getLiteralOperatorKind(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCAttrKind(), getOpenCLKernelParameterType(), getScalarZeroExpressionForType(), clang::CXXUuidofExpr::GetUuidAttrOfType(), handleArgumentWithTypeTagAttr(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), handleObjCReturnsInnerPointerAttr(), hasCppPointerType(), hasPointerRepresentation(), clang::Expr::IgnoreParenNoopCasts(), isAnyPointerType(), clang::ExtVectorElementExpr::isArrow(), isAutoCastType(), isCompoundType(), isConsumableType(), isIntegerLikeType(), isLibstdcxxPointerReturnFalseHack(), clang::Expr::isOBJCGCCandidate(), clang::Sema::isObjCPointerConversion(), clang::Sema::IsPointerConversion(), isPointerOrRef(), IsTypeModifiable(), isValidSubjectOfCFAttribute(), IsVoidStarType(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeTypedefNameDecl(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PrepareCastToObjCObjectPointer(), ResolveOverloadForDeduction(), rewriteBuiltinFunctionDecl(), SemaBuiltinCallWithStaticChain(), setObjCGCLValueClass(), TryConstCast(), TypeIsInnerPointer(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

bool Type::isPromotableIntegerType ( ) const
bool Type::isRealFloatingType ( ) const
bool Type::isRealType ( ) const
bool clang::Type::isRecordType ( ) const
inline

Definition at line 5289 of file Type.h.

Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCallExpr(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberPointerType(), buildMemcpyForAssignmentOp(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildVAArgExpr(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckMemberPointerConversion(), CheckMoveOnConstruction(), CheckObjCCollectionLiteralElement(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::checkVariadicArgument(), ClassifyTemporary(), classifyTypeForARCConversion(), clang::Sema::CollectIvarsToConstructOrDestruct(), clang::CXXBindTemporaryExpr::Create(), createReferenceTemporary(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenModule::EmitConstantInit(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), Evaluate(), EvaluateInPlace(), EvaluateRecord(), EvaluateTemporary(), FastEvaluateAsRValue(), clang::Sema::FindAllocationFunctions(), FindConversionForRefInit(), findSubobject(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::getByrefLifetime(), clang::QualType::getNonLValueExprType(), getOpenCLKernelParameterType(), getSelfInitExpr(), clang::Sema::getTypeName(), clang::FunctionDecl::hasUnusedResultAttr(), InitCatchParam(), clang::InitializationSequence::InitializeFrom(), IsAcceptableNonMemberOperatorCandidate(), clang::Sema::IsBlockPointerConversion(), isCARCBridgableType(), isCompoundType(), clang::Expr::isConstantInitializer(), clang::Sema::isCopyElisionCandidate(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), isObjCReceiverType(), isOverloadableType(), clang::Sema::IsPointerConversion(), isRecordType(), IsStandardConversion(), isTrackedVar(), LookupMemberExpr(), clang::Sema::PerformObjectMemberConversion(), clang::TreeTransform< Derived >::RebuildMemberExpr(), ResolveOverloadedFunctionForReferenceBinding(), setObjCGCLValueClass(), clang::Expr::skipRValueSubobjectAdjustments(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryConstCast(), tryDiagnoseOverloadedCast(), TryListConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitInitListExpr(), and warnAboutAmbiguousFunction().

bool clang::Type::isReferenceType ( ) const
inline

Definition at line 5241 of file Type.h.

Referenced by clang::Sema::ActOnIvar(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), BuildImplicitMemberInitializer(), clang::Sema::buildInitCaptureField(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::BuildQualifiedType(), clang::canDynamicCastThrow(), captureInBlock(), captureInLambda(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), CheckConvertedConstantExpression(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFieldDecl(), CheckForDanglingReferenceOrPointer(), CheckForReference(), CheckLValueConstantExpression(), clang::Sema::CheckNonTypeTemplateParameterType(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), clang::Sema::CompareReferenceRelationship(), createObjCPropertyGetter(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), DiagnoseForRangeReferenceVariableCopies(), DiagnoseForRangeVariableCopies(), diagnoseListInit(), DiagnoseUninitializedReference(), DoMarkVarDeclReferenced(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenModule::EmitConstantExpr(), clang::CodeGen::CodeGenModule::EmitConstantInit(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), EmitGlobalVarDeclLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), clang::ento::SValBuilder::evalCast(), clang::Expr::EvaluateAsInitializer(), EvaluateBuiltinClassifyType(), EvaluateUnaryTypeTrait(), EvalVal(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GetAddrOfBlockDecl(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), GetNumNonZeroBytesInInit(), clang::CXXUuidofExpr::GetUuidAttrOfType(), handleObjCReturnsInnerPointerAttr(), hasPointerRepresentation(), clang::Expr::HasSideEffects(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), isAutoCastType(), isCallbackArg(), isCompoundType(), isConstantEmittableObjectType(), clang::Expr::isConstantInitializer(), isConsumableType(), isLiteralType(), clang::ento::Loc::isLocType(), isObjectType(), isPointerOrRef(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::CodeGen::CodeGenModule::isTypeConstant(), clang::Expr::isUnusedResultAWarning(), clang::Sema::isValidPointerAttrType(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), PerformReturnAdjustment(), clang::APValue::printPretty(), clang::ReferenceType::ReferenceType(), clang::Expr::setType(), TryCopyInitialization(), TryListConversion(), TryListInitialization(), TryReferenceInit(), TryRefInitWithConversionFunction(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl(), and warnAboutAmbiguousFunction().

bool clang::Type::isRValueReferenceType ( ) const
inline
bool clang::Type::isSamplerT ( ) const
inline
bool clang::Type::isScalarType ( ) const
inline
bool Type::isSignedIntegerOrEnumerationType ( ) const
bool Type::isSignedIntegerType ( ) const

isSignedIntegerType - Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char, signed char, short, int, long..], or an enum decl which has a signed representation.

isSignedIntegerType - Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char, signed char, short, int, long..], an enum decl which has a signed representation

Definition at line 1683 of file Type.cpp.

Referenced by clang::Sema::CheckCompatibleReinterpretCast(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), EvaluateUnaryTypeTrait(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateSEHFilterFunction(), clang::ASTContext::getPromotedIntegerType(), handleModeAttr(), clang::Sema::IsIntegralPromotion(), isOverflowingIntegerType(), clang::ASTContext::isPromotableBitField(), rewriteToNumericBoxedExpression(), and clang::ento::ExprEngine::VisitOffsetOfExpr().

bool clang::Type::isSpecificBuiltinType ( unsigned  K) const
inline
bool clang::Type::isSpecificPlaceholderType ( unsigned  K) const
inline

isSpecificPlaceholderType - Test for a specific placeholder type.

Definition at line 5413 of file Type.h.

References clang::BuiltinType::isPlaceholderTypeKind().

Referenced by clang::CallExpr::getCallReturnType(), and clang::ObjCPropertyRefExpr::ObjCPropertyRefExpr().

bool Type::isSpecifierType ( ) const

isSpecifierType - Returns true if this type can be represented by some set of type specifiers.

Definition at line 2307 of file Type.cpp.

References getTypeClass().

Referenced by GetBaseType().

bool Type::isStandardLayoutType ( ) const

Test if this type is a standard-layout type. (C++0x [basic.type]p9)

Definition at line 2176 of file Type.cpp.

References getAs(), getBaseElementTypeUnsafe(), isDependentType(), isIncompleteType(), isScalarType(), and isVectorType().

Referenced by EvaluateUnaryTypeTrait().

bool Type::isStructureOrClassType ( ) const
bool Type::isStructureType ( ) const

Definition at line 362 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait(), and clang::Sema::MergeTypedefNameDecl().

bool clang::Type::isTemplateTypeParmType ( ) const
inline

Definition at line 5389 of file Type.h.

bool clang::Type::isUndeducedType ( ) const
inline
bool Type::isUnionType ( ) const
bool Type::isUnsignedIntegerOrEnumerationType ( ) const

Determines whether this is an integer type that is unsigned or an enumeration types whose underlying type is a unsigned integer type.

Definition at line 1739 of file Type.cpp.

Referenced by clang::Sema::CheckTemplateArgument(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), HandleIntToIntCast(), hasUnsignedIntegerRepresentation(), and clang::ento::SValBuilder::makeIntVal().

bool Type::isUnsignedIntegerType ( ) const

isUnsignedIntegerType - Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true for _Bool], or an enum decl which has an unsigned representation.

isUnsignedIntegerType - Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true for _Bool], an enum decl which has an unsigned representation

Definition at line 1723 of file Type.cpp.

Referenced by clang::Sema::ActOnStringLiteral(), clang::Sema::CheckCompatibleReinterpretCast(), EvaluateUnaryTypeTrait(), expandStringLiteral(), extractStringLiteralCharacter(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getIntegerTypeOrder(), clang::ASTContext::getPromotedIntegerType(), and clang::Sema::IsIntegralPromotion().

bool clang::Type::isVariableArrayType ( ) const
inline
bool clang::Type::isVariablyModifiedType ( ) const
inline
bool clang::Type::isVectorType ( ) const
inline

Definition at line 5298 of file Type.h.

Referenced by clang::Sema::ActOnCastExpr(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildVectorLiteral(), clang::Sema::CheckAdditionOperands(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSubtractionOperands(), CheckVecStepTraitOperandType(), clang::Sema::CheckVectorCast(), ConvertTypeToDiagnosticString(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CXXCheckConditionalOperands(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), Evaluate(), EvaluateVector(), handleTransparentUnionAttr(), clang::QualType::isCXX11PODType(), clang::ABIInfo::isHomogeneousAggregate(), isIntegerLikeType(), clang::Sema::isLaxVectorConversion(), isLiteralType(), clang::Sema::IsPointerConversion(), isStandardLayoutType(), isTrackedVar(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), IsVectorConversion(), clang::Expr::refersToVectorElement(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), TryReinterpretCast(), and clang::ento::ExprEngine::VisitInitListExpr().

bool clang::Type::isVisibilityExplicit ( ) const
inline

Return true if the visibility was explicitly set is the code.

Definition at line 1903 of file Type.h.

References getLinkageAndVisibility(), and clang::LinkageInfo::isVisibilityExplicit().

bool Type::isVoidPointerType ( ) const
bool clang::Type::isVoidType ( ) const
inline

Definition at line 5426 of file Type.h.

Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnStartOfFunctionDef(), AddObjCKeyValueCompletions(), AddOrdinaryNameResults(), clang::Sema::BuildArrayType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildFunctionType(), clang::Sema::BuildInstanceMessage(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalVoidType(), clang::Sema::CheckConstexprFunctionBody(), clang::Sema::CheckCXXThrowOperand(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionDeclaration(), CheckIndirectionOperand(), clang::comments::Sema::checkReturnsCommand(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTransparentUnionArgumentConstraints(), CheckUnaryTypeTraitTypeCompleteness(), clang::Sema::CheckVariableDeclarationType(), CheckVecStepTraitOperandType(), ClassifyConditional(), classifyTypeForARCConversion(), clang::Sema::CodeCompleteObjCMethodDecl(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefaultLvalueConversion(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), EvalAddr(), clang::ento::StoreManager::evalDynamicCast(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), EvaluateVoid(), EvalVal(), FinishForRangeVarDecl(), FormatFunctionParameter(), clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), HandleFunctionCall(), handleGlobalAttr(), HandleSizeof(), handleWarnUnusedResult(), clang::Sema::IgnoredValueConversions(), clang::CXXDynamicCastExpr::isAlwaysNull(), isCARCBridgableType(), clang::QualType::isCForbiddenLValueType(), isDispatchBlock(), isFundamentalType(), isIncompleteType(), isLiteralType(), clang::Expr::isNullPointerConstant(), isObjectType(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), clang::ento::cocoa::isRefType(), clang::Expr::isUnusedResultAWarning(), clang::Sema::isValidVarArgType(), IsVoidStarType(), clang::analyze_format_string::ArgType::matchesType(), clang::consumed::ConsumedAnalyzer::run(), shouldBeModeledWithNoOp(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstParmVarDecl(), TryStaticCast(), and warnAboutAmbiguousFunction().

bool Type::isWideCharType ( ) const
void clang::Type::setContainsUnexpandedParameterPack ( bool  PP = true)
inlineprotected

Definition at line 1481 of file Type.h.

References TypeBits.

Referenced by clang::ObjCObjectType::ObjCObjectType().

void clang::Type::setDependent ( bool  D = true)
inlineprotected

Definition at line 1472 of file Type.h.

References TypeBits.

Referenced by clang::ObjCObjectType::ObjCObjectType().

void clang::Type::setInstantiationDependent ( bool  D = true)
inlineprotected

Definition at line 1477 of file Type.h.

References TypeBits.

Referenced by clang::ObjCObjectType::ObjCObjectType().

void clang::Type::setVariablyModified ( bool  VM = true)
inlineprotected

Definition at line 1479 of file Type.h.

References TypeBits.

Type* clang::Type::this_ ( )
inlineprotected

Definition at line 1454 of file Type.h.

Friends And Related Function Documentation

friend class ASTContext
friend

Definition at line 1470 of file Type.h.

friend class ASTReader
friend

Definition at line 1957 of file Type.h.

friend class ASTWriter
friend

Definition at line 1958 of file Type.h.

template<class T >
friend class TypePropertyCache
friend

Definition at line 1450 of file Type.h.

Member Data Documentation

union { ... }
ArrayTypeBitfields clang::Type::ArrayTypeBits
AttributedTypeBitfields clang::Type::AttributedTypeBits

Definition at line 1434 of file Type.h.

Referenced by clang::AttributedType::getAttrKind().

AutoTypeBitfields clang::Type::AutoTypeBits

Definition at line 1435 of file Type.h.

Referenced by clang::AutoType::isDecltypeAuto().

BuiltinTypeBitfields clang::Type::BuiltinTypeBits

Definition at line 1436 of file Type.h.

Referenced by clang::BuiltinType::BuiltinType(), and clang::BuiltinType::getKind().

FunctionTypeBitfields clang::Type::FunctionTypeBits
ObjCObjectTypeBitfields clang::Type::ObjCObjectTypeBits
ReferenceTypeBitfields clang::Type::ReferenceTypeBits
TypeBitfields clang::Type::TypeBits
TypeWithKeywordBitfields clang::Type::TypeWithKeywordBits
VectorTypeBitfields clang::Type::VectorTypeBits

The documentation for this class was generated from the following files: