clang 10.0.0git

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

The base class of the type hierarchy. More...

`#include "clang/AST/Type.h"`

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

## Classes
class | ArrayTypeBitfields
class | AttributedTypeBitfields
class | AutoTypeBitfields
class | BuiltinTypeBitfields
class | ConstantArrayTypeBitfields
class | DependentTemplateSpecializationTypeBitfields
class | ElaboratedTypeBitfields
class | FunctionTypeBitfields
| FunctionTypeBitfields store various bits belonging to FunctionProtoType. More...
class | ObjCObjectTypeBitfields
class | PackExpansionTypeBitfields
class | ReferenceTypeBitfields
class | SubstTemplateTypeParmPackTypeBitfields
class | TemplateSpecializationTypeBitfields
class | TypeWithKeywordBitfields
class | VectorTypeBitfields

## Public Types
enum | TypeClass
enum | ScalarTypeKind { STK_CPointer, STK_BlockPointer, STK_ObjCObjectPointer, STK_MemberPointer, STK_Bool, STK_Integral, STK_Floating, STK_IntegralComplex, STK_FloatingComplex, STK_FixedPoint }

## Public Member Functions
| Type (const Type &)=delete
| Type (Type &&)=delete
Type & | operator= (const Type &)=delete
Type & | operator= (Type &&)=delete
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
| Determines if this type would be canonical if it had no further qualification. More...
QualType | getLocallyUnqualifiedSingleStepDesugaredType () const
| Pull a single level of sugar off of this locally-unqualified type. More...
bool | isIncompleteType (NamedDecl **Def=nullptr) const
| Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. More...
bool | isIncompleteOrObjectType () const
| Return true if this is an incomplete or object type, in other words, not a function type. More...
bool | isObjectType () const
| Determine whether this type is an object type. More...
bool | isLiteralType (const ASTContext &Ctx) const
| Return true if this is a literal type (C++11 [basic.types]p10) More...
bool | isStandardLayoutType () const
| Test if this type is a standard-layout type. More...
bool | isBuiltinType () const
| Helper methods to distinguish type categories. More...
bool | isSpecificBuiltinType (unsigned K) const
| Test for a particular builtin type. More...
bool | isPlaceholderType () const
| 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. More...
const BuiltinType * | getAsPlaceholderType () const
bool | isSpecificPlaceholderType (unsigned K) const
| Test for a specific placeholder type. More...
bool | isNonOverloadPlaceholderType () const
| Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType. More...
bool | isIntegerType () const
| isIntegerType() does not include complex integers (a GCC extension). More...
bool | isEnumeralType () const
bool | isScopedEnumeralType () const
| Determine whether this type is a scoped enumeration type. More...
bool | isBooleanType () const
bool | isCharType () const
bool | isWideCharType () const
bool | isChar8Type () 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 (const 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 | isUnscopedEnumerationType () const
bool | isRealFloatingType () const
| Floating point categories. More...
bool | isComplexType () const
| isComplexType() does not include complex integers (a GCC extension). More...
bool | isAnyComplexType () const
bool | isFloatingType () const
bool | isHalfType () const
bool | isFloat16Type () const
bool | isFloat128Type () 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 | isObjectPointerType () const
bool | isFunctionPointerType () const
bool | isFunctionReferenceType () 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 | isDependentAddressSpaceType () const
bool | isObjCObjectPointerType () const
bool | isObjCRetainableType () const
bool | isObjCLifetimeType () const
| Returns true if objects of this type have lifetime semantics under ARC. More...
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 | isDecltypeType () const
bool | isObjCInertUnsafeUnretainedType () const
| Was this type written with the special inert-in-ARC __unsafe_unretained qualifier? More...
bool | 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>. More...
bool | isObjCClassType () const
bool | isObjCClassOrClassKindOfType () const
| Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>. More...
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 | isNothrowT () const
bool | isAlignValT () const
bool | isStdByteType () const
bool | isAtomicType () const
bool | isUndeducedAutoType () const
bool | isImageType () const
bool | isSamplerT () const
bool | isEventT () const
bool | isClkEventT () const
bool | isQueueT () const
bool | isReserveIDT () const
bool | isOCLIntelSubgroupAVCType () const
bool | isOCLExtOpaqueType () const
bool | isPipeType () const
bool | isOpenCLSpecificType () const
bool | isObjCARCImplicitlyUnretainedType () const
| Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong. More...
Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const
| Return the implicit lifetime for this type, which must not be dependent. More...
ScalarTypeKind | getScalarTypeKind () const
| Given that this is a scalar type, classify it. More...
bool | isDependentType () const
| Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]). More...
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 or similar 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
| Whether this type is represented natively as a pointer. More...
bool | hasObjCPointerRepresentation () const
| Whether this type can represent an objective pointer type for the purpose of GC'ability. More...
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 RecordType * | getAsStructureType () const
const RecordType * | getAsUnionType () const
| NOTE: getAs*ArrayType are methods on ASTContext. More...
const ComplexType * | getAsComplexIntegerType () const
const ObjCObjectType * | getAsObjCInterfaceType () const
const ObjCObjectPointerType * | getAsObjCInterfacePointerType () const
const ObjCObjectPointerType * | getAsObjCQualifiedIdType () const
const ObjCObjectPointerType * | getAsObjCQualifiedClassType () const
const ObjCObjectType * | getAsObjCQualifiedInterfaceType () const
CXXRecordDecl * | 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. More...
RecordDecl * | getAsRecordDecl () const
| Retrieves the RecordDecl this type refers to. More...
TagDecl * | 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. More...
const CXXRecordDecl * | getPointeeCXXRecordDecl () const
| If this is a pointer or reference to a RecordType, return the CXXRecordDecl that the type refers to. More...
DeducedType * | getContainedDeducedType () const
| Get the DeducedType whose type will be deduced for a variable with an initializer of this type. More...
AutoType * | getContainedAutoType () const
| Get the AutoType whose type will be deduced for a variable with an initializer of this type. More...
bool | hasAutoForTrailingReturnType () const
| Determine whether this type was written with a leading 'auto' corresponding to a trailing return type (possibly for a nested function type within a pointer to function type or similar). More...
template<typename T >
const T * | getAs () const
| Member-template getAs<specific type>'. More...
template<typename T >
const T * | getAsAdjusted () const
| Member-template getAsAdjusted<specific type>. More...
const ArrayType * | getAsArrayTypeUnsafe () const
| A variant of getAs<> for array types which silently discards qualifiers from the outermost type. More...
template<typename T >
const T * | castAs () const
| Member-template castAs<specific type>. More...
const ArrayType * | castAsArrayTypeUnsafe () const
| A variant of castAs<> for array type which silently discards qualifiers from the outermost type. More...
bool | hasAttr (attr::Kind AK) const
| Determine whether this type had the specified attribute applied to it (looking through top-level type sugar). More...
const Type * | getBaseElementTypeUnsafe () const
| Get the base element type of this type, potentially discarding type qualifiers. More...
const Type * | getArrayElementTypeNoTypeQual () const
| If this is an array type, return the element type of the array, potentially with type qualifiers missing. More...
const Type * | getPointeeOrArrayElementType () const
| If this is a pointer type, return the pointee type. More...
QualType | getPointeeType () const
| If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee. More...
const Type * | getUnqualifiedDesugaredType () const
| Return the specified type with any "sugar" removed from the type, removing any typedefs, typeofs, etc., as well as any qualifiers. More...
bool | isPromotableIntegerType () const
| More type predicates useful for type checking/promotion. More...
bool | isSignedIntegerType () const
| 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. More...
bool | isUnsignedIntegerType () const
| 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. More...
bool | isSignedIntegerOrEnumerationType () const
| Determines whether this is an integer type that is signed or an enumeration types whose underlying type is a signed integer type. More...
bool | isUnsignedIntegerOrEnumerationType () const
| Determines whether this is an integer type that is unsigned or an enumeration types whose underlying type is a unsigned integer type. More...
bool | isFixedPointType () const
| Return true if this is a fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. More...
bool | isFixedPointOrIntegerType () const
| Return true if this is a fixed point or integer type. More...
bool | isSaturatedFixedPointType () const
| Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. More...
bool | isUnsaturatedFixedPointType () const
| Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. More...
bool | isSignedFixedPointType () const
| Return true if this is a fixed point type that is signed according to ISO/IEC JTC1 SC22 WG14 N1169. More...
bool | isUnsignedFixedPointType () const
| Return true if this is a fixed point type that is unsigned according to ISO/IEC JTC1 SC22 WG14 N1169. More...
bool | isConstantSizeType () const
| Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. More...
bool | isSpecifierType () const
| Returns true if this type can be represented by some set of type specifiers. More...
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. More...
Optional< NullabilityKind > | getNullability (const ASTContext &context) const
| Determine the nullability of the given type. More...
bool | canHaveNullability (bool ResultIfUnknown=true) const
| Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type. More...
Optional< ArrayRef< QualType > > | 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. More...
bool | acceptsObjCTypeParams () const
| Determines if this is an ObjC interface type that may accept type parameters. More...
const char * | getTypeClassName () const
QualType | getCanonicalTypeInternal () const
CanQualType | getCanonicalTypeUnqualified () const
void | dump () const
void | dump (llvm::raw_ostream &OS) const
template<>
const TypedefType * | getAs () 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 TemplateSpecializationType * | getAs () 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 AttributedType * | getAs () const
| This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type. More...

## Protected Types
enum | { NumTypeWithKeywordBits = 8 }

## Protected Member Functions
| Type (TypeClass tc, QualType canon, bool Dependent, bool InstantiationDependent, bool VariablyModified, bool ContainsUnexpandedParameterPack)
Type * | this_ ()
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
ConstantArrayTypeBitfields ConstantArrayTypeBits
AttributedTypeBitfields AttributedTypeBits
AutoTypeBitfields AutoTypeBits
BuiltinTypeBitfields BuiltinTypeBits
FunctionTypeBitfields FunctionTypeBits
ObjCObjectTypeBitfields ObjCObjectTypeBits
ReferenceTypeBitfields ReferenceTypeBits
TypeWithKeywordBitfields TypeWithKeywordBits
ElaboratedTypeBitfields ElaboratedTypeBits
VectorTypeBitfields VectorTypeBits
SubstTemplateTypeParmPackTypeBitfields SubstTemplateTypeParmPackTypeBits
TemplateSpecializationTypeBitfields TemplateSpecializationTypeBits
DependentTemplateSpecializationTypeBitfields DependentTemplateSpecializationTypeBits
PackExpansionTypeBitfields PackExpansionTypeBits
}; |

## Friends
template<class T >
class | TypePropertyCache
class | ASTContext
class | ASTReader
class | ASTWriter
template<class T >
class | serialization::AbstractTypeReader
template<class T >
class | serialization::AbstractTypeWriter

## Detailed Description

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 1450 of file Type.h.

## Member Enumeration Documentation

## ◆ anonymous enum

anonymous enum
| protected

Enumerator
NumTypeWithKeywordBits |

Definition at line 1642 of file Type.h.

## ◆ ScalarTypeKind

enum clang::Type::ScalarTypeKind

Enumerator
STK_CPointer |
STK_BlockPointer |
STK_ObjCObjectPointer |
STK_MemberPointer |
STK_Bool |
STK_Integral |
STK_Floating |
STK_IntegralComplex |
STK_FloatingComplex |
STK_FixedPoint |

Definition at line 2132 of file Type.h.

## ◆ TypeClass

enum clang::Type::TypeClass

Definition at line 1452 of file Type.h.

## Constructor & Destructor Documentation

## ◆ Type() [1/3]

clang::Type::Type | ( | TypeClass | tc,
|  | QualType | canon,
|  | bool | Dependent,
|  | bool | InstantiationDependent,
|  | bool | VariablyModified,
|  | bool | ContainsUnexpandedParameterPack
| ) |  |
| inline protected

Definition at line 1831 of file Type.h.

References clang::NoLinkage.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments(), clang::CodeGen::CGDebugInfo::finalize(), clang::TemplateTypeParmType::getIdentifier(), getNullability(), isObjCClassOrClassKindOfType(), clang::DependentSizedArrayType::Profile(), clang::DependentSizedExtVectorType::Profile(), and clang::DependentVectorType::Profile().

## ◆ Type() [2/3]

clang::Type::Type | ( | const Type & |  | ) |
| delete

## ◆ Type() [3/3]

clang::Type::Type | ( | Type && |  | ) |
| delete

## Member Function Documentation

## ◆ acceptsObjCTypeParams()

bool Type::acceptsObjCTypeParams | ( |  | ) | const

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

Definition at line 1526 of file Type.cpp.

References getAsObjCInterfaceType().

Referenced by takeDeclAttributes().

## ◆ canDecayToPointerType()

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

Determines whether this type can decay to a pointer type.

Definition at line 6912 of file Type.h.

Referenced by CheckImplicitConversion().

## ◆ canHaveNullability()

bool Type::canHaveNullability | ( | bool | ResultIfUnknown = `true` | ) | const

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

Parameters

  ResultIfUnknown | The value to return if we don't yet know whether this type can have nullability because it is dependent.

Definition at line 3841 of file Type.cpp.

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

Referenced by checkNullabilityTypeSpecifier(), processTypeAttrs(), and clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType().

## ◆ castAs()

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 7067 of file Type.h.

Referenced by clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnCXXDelete(), clang::Sema::adjustCCAndNoReturn(), clang::ASTContext::adjustDeducedFunctionResultType(), clang::Sema::AdjustDestructorExceptionSpec(), clang::TemplateDeclInstantiator::adjustForRewrite(), AnalyzeBitFieldAssignment(), clang::ASTContext::applyObjCProtocolQualifiers(), clang::ASTContext::areCommonBaseCompatible(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildMemberReferenceExpr(), buildMemcpyForAssignmentOp(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildVectorLiteral(), clang::ASTContext::canAssignObjCInterfaces(), clang::canCalleeThrow(), CanUseSingleInheritance(), clang::CapturedStmt::Capture::Capture(), checkArithmeticBinOpPointerOperands(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckBaseClassAccess(), checkConditionalObjectPointersCompatibility(), checkConditionalPointerCompatibility(), CheckConstexprCtorInitializer(), CheckConstexprParameterTypes(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), checkEnumArithmeticConversions(), clang::Sema::CheckEquivalentExceptionSpec(), CheckEvaluationResult(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::checkInitMethod(), clang::Sema::CheckMain(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMSVCRTEntryPoint(), checkObjCPointerTypesForAssignment(), clang::Sema::checkOpenCLDisabledTypeDeclSpec(), checkOpenCLEnqueueVariadicArgs(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckSpecifiedExceptionType(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CheckUnresolvedMemberAccess(), checkVAStartABI(), checkVAStartIsInVariadicFunction(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CodeCompleteCase(), commonEmitCXXMemberOrOperatorCall(), CompareDerivedToBaseConversions(), clang::CodeGen::CGDebugInfo::completeClass(), clang::Sema::CompleteConstructorCall(), completeFunctionType(), clang::CodeGen::CGDebugInfo::completeType(), clang::CodeGen::CodeGenModule::computeNonVirtualBaseClassOffset(), clang::ObjCObjectType::computeSuperClassTypeSlow(), ComputeVMIClassTypeInfoFlags(), convertToComplexValue(), decomposeTypeForEH(), clang::Sema::DeduceReturnType(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitCopyConstructor(), clang::Sema::DefineImplicitDefaultConstructor(), clang::Sema::DefineImplicitDestructor(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineImplicitMoveConstructor(), clang::Sema::DefineInheritingConstructor(), DiagnoseCallingConvCast(), diagnoseListInit(), clang::Sema::DiagnoseSentinelCalls(), diagReturnOnAllocFailure(), dumpBasePath(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), emitDestructorsFunction(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenModule::EmitNullConstant(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), emitOutlinedFunctionPrologue(), emitParallelOrTeamsOutlinedFunction(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitTaskDupFunction(), emitTaskPrivateMappingFunction(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::emitUserDefinedMapper(), clang::CodeGen::CGDebugInfo::EmitUsingDecl(), emitWritebackArg(), EvalAndBitcastToAPInt(), EvaluateComparisonBinaryOperator(), EvaluateComplex(), clang::Sema::EvaluateImplicitExceptionSpec(), evaluateLValueAsAllocSize(), EvaluateMemberPointer(), EvaluatePointer(), EvaluateTemporary(), EvaluateVector(), clang::exceptionSpecNotKnownYet(), clang::Sema::FindAllocationFunctions(), clang::CXXRecordDecl::FindBaseClass(), clang::Expr::findBoundMemberType(), FindConversionForRefInit(), FindDesignatorMismatch(), findPeephole(), clang::CXXRecordDecl::FindVirtualBaseClass(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), getAlignmentArgument(), clang::CXXNewExpr::getAllocatedType(), getBadTypeidFn(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), getCallingConvMangling(), clang::FunctionDecl::getCallResultType(), clang::CallExpr::getCallReturnType(), clang::CXXConversionDecl::getConversionType(), clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getCorrespondingSignedFixedPointType(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::FunctionDecl::getDeclaredReturnType(), clang::CXXDeleteExpr::getDestroyedType(), clang::CXXMethodDecl::getDevirtualizedMethod(), getFieldSize(), clang::ASTContext::getFixedPointIBits(), clang::ASTContext::getFixedPointScale(), getFloatingRank(), clang::ASTContext::getFloatTypeSemantics(), clang::Decl::getFunctionType(), clang::BlockExpr::getFunctionType(), clang::ASTContext::getFunctionTypeWithExceptionSpec(), clang::ObjCObjectPointerType::getInterfaceType(), GetIntrinsic(), getMostInformativeDerivedClassImpl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::OverloadCandidate::getNumParams(), clang::ASTContext::getObjCGCAttrKind(), getObjCSubstitutions(), clang::ObjCObjectPointerType::getObjectType(), clang::interp::Program::getOrCreateDummy(), clang::TemplateArgument::getPackExpansionPattern(), clang::getParameterABISpelling(), clang::CodeGen::CGOpenCLRuntime::getPipeElemAlign(), clang::CodeGen::CGOpenCLRuntime::getPipeElemSize(), clang::ReferenceType::getPointeeType(), clang::FunctionDecl::getReturnType(), getReturnTypeForMethod(), clang::Sema::GetSignedVectorType(), clang::ObjCInterfaceDecl::getSuperClassType(), clang::CastExpr::getTargetFieldForToUnionCast(), getTypeString(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), getUsualDeleteParams(), clang::AtomicExpr::getValueType(), handleCompoundAssignment(), clang::Sema::HandleFunctionTypeMismatch(), hasDeducedReturnType(), hasDefaultCXXMethodCC(), clang::hasImplicitExceptionSpec(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::Sema::InstantiateExceptionSpec(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::Expr::isConstantInitializer(), clang::CodeGen::CodeGenFunction::IsConstructorDelegationValid(), isDesignatorAtObjectEnd(), isFunctionLocalClass(), isIdiomaticBraceElisionEntity(), isInitializerOfDynamicClass(), isNoexcept(), clang::Sema::isOpenMPCapturedByRef(), isOSObjectRelated(), clang::CodeGen::CodeGenModule::isPaddedAtomicType(), isRecordEmpty(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), isSimpleZero(), isStructEmpty(), IsVoidStarType(), clang::Sema::LookupMethodInObjectType(), LookupMethodInReceiverType(), clang::MangleContext::mangleName(), mangleThunkThisAdjustment(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTypes(), ObjCEncodingForEnumType(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::prepareVectorSplat(), printExprAsWritten(), PrintFloatingLiteral(), clang::APValue::printPretty(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::Sema::ResolveExceptionSpec(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), SemaOpenCLBuiltinEnqueueKernel(), clang::CXXRecordDecl::setBases(), clang::ASTContext::setCFConstantStringType(), setObjCGCLValueClass(), clang::Expr::skipRValueSubobjectAdjustments(), clang::Sema::startLambdaDefinition(), clang::CodeGen::CodeGenFunction::StartThunk(), clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals(), clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::TransformReferenceType(), clang::TreeTransform< Derived >::TransformTemplateSpecializationType(), tryEmitSpecializedAllocInit(), TryListConversion(), TryReferenceInit(), TryReferenceInitialization(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), clang::JSONNodeDumper::Visit(), and clang::ASTDeclReader::VisitFunctionDecl().

## ◆ castAsArrayTypeUnsafe()

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 7076 of file Type.h.

References clang::AttributedType::stripOuterNullability().

Referenced by CheckEvaluationResult(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsOutlinedFunction(), FindDesignatorMismatch(), getArrayIndexingBound(), clang::OMPArraySectionExpr::getBaseOriginalType(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), and isFlexibleArrayMemberExpr().

## ◆ containsUnexpandedParameterPack()

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 1896 of file Type.h.

Referenced by clang::Sema::BuildBaseInitializer(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckPackExpansion(), clang::NestedNameSpecifier::containsUnexpandedParameterPack(), clang::Sema::containsUnexpandedParameterPacks(), clang::ExprWithCleanups::Create(), clang::OffsetOfExpr::CreateEmpty(), clang::DeducedType::DeducedType(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::CXXScalarValueInitExpr::getBeginLoc(), clang::FunctionType::getNameForCallConv(), clang::ASTContext::getPackExpansionType(), clang::ObjCPropertyRefExpr::getReceiverType(), hasOnlyNonStaticMemberFunctions(), clang::DependentSizedArrayType::Profile(), clang::DependentSizedExtVectorType::Profile(), clang::DependentVectorType::Profile(), clang::MaterializeTemporaryExpr::setExtendingDecl(), clang::Sema::SubstAutoType(), clang::Sema::SubstAutoTypeSourceInfo(), clang::Sema::SubstParmVarDecl(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), clang::TreeTransform< Derived >::TransformOverloadExprDecls(), clang::TextNodeDumper::Visit(), and clang::JSONNodeDumper::Visit().

## ◆ dump() [1/2]

LLVM_DUMP_METHOD void Type::dump | ( |  | ) | const

Definition at line 169 of file ASTDumper.cpp.

References dump().

Referenced by computeCachedProperties().

## ◆ dump() [2/2]

LLVM_DUMP_METHOD void Type::dump | ( | llvm::raw_ostream & | OS | ) | const

Definition at line 171 of file ASTDumper.cpp.

References clang::QualType::dump().

## ◆ getArrayElementTypeNoTypeQual()

const Type * Type::getArrayElementTypeNoTypeQual | ( |  | ) | const

If this is an array type, return the element type of the array, potentially with type qualifiers missing.

getArrayElementTypeNoTypeQual - If this is an array type, return the element type of the array, potentially with type qualifiers missing.

This should never be used when type qualifiers are meaningful.

This method should never be used when type qualifiers are meaningful.

Definition at line 301 of file Type.cpp.

References clang::VectorType::desugar(), clang::QualType::getDesugaredType(), clang::VectorType::getElementType(), getLocallyUnqualifiedSingleStepDesugaredType(), clang::ASTContext::getQualifiedType(), clang::QualType::getTypePtr(), getUnqualifiedDesugaredType(), clang::SplitQualType::Quals, clang::QualType::split(), and clang::SplitQualType::Ty.

Referenced by checkNullabilityTypeSpecifier(), and evenFlexibleArraySize().

## ◆ getAs() [1/4]

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 7002 of file Type.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnTypedefedProtocols(), addBaseAndFieldSizes(), AddClassMessageCompletions(), AddFunctionParameterChunks(), AddFunctionTypeQualsToCompletionString(), clang::Sema::AddMethodCandidate(), clang::Sema::AddOverloadCandidate(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), AdjustFunctionParmAndArgTypesForDeduction(), AnalyzeBitFieldAssignment(), AnalyzeCompoundAssignment(), appendFunctionType(), appendType(), clang::ASTContext::areComparableObjCPointerTypes(), assignInheritanceModel(), clang::ASTDeclReader::attachPreviousDeclImpl(), breakDownVectorType(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildDeclarationNameExpr(), buildDeclareReductionRef(), clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildQualifiedType(), buildSingleCopyAssignRecursively(), clang::Sema::BuildTypeofExprType(), clang::Sema::BuildUnaryTransformType(), BuildUniqueMethodName(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::arcmt::trans::canApplyWeak(), canAssignObjCObjectTypes(), clang::canCalleeThrow(), CanThrow(), clang::canTypeidThrow(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), CheckASTMemory(), checkBuiltinArgument(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompatibleReinterpretCast(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckDistantExceptionSpec(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckEquivalentExceptionSpec(), CheckEvaluationResult(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), CheckFallThroughForBody(), checkFormatStringExpr(), checkFoundationAPI(), clang::Sema::CheckFriendTypeDecl(), clang::Sema::CheckGNUVectorConditionalTypes(), CheckIdentityFieldAssignment(), clang::Sema::checkIllFormedTrivialABIStruct(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), CheckIndirectionOperand(), CheckKeyForObjCARCConversion(), checkLiteralOperatorTemplateParameterList(), clang::Sema::CheckLValueToRValueConversionOperand(), CheckMemaccessSize(), clang::Sema::CheckMemberPointerConversion(), clang::Sema::CheckMessageArgumentTypes(), CheckNonNullArguments(), checkNullabilityTypeSpecifier(), checkObjCArrayLiteral(), checkObjCCollectionLiteralElement(), clang::Sema::CheckObjCConversion(), checkObjCDictionaryLiteral(), clang::Sema::CheckObjCForCollectionOperand(), checkObjCKindOfType(), checkOpenCLConditionVector(), checkOpenCLPipePacketType(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckQualifiedFunctionForTypeId(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubscriptingKind(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVectorLogicalOperands(), clang::Sema::CheckVectorOperands(), checkVectorResult(), checkVectorShift(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyReturnType(), classifyTypeForARCConversion(), ClassifyUnnamed(), clang::Sema::CodeCompleteMemberReferenceExpr(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::Sema::computeDeclContext(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::ConversionToObjCStringLiteralCheck(), convertVector(), CopyObject(), create_dispatch_once(), create_OSAtomicCompareAndSwap(), clang::interp::Program::createDescriptor(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), decomposeTypeForEH(), clang::Sema::DeduceAutoType(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceReturnType(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultArgumentPromotion(), defaultedSpecialMemberIsConstexpr(), clang::Sema::DefineImplicitCopyAssignment(), dereference(), clang::Sema::DiagnoseAssignmentEnum(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), DiagnoseNarrowingInInitList(), clang::Sema::DiagnosePropertyAccessorMismatch(), DiagnoseRecursiveConstFields(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSentinelCalls(), doesUsualArrayDeleteWantSize(), doRewriteToUTF8StringBoxedExpressionHelper(), DumpRecordLayout(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitCallee(), EmitCompare(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitEndEHSpec(), clang::CodeGen::ConstantEmitter::emitForMemory(), EmitFunctionDeclPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenModule::EmitNullConstant(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitNVPTXDevicePrintfCallExpr(), EmitObjectDelete(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitScalarRangeCheck(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheckForCast(), EmitX86_64VAArgFromMemory(), EvaluateBinaryTypeTrait(), EvaluateComparisonBinaryOperator(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), EvaluateUnaryTypeTrait(), evenFlexibleArraySize(), extractPBaseFlags(), clang::Sema::ExtractUnqualifiedFunctionType(), clang::interp::EvalEmitter::fallthrough(), FieldHasTrivialDestructorBody(), clang::Sema::FindCompositePointerType(), FindConversionForRefInit(), findEnumForBlockReturn(), findMethodDecl(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CXXRecordDecl::forallBases(), GeneralizeFunctionType(), clang::CodeGen::CodeGenModule::GenOpenCLArgMetadata(), GetAlignOfType(), clang::TypedefNameDecl::getAnonDeclWithTypedefName(), getArrayIndexingBound(), GetAssumedMessageSendExprType(), GetBaseType(), clang::Expr::getBestDynamicClassType(), getBlockLayoutInfoString(), clang::Sema::getCallingConvAttributedType(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getCanonicalNestedNameSpecifier(), getCanonicalTypeInternal(), getCastAwayConstnessCastKind(), clang::ASTContext::getCommentForDecl(), clang::CXXMethodDecl::getCorrespondingMethodInClass(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ASTContext::getDeclAlign(), clang::ento::CallEvent::getDeclaredResultType(), clang::getDeclUsageType(), clang::FunctionDecl::getExceptionSpecType(), GetExprType(), getFixedEnumPromtion(), GetFixedPointRank(), getFloatingRank(), getFuchsiaHandleSymbol(), clang::Sema::getFullyPackExpandedSize(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::getFunctionExtInfo(), clang::CodeCompleteConsumer::OverloadCandidate::getFunctionType(), clang::Decl::getFunctionType(), clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable(), clang::ASTContext::getFunctionTypeWithoutPtrSizes(), GetGCAttrTypeForType(), getIncrementedVar(), clang::ASTContext::getInnerObjCOwnership(), clang::ObjCObjectType::getInterface(), GetIntrinsic(), clang::ASTContext::getIntWidth(), clang::ASTContext::getLegacyIntegralTypeEncoding(), getLocallyUnqualifiedSingleStepDesugaredType(), clang::ento::TypedValueRegion::getLocationType(), clang::ASTContext::getLValueReferenceType(), getMaxAtomicAccessSize(), clang::StandardConversionSequence::getNarrowingKind(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), getNonMemoryType(), getNonNullAttrs(), clang::NSAPI::GetNSIntegralKind(), clang::NSAPI::getNSNumberFactoryMethodKind(), getNullability(), clang::ento::getNullabilityAnnotation(), GetNumNonZeroBytesInInit(), clang::FunctionDecl::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCQualType(), clang::ASTContext::getObjCObjectType(), getPointeeCXXRecordDecl(), clang::ASTContext::getPreferredTypeAlign(), getPrettyTypeName(), clang::ASTContext::getPromotedIntegerType(), getRangeForType(), clang::ObjCMessageExpr::getReceiverInterface(), getRecordArgABI(), clang::interp::ByteCodeExprGen< Emitter >::getRecordTy(), GetReturnType(), getReturnTypeForMethod(), clang::ASTContext::getRValueReferenceType(), getThrowFn(), clang::ASTContext::getTypeAlignIfKnown(), getTypeExpansion(), getTypeForFormat(), clang::ASTContext::getTypeInfoDataSizeInChars(), getTypeString(), clang::ASTContext::getTypeUnadjustedAlign(), clang::GetUnderlyingFunction(), clang::Expr::getValueKindForType(), clang::AtomicExpr::getValueType(), clang::ento::MemRegionManager::getVarRegion(), clang::CodeGen::CodeGenTBAA::getVTablePtrAccessInfo(), GetX86_64ByValArgumentPair(), handleAssignment(), HandleBaseToDerivedCast(), handleCompoundAssignment(), handleFunctionTypeAttr(), HandleMemberPointerAccess(), handleObjCOwnershipTypeAttr(), HandleOpenCLAccessAttr(), clang::Sema::handlerCanCatch(), hasAttr(), clang::ASTNodeImporter::hasAutoReturnTypeDeclaredInside(), hasBooleanRepresentation(), clang::RecordType::hasConstFields(), hasDefaultSetterName(), hasDefinition(), clang::Sema::hasExplicitCallingConv(), hasIsEqualMethod(), hasMangledSubstitutionQualifiers(), HasNonDllImportDtor(), hasSizedVLAType(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::CodeGen::CodeGenFunction::hasVolatileMember(), hasWeakMember(), clang::Sema::IgnoredValueConversions(), clang::ASTNodeImporter::ImportDeclContext(), clang::Sema::inferCUDATargetForImplicitSpecialMember(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), is32Or64BitBasicType(), IsAddressSpaceConversion(), clang::CXXDynamicCastExpr::isAlwaysNull(), isArithmeticArgumentPromotion(), isAtLeastAsSpecializedAs(), clang::Sema::IsBlockPointerConversion(), isBooleanType(), isCanonicalExceptionSpecification(), IsCFError(), isCFStringType(), isCharSpecialization(), clang::ento::cocoa::isCocoaObjectRef(), clang::Sema::IsComplexPromotion(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::QualType::isCXX11PODType(), IsDerivedFromInclusive(), isDispatchBlock(), isEmptyField(), isEmptyRecord(), clang::Sema::IsFloatingPointPromotion(), isForwardingReference(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), clang::comments::Sema::isFunctionOrBlockPointerVarLikeDecl(), clang::comments::Sema::isFunctionOrMethodVariadic(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::Sema::isInitListConstructor(), isIntegerLikeType(), clang::Sema::IsIntegralPromotion(), isKnownNonNilCollectionType(), isLiteralType(), IsLLVMStringRef(), clang::Sema::IsMemberPointerConversion(), IsNSError(), isNSStringType(), clang::BinaryOperator::isNullPointerArithmeticExtension(), clang::Expr::isNullPointerConstant(), isObjCIdOrObjectKindOfType(), clang::Sema::isObjCPointerConversion(), IsPartOfAST(), isPermittedNeonBaseType(), isPointerToRecordType(), IsPreserveAIArrayBase(), isRecordWithSSEVectorType(), isSafeForCXXConstantCapture(), isSafeToConvert(), IsSameCharType(), isSameEntity(), isScopedEnumerationType(), isSimpleTemplateIdType(), isSingleElementStruct(), IsSmallVector(), isSSEVectorType(), IsStandardConversion(), isStandardLayoutType(), clang::Sema::isStdInitializerList(), IsStdString(), IsStdVector(), isStreamCharSpecialization(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), clang::NSAPI::isSubclassOfNSClass(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), IsUserDefinedConversion(), isValidBaseType(), isVarDeclStrongDefinition(), IsVariableSizedType(), isVector(), isVoidPointerToNonConst(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), clang::FieldDecl::isZeroSize(), loadToBegin(), LookThroughTransitiveAssignmentsAndCommaOperators(), LookupDirect(), LookupMemberExpr(), LookupMethodInReceiverType(), mangleAArch64VectorBase(), clang::Sema::MarkFunctionReferenced(), MarkUsedTemplateParameters(), clang::analyze_format_string::ArgType::matchesType(), maybeAdjustInterfaceForSubscriptingCheck(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeTypes(), ObjCEnumerationCollection(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), OpenCLConvertScalarsToVectors(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectArgumentInitialization(), PopulateKeysForFields(), printCXXConstructorDestructorName(), printIntegral(), clang::ento::ExprEngine::processSwitch(), PropertyMemoryAttribute(), pushTemporaryCleanup(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::TreeTransform< Derived >::RebuildUnresolvedUsingType(), recordFixedType(), clang::ASTContext::removePtrSizeAddrSpace(), clang::Sema::RequireCompleteType(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFP2Ret(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFPRet(), rewriteInputConstraintReferences(), RewriteOneForwardClassDecl(), rewriteToNumericBoxedExpression(), roundUpSizeToCharAlignment(), scanToNextArgument(), ShouldDiagnoseUnusedDecl(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), ShouldTryAgainWithRedefinitionType(), clang::Expr::skipRValueSubobjectAdjustments(), skipTopLevelReferences(), clang::Sema::SpecialMemberIsTrivial(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::ObjCObjectType::stripObjCKindOfTypeAndQuals(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::TransformExceptionSpec(), clang::TreeTransform< Derived >::TransformReferenceType(), clang::TransformTypeSpecType(), TryAddressSpaceCast(), tryAtomicConversion(), TryClassUnification(), TryConstCast(), TryConstructorInitialization(), TryDeconstructFunctionLike(), clang::Sema::tryExprAsCall(), tryGCCVectorConvertAndSplat(), tryGetFunctionProtoType(), TryImplicitConversion(), TryListInitialization(), TryLValueToRValueCast(), TryObjectArgumentInitialization(), TryReferenceInit(), TryRefInitWithConversionFunction(), TryReinterpretCast(), TryStaticCast(), TryStaticMemberPointerUpcast(), TryStaticPointerDowncast(), TryStaticReferenceDowncast(), TryUserDefinedConversion(), TryValueInitialization(), TypeHasMayAlias(), TypeIsInnerPointer(), clang::ASTContext::UnwrapSimilarTypes(), UseNSOptionsMacro(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::JSONNodeDumper::Visit(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::TextNodeDumper::VisitFunctionDecl(), clang::ento::SValExplainer::VisitSymbolicRegion(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and Write_RethrowObject().

## ◆ getAs() [2/4]

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 456 of file Type.cpp.

## ◆ getAs() [3/4]

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 460 of file Type.cpp.

## ◆ getAs() [4/4]

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 464 of file Type.cpp.

## ◆ getAsAdjusted()

template<typename T >

const T * clang::Type::getAsAdjusted | ( |  | ) | const

Member-template getAsAdjusted<specific type>.

Look through specific kinds of sugar (parens, attributes, etc) for an instance of <specific type>. This is used when you need to walk over sugar nodes that represent some kind of type adjustment from a type that was written as a <specific type> to another type that is still canonically a <specific type>.

Definition at line 7019 of file Type.h.

References P.

## ◆ getAsArrayTypeUnsafe()

const ArrayType * clang::Type::getAsArrayTypeUnsafe | ( |  | ) | const
| inline

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

Definition at line 7053 of file Type.h.

Referenced by appendType(), buildUserDefinedMapperRef(), checkMappableExpressionList(), classifyTypeForARCConversion(), clang::interp::Program::createDescriptor(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::interp::EvalEmitter::fallthrough(), getAlignmentArgument(), clang::ASTContext::getBaseElementType(), getBaseElementTypeUnsafe(), getCanonicalParamType(), clang::ASTContext::getConstantArrayElementCount(), getDecayedSourceLocExprType(), getTypeString(), hasSizedVLAType(), isObjCLifetimeType(), clang::InitListExpr::isStringLiteralInit(), clang::InitializedEntity::isVariableLengthArrayNew(), and SemaBuiltinLaunder().

## ◆ getAsComplexIntegerType()

const ComplexType * Type::getAsComplexIntegerType | ( |  | ) | const

Definition at line 550 of file Type.cpp.

References Complex.

Referenced by handleComplexIntConversion(), and isComplexIntegerType().

## ◆ getAsCXXRecordDecl()

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 1690 of file Type.cpp.

References getAsTagDecl().

Referenced by clang::CodeGen::CGOpenMPRuntimeNVPTX::adjustTargetSpecificDataForLambdas(), clang::ento::StoreManager::attemptDownCast(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildCXXConstructExpr(), buildFakeCtorCall(), BuildNonArrayForRange(), calculateOffset(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::canVarDeclThrow(), clang::Sema::checkAllowedCUDAInitializer(), clang::Sema::CheckBaseSpecifier(), CheckConstexprCtorInitializer(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructor(), checkDestructorReference(), clang::CheckEquivalentExceptionSpecImpl(), checkEscapingByref(), checkMoveAssignmentForRepeatedMove(), checkTrivialClassMembers(), checkTrivialSubobjectCall(), checkTupleLikeDecomposition(), CheckUnaryTypeTraitTypeCompleteness(), computeBlockInfo(), clang::ImplicitCastExpr::Create(), clang::Sema::CreateBuiltinBinOp(), clang::ConstructionContext::createFromLayers(), clang::TypeName::createNestedNameSpecifierForScopeOf(), clang::CodeGen::CodeGenFunction::cxxDestructorCanThrow(), decomposeTypeForEH(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), diagnoseMutableFields(), DiagnoseReinterpretUpDownCast(), DiagnoseUninitializedReference(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXConstructLValue(), clang::CodeGen::CodeGenFunction::EmitCXXDestructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberDataPointerAddress(), EmitDeclDestroy(), EmitDestroyingObjectDelete(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), emitRTtypeidCall(), clang::ento::StoreManager::evalDerivedToBase(), EvaluateMemberPointer(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::FindAllocationFunctions(), findDecomposableBaseClass(), clang::Sema::FindInstantiatedDecl(), forConstantArrayExpansion(), clang::NestedNameSpecifier::getAsRecordDecl(), getBadTypeidFn(), clang::ASTContext::getCommentForDecl(), getConstructedRegion(), getContainedDynamicClass(), getDefaultInitValue(), clang::CFGImplicitDtor::getDestructorDecl(), clang::CXXInstanceCall::getExtraInvalidatedValues(), clang::Sema::getFixItZeroInitializerForType(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::ento::ProgramState::getLValue(), clang::CodeGen::CGCXXABI::getMemberPointerAdjustment(), getMSPropertyAttr(), clang::UnresolvedMemberExpr::getNamingClass(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), getPrettyTypeName(), clang::CXXMemberCallExpr::getRecordDecl(), clang::BlockCall::getRuntimeDefinition(), clang::CXXInstanceCall::getRuntimeDefinition(), getVirtualOperatorDelete(), HandleBaseToDerivedCast(), HandleDestructionImpl(), HandleLValueBase(), HandleLValueBasePath(), HandleMemberPointerAccess(), HandleUnionActiveMemberChange(), hasNonTrivialConstructorCall(), hasTrivialABIAttr(), clang::ComparisonCategoryInfo::ValueInfo::hasValidIntValue(), hasVirtualDestructor(), clang::Sema::inferGslPointerAttribute(), InitializationHasSideEffects(), isAutoCastType(), isConsumableType(), clang::CFGCXXRecordTypedCall::isCXXRecordTypedCall(), clang::Sema::IsDerivedFrom(), clang::FunctionDecl::isDestroyingOperatorDelete(), isImplicitThis(), isInAllocaArgument(), clang::ento::iterator::isIteratorType(), isNothrowT(), isOSObjectRelated(), isPointerToObject(), clang::CXXTypeidExpr::isPotentiallyEvaluated(), isReadByLvalueToRvalueConversion(), isRecordEmpty(), isRecordWithAttr(), clang::ConstructionContextLayer::isStrictlyMoreSpecificThan(), clang::Sema::isThisOutsideMemberFunctionBody(), clang::CXXRecordDecl::isTriviallyCopyable(), clang::CodeGen::CodeGenModule::isTypeConstant(), isTypeValid(), clang::Expr::isUnusedResultAWarning(), clang::CodeGen::CodeGenFunction::isVptrCheckRequired(), LeastDerivedClassWithSameLayout(), clang::ComparisonCategories::lookupInfoForType(), lookupStdTypeTraitMember(), mapConsumableAttrState(), clang::consumed::ConsumedStateMap::operator!=(), PerformReturnAdjustment(), print_elem(), print_initializer(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::Sema::ProduceConstructorSignatureHelp(), clang::CodeGen::CodeGenFunction::PushDestructorCleanup(), regionMatchesCXXRecordType(), ResolveConstructorOverload(), roundUpSizeToCharAlignment(), clang::CXXRecordDecl::setBases(), clang::Sema::tryCaptureOpenMPLambdas(), TryListInitialization(), TypeRequiresBuiltinLaunderImp(), usesMultipleInheritanceModel(), visitLocalsRetainedByInitializer(), clang::ASTDeclWriter::VisitVarDecl(), clang::ASTDeclReader::VisitVarDeclImpl(), and warnAboutRedundantParens().

## ◆ getAsObjCInterfacePointerType()

const ObjCObjectPointerType * Type::getAsObjCInterfacePointerType | ( |  | ) | const

Definition at line 1667 of file Type.cpp.

Referenced by CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), and clang::Sema::SelectorsForTypoCorrection().

## ◆ getAsObjCInterfaceType()

const ObjCObjectType * Type::getAsObjCInterfaceType | ( |  | ) | const

Definition at line 1659 of file Type.cpp.

Referenced by acceptsObjCTypeParams().

## ◆ getAsObjCQualifiedClassType()

const ObjCObjectPointerType * Type::getAsObjCQualifiedClassType | ( |  | ) | const

Definition at line 1649 of file Type.cpp.

## ◆ getAsObjCQualifiedIdType()

const ObjCObjectPointerType * Type::getAsObjCQualifiedIdType | ( |  | ) | const

Definition at line 1639 of file Type.cpp.

## ◆ getAsObjCQualifiedInterfaceType()

const ObjCObjectType * Type::getAsObjCQualifiedInterfaceType | ( |  | ) | const

Definition at line 1625 of file Type.cpp.

Referenced by isObjCQualifiedInterfaceType().

## ◆ getAsPlaceholderType()

const BuiltinType * clang::Type::getAsPlaceholderType | ( |  | ) | const
| inline

Definition at line 6757 of file Type.h.

Referenced by clang::Sema::BuildBinOp(), clang::Sema::BuildUnaryOp(), clang::Sema::CheckPlaceholderExpr(), checkPlaceholderForOverload(), and clang::Sema::DefaultVariadicArgumentPromotion().

## ◆ getAsRecordDecl()

RecordDecl * Type::getAsRecordDecl | ( |  | ) | const

Retrieves the RecordDecl this type refers to.

Definition at line 1694 of file Type.cpp.

References getAsTagDecl().

Referenced by EmitNullConstant(), clang::ento::FindUninitializedFields::FindUninitializedFields(), and isPointerToConst().

## ◆ getAsStructureType()

const RecordType * Type::getAsStructureType | ( |  | ) | const

Definition at line 573 of file Type.cpp.

References getUnqualifiedDesugaredType().

Referenced by appendType(), describeUninitializedArgumentInCall(), clang::CodeGen::emitTaskInit(), isCallback(), and clang::analyze_format_string::ArgType::matchesType().

## ◆ getAsTagDecl()

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 1698 of file Type.cpp.

Referenced by createConstantGlobalStructAndAddToParent(), clang::CodeGen::emitDeclareSimdFunction(), emitDestructorsFunction(), emitProxyTaskFunction(), clang::CodeGen::emitTaskInit(), emitTaskPrivateMappingFunction(), getAsCXXRecordDecl(), getAsRecordDecl(), getUuidAttrOfType(), clang::Sema::RequireCompleteDeclContext(), and TypeHasMayAlias().

## ◆ getAsUnionType()

const RecordType * Type::getAsUnionType | ( |  | ) | const

NOTE: getAs*ArrayType are methods on ASTContext.

Definition at line 592 of file Type.cpp.

References getUnqualifiedDesugaredType().

Referenced by appendType(), CheckNonNullExpr(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::CodeGen::CodeGenFunction::EnterDtorCleanups(), getNonNullAttrs(), IsTransparentUnionStandardConversion(), clang::ASTContext::mergeTransparentUnionType(), and useFirstFieldIfTransparentUnion().

## ◆ getBaseElementTypeUnsafe()

const Type * clang::Type::getBaseElementTypeUnsafe | ( |  | ) | const
| inline

Get the base element type of this type, potentially discarding type qualifiers.

This should never be used when type qualifiers are meaningful.

Definition at line 6925 of file Type.h.

References clang::ast_matchers::arrayType, getAsArrayTypeUnsafe(), and clang::ast_matchers::type.

Referenced by clang::Sema::BuildCXXConstructExpr(), buildMemcpyForAssignmentOp(), clang::canVarDeclThrow(), clang::Sema::checkIllFormedTrivialABIStruct(), CheckUnaryTypeTraitTypeCompleteness(), diagnoseMutableFields(), DiagnoseUninitializedReference(), doesUsualArrayDeleteWantSize(), getContainedDynamicClass(), getPointeeOrArrayElementType(), clang::ASTContext::getPreferredTypeAlign(), getUuidAttrOfType(), HandleUnionActiveMemberChange(), HasNonDllImportDtor(), hasSizedVLAType(), InitializationHasSideEffects(), clang::QualType::isCXX11PODType(), isLiteralType(), clang::QualType::isNonTrivialToPrimitiveCopy(), clang::QualType::isNonTrivialToPrimitiveDefaultInitialize(), isReadByLvalueToRvalueConversion(), isSafeForCXXConstantCapture(), isStandardLayoutType(), print_elem(), and pushTemporaryCleanup().

## ◆ getCanonicalTypeInternal()

QualType clang::Type::getCanonicalTypeInternal | ( |  | ) | const
| inline

Definition at line 2429 of file Type.h.

References dump(), and getAs().

Referenced by addAssociatedClassesAndNamespaces(), canHaveNullability(), clang::Sema::CheckFloatComparison(), checkOpenCLPipePacketType(), clang::CodeGen::CodeGenTypes::DeriveThisType(), clang::TypePropertyCache< Private >::ensure(), clang::ASTContext::getASTObjCImplementationLayout(), clang::ASTContext::getCanonicalType(), getCurrentInstantiationOf(), clang::FunctionType::getNameForCallConv(), clang::ASTContext::getObjCGCAttrKind(), clang::LocInfoType::getType(), clang::LinkageComputer::getTypeLinkageAndVisibility(), isLinkageValid(), isLiteralType(), isObjCARCImplicitlyUnretainedType(), isSameQualifier(), and clang::Parser::ParseUnqualifiedId().

## ◆ getCanonicalTypeUnqualified()

CanQualType clang::Type::getCanonicalTypeUnqualified | ( |  | ) | const
| inline

Definition at line 214 of file CanonicalType.h.

References clang::CanQual< Type >::CreateUnsafe().

Referenced by clang::CodeGen::CodeGenTypes::arrangeCXXMethodType(), clang::CodeGen::CodeGenTypes::arrangeFunctionDeclaration(), clang::Sema::checkExceptionSpecification(), evaluateCDTSize(), findDirectBaseWithType(), GetFormalType(), GetReturnType(), and setCUDAKernelCallingConvention().

## ◆ getContainedAutoType()

AutoType* clang::Type::getContainedAutoType | ( |  | ) | const
| inline

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.

Definition at line 2251 of file Type.h.

References hasAttr().

Referenced by clang::Sema::ActOnObjCForCollectionStmt(), canonicalizeImmediatelyDeclaredConstraint(), clang::NonTypeTemplateParmDecl::Create(), clang::Sema::DeduceTemplateArguments(), clang::ASTNodeImporter::hasAutoReturnTypeDeclaredInside(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), and clang::ASTDeclReader::VisitFunctionDecl().

## ◆ getContainedDeducedType()

DeducedType * Type::getContainedDeducedType | ( |  | ) | const

Get the DeducedType 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.

Definition at line 1808 of file Type.cpp.

Referenced by clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::CheckPackExpansion(), clang::ExprWithCleanups::Create(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), GetDeclSpecTypeForDeclarator(), clang::ASTContext::getPackExpansionType(), clang::isUndeducedReturnType(), and LookupDirect().

## ◆ getLinkage()

Linkage Type::getLinkage | ( |  | ) | const

Determine the linkage of this type.

Definition at line 3721 of file Type.cpp.

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

Referenced by clang::CodeGen::CodeGenModule::EmitOMPThreadPrivateDecl(), getStorageClass(), getTypeInfoLinkage(), getTypeInfoVTable(), clang::LinkageComputer::getTypeLinkageAndVisibility(), getVisibilityOf(), clang::Sema::isExternalWithNoLinkageType(), and clang::ObjCTypeParamType::Profile().

## ◆ getLinkageAndVisibility()

LinkageInfo Type::getLinkageAndVisibility | ( |  | ) | const

Determine the linkage and visibility of this type.

Definition at line 3823 of file Type.cpp.

References clang::LinkageComputer::getTypeLinkageAndVisibility().

## ◆ getLocallyUnqualifiedSingleStepDesugaredType()

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 354 of file Type.cpp.

References clang::Qualifiers::addConsistentQualifiers(), clang::Qualifiers::empty(), getAs(), clang::QualType::getSplitDesugaredType(), getTypeClass(), clang::QualType::IgnoreParens(), clang::SplitQualType::Quals, clang::QualType::split(), clang::QualifierCollector::strip(), and clang::SplitQualType::Ty.

Referenced by getArrayElementTypeNoTypeQual(), isObjCNSObjectType(), clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::Visit(), and clang::TextNodeDumper::Visit().

## ◆ getNullability()

Optional< NullabilityKind > Type::getNullability | ( | const ASTContext & | context | ) | const

Determine the nullability of the given type.

Note that nullability is only captured as sugar within the type system, not as part of the canonical type, so nullability will be lost by canonicalization and desugaring.

Definition at line 3828 of file Type.cpp.

References getAs(), clang::None, and Type().

Referenced by CheckNonNullExpr(), checkNullabilityTypeSpecifier(), checkObjCKindOfType(), computeConditionalNullability(), clang::Sema::diagnoseNullableToNonnullConversion(), clang::CodeGen::CodeGenFunction::EmitNullabilityCheck(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::ASTContext::getArrayDecayedType(), clang::ASTContext::hasSameNullabilityTypeQualifier(), isNonNullType(), and clang::CodeGen::CodeGenFunction::StartFunction().

## ◆ getObjCARCImplicitLifetime()

Qualifiers::ObjCLifetime Type::getObjCARCImplicitLifetime | ( |  | ) | const

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

Definition at line 4016 of file Type.cpp.

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

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

## ◆ getObjCSubstitutions()

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

  dc | The 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 1444 of file Type.cpp.

References castAs(), clang::ObjCObjectType::getInterface(), clang::ASTContext::getObjCObjectType(), clang::DeclContext::getParentASTContext(), clang::ObjCObjectType::getSuperClassType(), clang::ObjCObjectType::getTypeArgs(), clang::QualType::isNull(), clang::ObjCObjectType::isUnspecialized(), clang::None, and clang::ASTContext::ObjCBuiltinIdTy.

Referenced by clang::CodeCompletionResult::createCodeCompletionStringForDecl(), and clang::QualType::substObjCMemberType().

## ◆ getPointeeCXXRecordDecl()

const CXXRecordDecl * Type::getPointeeCXXRecordDecl | ( |  | ) | const

If this is a pointer or reference to a RecordType, return the CXXRecordDecl that the 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 1675 of file Type.cpp.

References getAs(), and getPointeeType().

Referenced by adjustReturnValue(), DiagnoseReinterpretUpDownCast(), clang::ento::retaincountchecker::RetainCountChecker::errorKindToBugKind(), clang::ento::StoreManager::evalDerivedToBase(), getNoteTag(), HandleDynamicCast(), isOSObjectPtr(), isSetOnReadPtrType(), regionMatchesCXXRecordType(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and shouldTrackFirstArgument().

## ◆ getPointeeOrArrayElementType()

const Type * clang::Type::getPointeeOrArrayElementType | ( |  | ) | const
| inline

If this is a pointer type, return the pointee type.

If this is an array type, return the array element type. This should never be used when type qualifiers are meaningful.

Definition at line 6932 of file Type.h.

References getBaseElementTypeUnsafe(), getPointeeType(), clang::QualType::getTypePtr(), isAnyPointerType(), isArrayType(), and clang::ast_matchers::type.

Referenced by getArrayIndexingBound(), IsTailPaddedMemberArray(), and SemaOpenCLBuiltinEnqueueKernel().

## ◆ getPointeeType()

QualType Type::getPointeeType | ( |  | ) | const

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

Definition at line 557 of file Type.cpp.

References getPointeeType().

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnStartCXXMemberReference(), clang::CodeGen::CGDebugInfo::addHeapAllocSiteMetadata(), adjustCVQualifiersForCXXThisWithinLambda(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), clang::ento::StoreManager::attemptDownCast(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedType(), calculateOffset(), clang::arcmt::trans::canApplyWeak(), clang::canCalleeThrow(), CanThrow(), clang::ento::StoreManager::castRegion(), castToBase(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalPointerCompatibility(), clang::Sema::CheckCXXThisCapture(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDistantExceptionSpec(), CheckFallThroughForBody(), CheckIndirectionOperand(), CheckKeyForObjCARCConversion(), checkMapClauseExpressionBase(), checkMappableExpressionList(), CheckMemaccessSize(), clang::ento::mpi::MPIChecker::checkMissingWaits(), CheckNonNullArguments(), checkNullabilityTypeSpecifier(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CheckObjCConversion(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVirtualDtorCall(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyTypeForARCConversion(), clang::Sema::CodeCompleteMemberReferenceExpr(), CompareStandardConversionSequences(), computeCachedProperties(), clang::LinkageComputer::computeTypeLinkageInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), decomposeTypeForEH(), DeduceTemplateArgumentsByTypeMatch(), clang::DEF_TRAVERSE_TYPE(), clang::Sema::DefineImplicitCopyAssignment(), dereference(), DereferenceInfo::DereferenceInfo(), describeUninitializedArgumentInCall(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseCastOfObjCSEL(), DiagnoseDivisionSizeofPointerOrArray(), clang::Sema::DiagnoseSentinelCalls(), diagnoseStringPlusChar(), clang::Sema::DiscardMisalignedMemberAddress(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitAlignmentAssumptionCheck(), EmitAtomicCmpXchgForMSIntrin(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCallee(), EmitCheckedMixedSignMultiply(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), EmitISOVolatileLoad(), EmitISOVolatileStore(), clang::CodeGen::CodeGenFunction::EmitLoadOfReference(), clang::CodeGen::CodeGenFunction::EmitLoadOfReferenceLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMemberExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), evalBinOpFieldRegionFieldRegion(), clang::ento::ExprEngine::evalCall(), EvaluateAtomic(), EvaluateComparisonBinaryOperator(), EvaluatePointer(), clang::Sema::ExtractUnqualifiedFunctionType(), clang::Sema::FindCompositePointerType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), GeneralizeType(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::CodeGen::CodeGenModule::GenOpenCLArgMetadata(), getAArch64LS(), getAlignmentArgument(), GetAlignOfType(), clang::OMPArraySectionExpr::getBaseOriginalType(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), getBuiltinAlignArguments(), clang::CallExpr::getCallReturnType(), getCanonicalParamType(), getCastAwayConstnessCastKind(), getCoreType(), getCXXRecord(), clang::ASTContext::getDeclAlign(), clang::getDeclUsageType(), getDeepPointeeType(), clang::MemberExpr::getEndLoc(), clang::CXXInstanceCall::getExtraInvalidatedValues(), getFuchsiaHandleSymbol(), clang::TypeName::getFullyQualifiedType(), clang::ASTContext::getInnerObjCOwnership(), clang::PointerLikeTypeLoc< ObjCObjectPointerTypeLoc, ObjCObjectPointerType >::getInnerType(), clang::DependentAddressSpaceTypeLoc::getInnerType(), clang::CodeGen::CodeGenFunction::getNaturalPointeeTypeAlignment(), clang::QualType::getNonLValueExprType(), clang::QualType::getNonReferenceType(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCQualType(), clang::CXXMemberCallExpr::getObjectType(), clang::getParameterABISpelling(), getPointeeCXXRecordDecl(), getPointeeOrArrayElementType(), getPointeeType(), getPrettyTypeName(), clang::CXXMemberCallExpr::getRecordDecl(), clang::interp::ByteCodeExprGen< Emitter >::getRecordTy(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::ASTContext::getTargetNullPointerValue(), clang::GetUnderlyingFunction(), getUuidAttrOfType(), handleAssignment(), HandleBaseToDerivedCast(), handleCompoundAssignment(), HandleMemberPointerAccess(), handleMSPointerTypeQualifierAttr(), handleObjCOwnershipTypeAttr(), clang::Sema::handlerCanCatch(), hasNonTrivialConstructorCall(), hasSameUnqualifiedPointeeType(), InitCatchParam(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::Sema::IsBlockPointerConversion(), isCallback(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::comments::Sema::isFunctionOrMethodVariadic(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::Sema::isInitListConstructor(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::Expr::isNullPointerConstant(), isOSObjectRelated(), isPointerToConst(), isPointerToObject(), isRecordEmpty(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), IsTypeModifiable(), isVoidPointer(), isVoidPointerToNonConst(), loadToBegin(), LookupMemberExpr(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MaybeBindToTemporary(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformQualificationConversion(), PerformReturnAdjustment(), clang::ento::printDynamicTypesJson(), clang::APValue::printPretty(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::ASTContext::removePtrSizeAddrSpace(), RewriteOneForwardClassDecl(), roundUpSizeToCharAlignment(), scanToNextArgument(), SemaBuiltinLaunder(), SemaOpenCLBuiltinEnqueueKernel(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::TransformTypeSpecType(), TryAddressSpaceCast(), TryDeconstructFunctionLike(), tryEmitFMulAdd(), clang::Sema::tryExprAsCall(), tryGetFunctionProtoType(), TryObjectArgumentInitialization(), TryReinterpretCast(), TryStaticCast(), clang::ASTContext::UnwrapSimilarTypes(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::consumed::ConsumedStmtVisitor::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXNewExpr(), and clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl().

## ◆ getScalarTypeKind()

Type::ScalarTypeKind Type::getScalarTypeKind | ( |  | ) | const

Given that this is a scalar type, classify it.

Definition at line 2051 of file Type.cpp.

References clang::QualType::getTypePtr(), isScalarType(), STK_BlockPointer, STK_Bool, STK_CPointer, STK_FixedPoint, STK_Floating, STK_FloatingComplex, STK_Integral, STK_IntegralComplex, STK_MemberPointer, and STK_ObjCObjectPointer.

Referenced by matchTypes(), and clang::Sema::ScalarTypeToBooleanCastKind().

## ◆ getTypeClass()

TypeClass clang::Type::getTypeClass | ( |  | ) | const
| inline

Definition at line 1876 of file Type.h.

Referenced by addAssociatedClassesAndNamespaces(), clang::TypoCorrectionConsumer::addNamespaces(), canHaveNullability(), CanUseSingleInheritance(), 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::DependentAddressSpaceType::classof(), clang::DependentSizedExtVectorType::classof(), clang::VectorType::classof(), clang::DependentVectorType::classof(), clang::ExtVectorType::classof(), clang::FunctionType::classof(), clang::FunctionNoProtoType::classof(), clang::FunctionProtoType::classof(), clang::UnresolvedUsingType::classof(), clang::TypedefType::classof(), clang::MacroQualifiedType::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::DeducedType::classof(), clang::AutoType::classof(), clang::DeducedTemplateSpecializationType::classof(), clang::TemplateSpecializationType::classof(), clang::InjectedClassNameType::classof(), clang::ElaboratedType::classof(), clang::DependentNameType::classof(), clang::DependentTemplateSpecializationType::classof(), clang::PackExpansionType::classof(), clang::ObjCTypeParamType::classof(), clang::ObjCObjectType::classof(), clang::ObjCInterfaceType::classof(), clang::ObjCObjectPointerType::classof(), clang::AtomicType::classof(), clang::PipeType::classof(), computeCachedProperties(), clang::LinkageComputer::computeTypeLinkageInfo(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::Sema::CreateParsedType(), getAsSugar(), clang::QualType::getBaseTypeIdentifier(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::ast_type_traits::ASTNodeKind::getFromNode(), getLocallyUnqualifiedSingleStepDesugaredType(), getTypeCodeForTypeClass(), clang::ASTContext::getTypeInfo(), clang::TypeLoc::getTypeLocClass(), clang::UnqualTypeLoc::getTypeLocClass(), getUnqualifiedDesugaredType(), clang::ASTContext::getVariableArrayDecayedType(), clang::QualType::isCXX98PODType(), isLayoutCompatible(), isObjCReceiverType(), IsPossiblyOpaquelyQualifiedType(), isSpecifierType(), isTypeSubstitutable(), MarkUsedTemplateParameters(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeTypes(), splitAccordingToPolicy(), clang::RecursiveASTVisitor< CallGraph >::TraverseType(), typeIsPostfix(), UnwrapTypeForDebugInfo(), and clang::TypeVisitor< ASTNodeImporter, ExpectedType >::Visit().

## ◆ getTypeClassName()

const char * Type::getTypeClassName | ( |  | ) | const

Definition at line 2751 of file Type.cpp.

References TypeBits.

Referenced by clang::TextNodeDumper::Visit(), clang::JSONNodeDumper::Visit(), and clang::ASTNodeImporter::VisitType().

## ◆ getUnqualifiedDesugaredType()

const Type * Type::getUnqualifiedDesugaredType | ( |  | ) | const

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 471 of file Type.cpp.

References getTypeClass().

Referenced by getArrayElementTypeNoTypeQual(), getAsStructureType(), getAsUnionType(), clang::ASTContext::getTargetNullPointerValue(), clang::ASTContext::getTypeInfo(), clang::ASTContext::getTypeUnadjustedAlign(), clang::ASTContext::getUnqualifiedArrayType(), clang::ento::iterator::isIteratorType(), and IsPreserveAIArrayBase().

## ◆ getVisibility()

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

Determine the visibility of this type.

Definition at line 2375 of file Type.h.

Referenced by extractPBaseFlags().

## ◆ hasAttr()

bool Type::hasAttr | ( | attr::Kind | AK | ) | const

Determine whether this type had the specified attribute applied to it (looking through top-level type sugar).

Definition at line 1707 of file Type.cpp.

References getAs(), clang::ArrayType::getElementType(), clang::DependentSizedExtVectorType::getElementType(), clang::VectorType::getElementType(), clang::ParenType::getInnerType(), clang::AttributedType::getModifiedType(), clang::ElaboratedType::getNamedType(), clang::AdjustedType::getOriginalType(), clang::PackExpansionType::getPattern(), clang::PointerType::getPointeeType(), clang::BlockPointerType::getPointeeType(), clang::MemberPointerType::getPointeeType(), clang::ReferenceType::getPointeeTypeAsWritten(), clang::FunctionType::getReturnType(), clang::QualType::getTypePtr(), clang::MacroQualifiedType::getUnderlyingType(), clang::FunctionProtoType::hasTrailingReturn(), and clang::QualType::isNull().

Referenced by IsPreserveAIArrayBase(), and clang::Expr::isUnusedResultAWarning().

## ◆ hasAutoForTrailingReturnType()

bool Type::hasAutoForTrailingReturnType | ( |  | ) | const

Determine whether this type was written with a leading 'auto' corresponding to a trailing return type (possibly for a nested function type within a pointer to function type or similar).

Definition at line 1813 of file Type.cpp.

Referenced by hasDeducedAuto().

## ◆ hasFloatingRepresentation()

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 2014 of file Type.cpp.

References isFloatingType().

Referenced by checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckVectorLogicalOperands(), and diagnoseTautologicalComparison().

## ◆ hasIntegerRepresentation()

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 1818 of file Type.cpp.

References isIntegerType().

Referenced by clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::CheckShiftOperands(), and clang::Sema::SemaBuiltinShuffleVector().

## ◆ hasObjCPointerRepresentation()

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

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

Definition at line 6921 of file Type.h.

## ◆ hasPointerRepresentation()

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

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 6916 of file Type.h.

Referenced by Evaluate(), EvaluatePointer(), ignorePointerCastsAndParens(), is32Or64BitBasicType(), rewriteInputConstraintReferences(), and shouldEmitSeparateBlockRetain().

## ◆ hasSignedIntegerRepresentation()

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 1958 of file Type.cpp.

References isSignedIntegerOrEnumerationType().

Referenced by AnalyzeComparison(), canConvertIntToOtherIntTy(), canConvertIntTyToFloatTy(), castValueToType(), emitEmptyOrdered(), clang::ASTContext::getCorrespondingUnsignedType(), clang::CodeGen::ABIArgInfo::getExtend(), GetIntrinsic(), handleIntegerConversion(), and clang::analyze_format_string::ArgType::matchesType().

## ◆ hasSizedVLAType()

bool Type::hasSizedVLAType | ( |  | ) | const

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

Definition at line 4103 of file Type.cpp.

References getAs(), getAsArrayTypeUnsafe(), getBaseElementTypeUnsafe(), clang::QualType::getObjCLifetime(), clang::RecordDecl::isNonTrivialToPrimitiveDestroy(), isVariablyModifiedType(), clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, and clang::Qualifiers::OCL_Weak.

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

## ◆ hasUnnamedOrLocalType()

bool Type::hasUnnamedOrLocalType | ( |  | ) | const

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

Definition at line 3726 of file Type.cpp.

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

## ◆ hasUnsignedIntegerRepresentation()

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 1998 of file Type.cpp.

References isUnsignedIntegerOrEnumerationType().

Referenced by AnalyzeComparison(), checkOpenMPLoop(), DiagnoseBadShiftValues(), and DiagnoseFloatingImpCast().

## ◆ isAggregateType()

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 2091 of file Type.cpp.

Referenced by EmitX86_64VAArgFromMemory(), EvaluateUnaryTypeTrait(), TryListConversion(), and TryListInitialization().

## ◆ isAlignValT()

bool Type::isAlignValT | ( |  | ) | const

Definition at line 2542 of file Type.cpp.

References clang::IdentifierInfo::isStr().

Referenced by getUsualDeleteParams(), and clang::FunctionDecl::isReplaceableGlobalAllocationFunction().

## ◆ isAnyCharacterType()

bool Type::isAnyCharacterType | ( |  | ) | const

Determine whether this type is any of the built-in character types.

Definition at line 1907 of file Type.cpp.

Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), diagnoseStringPlusChar(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), and clang::UserDefinedLiteral::getLiteralOperatorKind().

## ◆ isAnyComplexType()

bool clang::Type::isAnyComplexType | ( |  | ) | const
| inline

Definition at line 6602 of file Type.h.

Referenced by addBaseAndFieldSizes(), checkArithmeticOrEnumeralCompare(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitComplexToScalarConversion(), clang::CodeGen::CodeGenFunction::EmitLValue(), emitReplacement(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), EmitX86_64VAArgFromMemory(), Evaluate(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateComplex(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), EvaluateUnaryTypeTrait(), FindDesignatorMismatch(), findSubobject(), getAbsoluteValueKind(), GetIntrinsic(), clang::ento::NonLoc::isCompoundType(), isLiteralType(), IsStandardConversion(), clang::ento::SValBuilder::makeZeroVal(), rewriteInputConstraintReferences(), TryListInitialization(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().

## ◆ isAnyPointerType()

bool clang::Type::isAnyPointerType | ( |  | ) | const
| inline

Definition at line 6508 of file Type.h.

Referenced by clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), AreTypesCompatible(), AuditedType(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), clang::Sema::CheckAdditionOperands(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), checkBuiltinArgument(), checkConditionalNullPointer(), checkMapClauseExpressionBase(), checkMapConflicts(), checkNullabilityTypeSpecifier(), clang::Sema::CheckPointerConversion(), computeConditionalNullability(), convertPointersToCompositeType(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseBadFunctionCast(), DiagnoseCastQual(), DiagnoseNullConversion(), diagnosePointerIncompatibility(), diagnoseStringPlusChar(), clang::ento::SMTConv::doTypeConversion(), emitOutlinedFunctionPrologue(), evalBinOpFieldRegionFieldRegion(), clang::Sema::FindCompositePointerType(), clang::ento::SMTConv::fromCast(), clang::ento::SMTConv::getBinExpr(), getFuchsiaHandleSymbol(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), getPointeeOrArrayElementType(), getReceiverNullability(), clang::CXXMemberCallExpr::getRecordDecl(), getVariableCategoryFromDecl(), clang::ento::SMTConv::getZeroExpr(), isCallback(), clang::ento::isDereferencableType(), clang::ento::Loc::isLocType(), isPointerToConst(), clang::CodeGen::CodeGenTypes::isPointerZeroInitializable(), isRecordEmpty(), clang::ASTContext::isSentinelNullExpr(), IsShiftedByte(), IsStandardConversion(), clang::ento::setDynamicTypeAndCastInfo(), TryReinterpretCast(), TypeIsInnerPointer(), and clang::FunctionCallFilterCCC::ValidateCandidate().

## ◆ isArithmeticType()

bool Type::isArithmeticType | ( |  | ) | const

Definition at line 2036 of file Type.cpp.

Referenced by clang::Sema::CheckAdditionOperands(), checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CXXCheckConditionalOperands(), DiagnoseBadFunctionCast(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), EvaluateUnaryTypeTrait(), clang::ento::MemRegionManager::getVarRegion(), IsStandardConversion(), IsVectorConversion(), and tryGCCVectorConvertAndSplat().

## ◆ isArrayType()

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

Definition at line 6570 of file Type.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildAtomicType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssign(), buildUserDefinedMapperRef(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), checkForArray(), clang::Sema::CheckFunctionReturnType(), checkMapClauseExpressionBase(), clang::Sema::CheckNonTypeTemplateParameterType(), checkNullabilityTypeSpecifier(), clang::Sema::CheckSpecifiedExceptionType(), ClassifyTemporary(), clang::CXXBindTemporaryExpr::Create(), DereferenceInfo::DereferenceInfo(), clang::Sema::DiagnoseAssignmentResult(), diagnoseTautologicalComparison(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::emitArrayDestroy(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), emitPrivatesInit(), clang::CodeGen::emitSingleReductionCombiner(), Evaluate(), EvaluateArray(), EvaluateArrayNewInitList(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateInPlace(), EvaluateUnaryTypeTrait(), FastEvaluateAsRValue(), clang::Sema::FinalizeVarWithDestructor(), FindDesignatorMismatch(), findSubobject(), clang::ASTContext::getAdjustedParameterType(), getAlignmentArgument(), clang::QualType::getBaseTypeIdentifier(), getBlockLayoutInfoString(), clang::ASTContext::GetBuiltinType(), getCoreType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getExceptionObjectType(), GetGCAttrTypeForType(), clang::ASTContext::getInnerObjCOwnership(), clang::ASTContext::getObjCEncodingTypeSize(), getPointeeOrArrayElementType(), getUuidAttrOfType(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::InitializationSequence::InitializeFrom(), clang::ento::NonLoc::isCompoundType(), clang::Expr::isConstantInitializer(), isDesignatorAtObjectEnd(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), isRecordEmpty(), isSimpleZero(), IsStandardConversion(), isValidBaseType(), isZeroSized(), clang::ento::SValBuilder::makeZeroVal(), clang::ento::ExprEngine::ProcessInitializer(), processTypeAttrs(), pushTemporaryCleanup(), scanToNextArgument(), setObjCGCLValueClass(), TryListConversion(), TryReferenceInit(), TryReferenceInitializationCore(), clang::ento::ExprEngine::VisitInitListExpr(), visitLocalsRetainedByInitializer(), and clang::ento::ExprEngine::VisitMemberExpr().

## ◆ isAtomicType()

bool clang::Type::isAtomicType | ( |  | ) | const
| inline

Definition at line 6631 of file Type.h.

Referenced by AnalyzeAssignment(), AnalyzeCompoundAssignment(), AnalyzeImplicitConversions(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildAtomicType(), clang::Sema::BuildQualifiedType(), CheckBoolLikeConversion(), CheckImplicitConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), diagnoseRedundantReturnTypeQualifiers(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), Evaluate(), EvaluateAtomic(), EvaluateInPlace(), findPeephole(), isBlockVarRef(), clang::ento::isPrimitiveType(), and clang::InitializationSequence::Perform().

## ◆ isBlockCompatibleObjCPointerType()

bool Type::isBlockCompatibleObjCPointerType | ( | ASTContext & | ctx | ) | const

Definition at line 3983 of file Type.cpp.

References clang::ASTContext::getNSCopyingName(), and clang::ASTContext::getNSObjectName().

## ◆ isBlockPointerType()

bool clang::Type::isBlockPointerType | ( |  | ) | const
| inline

Definition at line 6512 of file Type.h.

Referenced by AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildObjCBridgedCast(), CanThrow(), clang::ento::StoreManager::castRegion(), CastsAwayConstness(), checkBlockType(), checkBuiltinArgument(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalBlockPointerCompatibility(), checkConditionalNullPointer(), clang::Sema::CheckConditionalOperands(), CheckObjCCollectionLiteralElement(), clang::Sema::CheckSubscriptingKind(), compareConversionFunctions(), computeCopyInfoForBlockCapture(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeCompletionResult::createCodeCompletionStringForDecl(), DiagnoseBadFunctionCast(), DiagnoseNullConversion(), diagnoseObjCARCConversion(), diagnoseTautologicalComparison(), DiagnoseUninitializedUse(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CodeGenFunction::EmitARCRetain(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutorelease(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::ento::SValBuilder::evalCast(), FormatFunctionParameter(), clang::ento::SMTConv::fromCast(), getBlockFieldFlagsForObjCObjectPointer(), clang::ASTContext::getByrefLifetime(), clang::Decl::getFunctionType(), GetGCAttrTypeForType(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::CallEventManager::getSimpleCall(), clang::Sema::getVariadicCallType(), clang::ento::SMTConv::getZeroExpr(), handleObjCGCTypeAttr(), is32Or64BitBasicType(), isBlockPointer(), isCallback(), clang::comments::Sema::isFunctionOrBlockPointerVarLikeDecl(), clang::comments::Sema::isFunctionOrMethodVariadic(), clang::ento::Loc::isLocType(), isObjCARCBridgableType(), isObjCRetainableType(), clang::CodeGen::CodeGenTypes::isPointerZeroInitializable(), IsStandardConversion(), clang::analyze_format_string::ArgType::matchesType(), clang::ASTContext::mergeTypes(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareCastToObjCObjectPointer(), PropertyMemoryAttribute(), rewriteInputConstraintReferences(), RewriteOneForwardClassDecl(), rewriteToObjCProperty(), shouldEmitSeparateBlockRetain(), SuggestInitializationFixit(), TryReinterpretCast(), TryStaticCast(), and TypeIsInnerPointer().

## ◆ isBooleanType()

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

Definition at line 6894 of file Type.h.

Referenced by AnalyzeBitFieldAssignment(), AnalyzeImplicitConversions(), clang::ento::SMTConstraintManager::assumeSym(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildVectorType(), checkArithmeticOrEnumeralThreeWayCompare(), CheckConditionalOperator(), CheckConvertedConstantConversions(), CheckImplicitConversion(), checkIntToPointerCast(), clang::Sema::CheckLoopHintExpr(), CheckTautologicalComparison(), clang::interp::Context::classify(), create_OSAtomicCompareAndSwap(), DiagnoseBadFunctionCast(), clang::ento::SValBuilder::evalCast(), ExprLooksBoolean(), clang::ento::SMTConv::fromCast(), getIntegerWidthAndSignedness(), clang::ASTContext::getIntWidth(), clang::ento::SMTConstraintManager::getSymVal(), clang::ento::SMTConv::getZeroExpr(), handleCompoundAssignment(), HandleIntToIntCast(), hasBooleanRepresentation(), isBooleanType(), clang::Sema::IsIntegralPromotion(), clang::Expr::isKnownToHaveBooleanValue(), IsStandardConversion(), isValidVectorForConditionalCondition(), mangleAArch64VectorBase(), clang::ento::SMTConv::mkSort(), clang::Sema::PerformImplicitConversion(), clang::Sema::prepareVectorSplat(), printIntegral(), clang::APValue::printPretty(), PromotionIsPotentiallyEligibleForImplicitIntegerConversionCheck(), rewriteToNumericBoxedExpression(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), TryReinterpretCast(), and TryStaticCast().

## ◆ isBuiltinType()

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

Helper methods to distinguish type categories.

All type predicates operate on the canonical type, ignoring typedefs and qualifiers. Returns true if the type is a builtin type.

Definition at line 6590 of file Type.h.

Referenced by clang::Sema::BuildVectorType(), EmitX86_64VAArgFromMemory(), clang::ASTContext::getExtVectorType(), clang::ASTContext::getVectorType(), clang::ento::isPrimitiveType(), isRecordWithSSEVectorType(), isTypeSubstitutable(), and mangleAArch64VectorBase().

## ◆ isCanonicalUnqualified()

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

Determines if this type would be canonical if it had no further qualification.

Definition at line 1902 of file Type.h.

Referenced by areCompatVectorTypes(), clang::Sema::CheckFloatComparison(), clang::TypePropertyCache< Private >::ensure(), clang::ASTContext::getASTObjCImplementationLayout(), clang::ASTContext::getFloatingTypeSemanticOrder(), clang::TemplateTypeParmType::getIdentifier(), clang::ASTContext::getMemberPointerType(), clang::FunctionType::getNameForCallConv(), clang::ASTContext::getSubstTemplateTypeParmPackType(), clang::LinkageComputer::getTypeLinkageAndVisibility(), and clang::FunctionProtoType::Profile().

## ◆ isCARCBridgableType()

bool Type::isCARCBridgableType | ( |  | ) | const

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

Definition at line 4094 of file Type.cpp.

References isRecordType(), isVoidType(), and Pointer.

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

## ◆ isChar16Type()

bool Type::isChar16Type | ( |  | ) | const

Definition at line 1893 of file Type.cpp.

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

## ◆ isChar32Type()

bool Type::isChar32Type | ( |  | ) | const

Definition at line 1899 of file Type.cpp.

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

## ◆ isChar8Type()

bool Type::isChar8Type | ( |  | ) | const

Definition at line 1887 of file Type.cpp.

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

## ◆ isCharType()

bool Type::isCharType | ( |  | ) | const

Definition at line 1871 of file Type.cpp.

Referenced by CheckImplicitConversion(), clang::Sema::CheckLoopHintExpr(), DiagnoseDivisionSizeofPointerOrArray(), clang::analyze_printf::PrintfSpecifier::fixType(), isArithmeticArgumentPromotion(), clang::BinaryOperator::isNullPointerArithmeticExtension(), isSameWidthConstantConversion(), and printIntegral().

## ◆ isClassType()

bool Type::isClassType | ( |  | ) | const

Definition at line 489 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait().

## ◆ isClkEventT()

bool clang::Type::isClkEventT | ( |  | ) | const
| inline

Definition at line 6691 of file Type.h.

Referenced by SemaOpenCLBuiltinEnqueueKernel().

## ◆ isComplexIntegerType()

bool Type::isComplexIntegerType | ( |  | ) | const

Definition at line 539 of file Type.cpp.

References getAsComplexIntegerType().

Referenced by clang::ento::SMTConstraintManager::canReasonAbout(), DiagnoseBadFunctionCast(), and EvaluateComparisonBinaryOperator().

## ◆ isComplexType()

bool Type::isComplexType | ( |  | ) | const

isComplexType() does not include complex integers (a GCC extension).

isComplexIntegerType() can be used to test for complex integers.

Definition at line 533 of file Type.cpp.

Referenced by clang::ento::SMTConstraintManager::canReasonAbout(), DiagnoseBadFunctionCast(), EvaluateComplex(), clang::ASTContext::getFloatingTypeOfSizeWithinDomain(), and getTypeString().

## ◆ isCompoundType()

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 6478 of file Type.h.

References isRecordType().

Referenced by EvaluateUnaryTypeTrait().

## ◆ isConstantArrayType()

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

Definition at line 6574 of file Type.h.

Referenced by hasCompatibleArrayTypes().

## ◆ isConstantSizeType()

bool Type::isConstantSizeType | ( |  | ) | const

Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3.

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.

It is not legal to call this on incomplete types or dependent types.

Definition at line 2105 of file Type.cpp.

References isDependentType(), and isIncompleteType().

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

## ◆ isDecltypeType()

bool clang::Type::isDecltypeType | ( |  | ) | const
| inline

Definition at line 6673 of file Type.h.

## ◆ isDependentAddressSpaceType()

bool clang::Type::isDependentAddressSpaceType | ( |  | ) | const
| inline

Definition at line 6614 of file Type.h.

Referenced by isTypeSubstitutable().

## ◆ isDependentSizedArrayType()

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

Definition at line 6586 of file Type.h.

## ◆ isDependentType()

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

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

Definition at line 2150 of file Type.h.

Referenced by clang::Sema::ActOnCaseExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnSEHExceptBlock(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::AddInitializerToDecl(), AddRecordMembersCompletionResults(), clang::TemplateSpecializationType::anyDependentTemplateArguments(), clang::Sema::BuildArrayTypeTrait(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinBitCastExpr(), clang::Sema::BuildClassMessage(), clang::Sema::buildCoroutinePromise(), clang::Sema::BuildCoyieldExpr(), clang::Sema::BuildCXXNamedCast(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildCXXUuidof(), buildDeclareReductionRef(), 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::BuildResolvedCoawaitExpr(), clang::Sema::BuildUnaryTransformType(), buildUserDefinedMapperRef(), clang::Sema::BuildVectorType(), clang::Sema::canFullyTypeCheckRedeclaration(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::Sema::CheckAllocatedType(), checkArithmeticIncompletePointerType(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompleteDecompositionDeclaration(), CheckConstexprFunctionBody(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckEnumUnderlyingType(), CheckImplicitConversion(), CheckLiteralType(), clang::Sema::CheckNonDependentConversions(), clang::Sema::CheckNontrivialField(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverload(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckQualifiedMemberReference(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), classifyPointerDeclarator(), clang::Sema::computeDeclContext(), computeDeclRefDependence(), clang::CoroutineSuspendExpr::CoroutineSuspendExpr(), clang::ExprWithCleanups::Create(), clang::OffsetOfExpr::CreateEmpty(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::CXXInheritedCtorInitExpr::CXXInheritedCtorInitExpr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceClosureReturnType(), clang::DeducedType::DeducedType(), DeduceFromInitializerList(), clang::DependentCoawaitExpr::DependentCoawaitExpr(), DiagnoseDivisionSizeofPointerOrArray(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), clang::Sema::DiagnoseUnusedNestedTypedefs(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), EvaluateUnaryTypeTrait(), clang::Sema::FillInlineAsmIdentifierInfo(), findTemplateParameter(), FormatFunctionParameter(), clang::CXXScalarValueInitExpr::getBeginLoc(), clang::Expr::getBestDynamicClassType(), clang::LambdaCapture::getCaptureKind(), clang::ASTContext::getConstantArrayType(), clang::ento::CallEvent::getDeclaredResultType(), clang::CXXDeleteExpr::getDestroyedType(), clang::DeclRefExpr::getEndLoc(), clang::ASTContext::getExtVectorType(), clang::FunctionType::getNameForCallConv(), clang::ObjCPropertyRefExpr::getReceiverType(), clang::ASTContext::getTypeSizeInCharsIfKnown(), clang::ASTContext::getUnaryTransformType(), getVisibilityOf(), handleObjCOwnershipTypeAttr(), HandleSizeof(), hasDeducibleTemplateParameters(), hasDependentAlignment(), hasOnlyNonStaticMemberFunctions(), clang::InitializationSequence::InitializeFrom(), clang::Sema::isAcceptableNestedNameSpecifier(), isConstantSizeType(), clang::Sema::isCopyElisionCandidate(), clang::QualType::isCXX11PODType(), clang::NestedNameSpecifier::isDependent(), clang::TemplateArgument::isDependent(), clang::DeclarationName::isDependentName(), IsDerivedFromInclusive(), IsImplicitBoolFloatConversion(), isLiteralType(), isObjCClassOrClassKindOfType(), isObjCReceiverType(), isOverflowingIntegerType(), isPromotableIntegerType(), isStandardLayoutType(), clang::PackExpansionType::isSugared(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), isTypeSubstitutable(), LookupDirect(), clang::Sema::LookupInlineAsmIdentifier(), clang::Sema::LookupInlineAsmVarDeclField(), LookupMemberExpr(), mangleAArch64VectorBase(), MarkUsedTemplateParameters(), MatchTemplateParameterKind(), noteMemberDeclaredHere(), clang::InitializationSequence::Perform(), processTypeAttrs(), clang::TreeTransform< Derived >::RebuildQualifiedType(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::Sema::RequireLiteralType(), clang::Sema::SemaConvertVectorExpr(), clang::CXXRecordDecl::setBases(), clang::MaterializeTemporaryExpr::setExtendingDecl(), clang::Sema::SubstAutoType(), clang::Sema::SubstAutoTypeSourceInfo(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformExceptionSpec(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryAddressSpaceCast(), clang::TypoExpr::TypoExpr(), VariableCanNeverBeAConstantExpression(), clang::Sema::VerifyBitField(), clang::TextNodeDumper::Visit(), clang::JSONNodeDumper::Visit(), and warnAboutRedundantParens().

## ◆ isElaboratedTypeSpecifier()

bool Type::isElaboratedTypeSpecifier | ( |  | ) | const

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

Definition at line 2736 of file Type.cpp.

References clang::TypeWithKeyword::KeywordIsTagTypeKind().

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

## ◆ isEnumeralType()

bool clang::Type::isEnumeralType | ( |  | ) | const
| inline

Definition at line 6598 of file Type.h.

Referenced by AnalyzeBitFieldAssignment(), clang::Sema::BuildUnaryTransformType(), checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckGNUVectorConditionalTypes(), checkIntToPointerCast(), clang::Sema::CheckOverloadedOperatorDeclaration(), CheckTautologicalComparison(), checkVAStartIsInVariadicFunction(), clang::Sema::CodeCompleteCase(), DiagnoseBadFunctionCast(), EvaluateUnaryTypeTrait(), clang::QualType::getBaseTypeIdentifier(), getFixedEnumPromtion(), HasEnumType(), is32Or64BitBasicType(), clang::Sema::IsIntegralPromotion(), clang::Expr::isNullPointerConstant(), clang::ento::isPrimitiveType(), clang::ASTContext::isPromotableBitField(), isValidVectorForConditionalCondition(), clang::Sema::PerformOpenMPImplicitIntegerConversion(), rewriteInputConstraintReferences(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), and TryStaticCast().

## ◆ isEventT()

bool clang::Type::isEventT | ( |  | ) | const
| inline

Definition at line 6687 of file Type.h.

Referenced by DiagnoseBadFunctionCast(), IsStandardConversion(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and TryOCLZeroOpaqueTypeInitialization().

## ◆ isExtVectorType()

bool clang::Type::isExtVectorType | ( |  | ) | const
| inline

Definition at line 6610 of file Type.h.

Referenced by clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::CheckExtVectorCast(), checkFoundationAPI(), clang::Sema::checkOpenCLDisabledTypeDeclSpec(), DiagnoseBadFunctionCast(), EvaluateUnaryTypeTrait(), isValidVectorForConditionalCondition(), IsVectorConversion(), LookupMemberExpr(), and clang::Sema::prepareVectorSplat().

## ◆ isFixedPointOrIntegerType()

bool clang::Type::isFixedPointOrIntegerType | ( |  | ) | const
| inline

Return true if this is a fixed point or integer type.

Definition at line 6832 of file Type.h.

Referenced by handleFixedPointConversion().

## ◆ isFixedPointType()

bool clang::Type::isFixedPointType | ( |  | ) | const
| inline

Return true if this is a fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169.

Definition at line 6824 of file Type.h.

Referenced by CheckImplicitConversion(), Evaluate(), EvaluateAsFixedPoint(), EvaluateComparisonBinaryOperator(), EvaluateFixedPoint(), EvaluateFixedPointOrInteger(), clang::FixedPointLiteral::FixedPointLiteral(), clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getFixedPointIBits(), clang::ASTContext::getFixedPointMax(), clang::ASTContext::getFixedPointMin(), clang::ASTContext::getFixedPointScale(), clang::ASTContext::getFixedPointSemantics(), handleFixedPointConversion(), and clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue().

## ◆ isFloat128Type()

bool clang::Type::isFloat128Type | ( |  | ) | const
| inline

Definition at line 6796 of file Type.h.

## ◆ isFloat16Type()

bool clang::Type::isFloat16Type | ( |  | ) | const
| inline

Definition at line 6790 of file Type.h.

## ◆ isFloatingType()

bool Type::isFloatingType | ( |  | ) | const

Definition at line 2005 of file Type.cpp.

Referenced by clang::ento::StoreManager::CastRetrievedVal(), checkCondition(), checkEnumArithmeticConversions(), DiagnoseBadFunctionCast(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), EmitX86_64VAArgFromMemory(), EvaluateBuiltinConstantP(), EvaluateUnaryTypeTrait(), findCompleteObject(), getAArch64PBV(), clang::UserDefinedLiteral::getLiteralOperatorKind(), getTypeString(), hasFloatingRepresentation(), clang::Sema::prepareVectorSplat(), rewriteToNumberLiteral(), and TryListInitialization().

## ◆ isFromAST()

bool clang::Type::isFromAST | ( |  | ) | const
| inline

Whether this type comes from an AST file.

Definition at line 1879 of file Type.h.

Referenced by clang::TextNodeDumper::Visit(), and clang::JSONNodeDumper::Visit().

## ◆ isFunctionNoProtoType()

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

Definition at line 2012 of file Type.h.

Referenced by setPrototype(), and ShouldWarnAboutMissingPrototype().

## ◆ isFunctionPointerType()

bool clang::Type::isFunctionPointerType | ( |  | ) | const
| inline

Definition at line 6538 of file Type.h.

Referenced by BuildUniqueMethodName(), CanThrow(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseCallingConvCast(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::ento::SValBuilder::evalCast(), clang::Decl::getFunctionType(), isCallback(), clang::comments::Sema::isFunctionOrBlockPointerVarLikeDecl(), clang::comments::Sema::isFunctionOrMethodVariadic(), clang::comments::Sema::isFunctionPointerVarDecl(), ResolveOverloadForDeduction(), RewriteOneForwardClassDecl(), rewriteToObjCProperty(), SemaBuiltinLaunder(), TryConstCast(), TryReinterpretCast(), and TypeIsInnerPointer().

## ◆ isFunctionProtoType()

bool clang::Type::isFunctionProtoType | ( |  | ) | const
| inline

Definition at line 2013 of file Type.h.

References isRecordType().

Referenced by clang::MemberPointerType::isMemberDataPointer(), clang::MemberPointerType::isMemberFunctionPointer(), and setPrototype().

## ◆ isFunctionReferenceType()

bool clang::Type::isFunctionReferenceType | ( |  | ) | const
| inline

Definition at line 6545 of file Type.h.

Referenced by clang::Decl::getFunctionType().

## ◆ isFunctionType()

bool clang::Type::isFunctionType | ( |  | ) | const
| inline

Definition at line 6500 of file Type.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFriendFunctionDecl(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBlockPointerType(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::CallExprUnaryConversions(), clang::Sema::CheckAllocatedType(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), CheckTemplateArgumentIsCompatibleWithParameter(), ClassifyBinaryOp(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), determineEndOffset(), clang::CodeGen::CodeGenFunction::EmitCallee(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::FillInlineAsmIdentifierInfo(), clang::Expr::findBoundMemberType(), FindConversionForRefInit(), clang::ASTContext::getAdjustedParameterType(), clang::ASTContext::getBlockPointerType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getDeclAlign(), clang::ASTContext::getExceptionObjectType(), clang::getParameterABISpelling(), HandleAddressSpaceTypeAttribute(), HandleOperatorNewCall(), HandleSizeof(), clang::Sema::IgnoredValueConversions(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::Declarator::isDeclarationOfFunction(), IsModifiable(), clang::ento::isPrimitiveType(), IsStandardConversion(), clang::Sema::LookupInlineAsmIdentifier(), LookupMemberExpr(), maybeSynthesizeBlockSignature(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::PerformMemberExprBaseConversion(), processTypeAttrs(), clang::TreeTransform< Derived >::RebuildQualifiedType(), ResolveOverloadForDeduction(), SemaBuiltinLaunder(), clang::CodeGen::CodeGenFunction::OpaqueValueMappingData::shouldBindAsLValue(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticCast(), clang::TemplateDeclInstantiator::VisitVarDecl(), and clang::TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl().

## ◆ isFundamentalType()

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 6467 of file Type.h.

Referenced by EvaluateUnaryTypeTrait(), and clang::interp::ByteCodeExprGen< Emitter >::visitBool().

## ◆ isHalfType()

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

Definition at line 6783 of file Type.h.

Referenced by clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckFunctionReturnType(), DiagnoseBadFunctionCast(), clang::Sema::PerformImplicitConversion(), and clang::Sema::UsualUnaryConversions().

## ◆ isImageType()

bool clang::Type::isImageType | ( |  | ) | const
| inline

Definition at line 6703 of file Type.h.

Referenced by clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeGen::CodeGenModule::GenOpenCLArgMetadata(), and HandleOpenCLAccessAttr().

## ◆ isIncompleteArrayType()

bool clang::Type::isIncompleteArrayType | ( |  | ) | const
| inline

Definition at line 6578 of file Type.h.

Referenced by AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildArrayType(), CheckUnaryTypeTraitTypeCompleteness(), computeDeclRefDependence(), EvaluateBinaryTypeTrait(), evaluateTypeTrait(), clang::ASTContext::getObjCEncodingTypeSize(), hasCompatibleArrayTypes(), hasDefaultSetterName(), isDesignatorAtObjectEnd(), isSameEntity(), IsVariableSizedType(), clang::InitializationSequence::Perform(), clang::Sema::RequireCompleteExprType(), and roundUpSizeToCharAlignment().

## ◆ isIncompleteOrObjectType()

bool clang::Type::isIncompleteOrObjectType | ( |  | ) | const
| inline

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

Definition at line 1926 of file Type.h.

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

## ◆ isIncompleteType()

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

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 (C99 6.2.5p1)

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.

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.

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

Definition at line 2115 of file Type.cpp.

References clang::Decl::getASTContext(), clang::ObjCObjectType::getBaseType(), clang::TargetInfo::getCXXABI(), clang::CXXRecordDecl::getMostRecentNonInjectedDecl(), clang::ASTContext::getTargetInfo(), clang::Decl::hasAttr(), clang::ObjCInterfaceDecl::hasDefinition(), clang::EnumDecl::isComplete(), clang::TagDecl::isCompleteDefinition(), isIncompleteType(), clang::TargetCXXABI::isMicrosoft(), and isVoidType().

Referenced by addValue(), clang::Sema::BuildUnaryTransformType(), calculateOffset(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::checkDeclIsAllowedInOpenMPTarget(), clang::Sema::CheckSubscriptingKind(), checkTypeMappable(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), determineEndOffset(), DiagnoseForRangeVariableCopies(), clang::Sema::DiscardMisalignedMemberAddress(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), EvaluateComparisonBinaryOperator(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), evenFlexibleArraySize(), clang::CodeGen::CodeGenTBAA::getAccessInfo(), getAlignmentArgument(), clang::ento::ElementRegion::getAsArrayOffset(), getBuiltinAlignArguments(), clang::ASTContext::getConstantArrayType(), clang::ento::TypedValueRegion::getExtent(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), clang::ASTContext::getObjCEncodingTypeSize(), clang::ASTContext::getTypeAlignIfKnown(), clang::ASTContext::getTypeSizeInCharsIfKnown(), HandleOperatorNewCall(), hasDefaultSetterName(), isConstantSizeType(), clang::QualType::isCXX11PODType(), isEnableIf(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), isIncompleteType(), isLiteralType(), isOnePastTheEndOfCompleteObject(), isPreferredLookupResult(), isStandardLayoutType(), clang::QualType::isTriviallyCopyableType(), clang::Sema::isValidVarArgType(), isZeroSized(), matchTypes(), clang::CodeGen::CodeGenModule::maybeSetTrivialComdat(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().

## ◆ isInstantiationDependentType()

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

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).

Definition at line 2156 of file Type.h.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), clang::Sema::CheckTemplateArgument(), computeCachedProperties(), computeDeclRefDependence(), clang::LinkageComputer::computeTypeLinkageInfo(), clang::OffsetOfExpr::CreateEmpty(), clang::DeducedType::DeducedType(), clang::CXXScalarValueInitExpr::getBeginLoc(), clang::DeclRefExpr::getEndLoc(), clang::FunctionType::getNameForCallConv(), clang::ObjCPropertyRefExpr::getReceiverType(), hasOnlyNonStaticMemberFunctions(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::NestedNameSpecifier::isInstantiationDependent(), clang::TemplateArgument::isInstantiationDependent(), isObjCClassOrClassKindOfType(), isTypeSubstitutable(), NeedsInstantiationAsFunctionType(), clang::MaterializeTemporaryExpr::setExtendingDecl(), SubstDefaultTemplateArgument(), clang::Sema::SubstType(), clang::TextNodeDumper::Visit(), clang::JSONNodeDumper::Visit(), and clang::TemplateDeclInstantiator::VisitVarDecl().

## ◆ isIntegerType()

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 6811 of file Type.h.

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

Referenced by clang::Sema::ActOnSEHExceptBlock(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildVectorType(), castValueToType(), checkBuiltinArgument(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), clang::Sema::CheckLoopHintExpr(), checkOpenCLConditionVector(), checkOpenCLEnqueueIntType(), clang::Sema::CheckRemainderOperands(), convertVector(), create_dispatch_once(), DiagnoseBadFunctionCast(), clang::Sema::DiscardMisalignedMemberAddress(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), EmitX86_64VAArgFromMemory(), EvaluateComplex(), EvaluateFixedPointOrInteger(), EvaluateVector(), getAArch64PBV(), clang::ASTContext::getFixedPointSemantics(), getFuchsiaHandleSymbol(), getIntegerWidthAndSignedness(), clang::UserDefinedLiteral::getLiteralOperatorKind(), getUsualDeleteParams(), handleAssignment(), handleCompoundAssignment(), hasIntegerRepresentation(), clang::IntegerLiteral::IntegerLiteral(), isAcceptableMethodMismatch(), isKnownToHaveUnsignedValue(), clang::BinaryOperator::isNullPointerArithmeticExtension(), IsShiftedByte(), clang::InitListExpr::isStringLiteralInit(), LazyInitialize(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), PromotionIsPotentiallyEligibleForImplicitIntegerConversionCheck(), SemaBuiltinReserveRWPipe(), SemaBuiltinRWPipe(), SemaOpenCLBuiltinEnqueueKernel(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and tryVectorConvertAndSplat().

## ◆ isIntegralOrEnumerationType()

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

Determine whether this type is an integral or enumeration type.

Definition at line 6881 of file Type.h.

References clang::IsEnumDeclComplete().

Referenced by clang::Sema::ActOnStartOfSwitchStmt(), clang::ento::RangedConstraintManager::assumeSymUnsupported(), clang::Sema::CheckConvertedConstantExpression(), CheckICE(), CheckKeyForObjCARCConversion(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckSubscriptingKind(), conjureOffsetSymbolOnLocation(), clang::ento::SMTConv::doTypeConversion(), emitReplacement(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateAsInt(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateIntegerOrLValue(), findCompleteObject(), clang::ento::SMTConv::fromCast(), getAbsoluteValueKind(), clang::ento::BasicValueFactory::getAPSIntType(), getBuiltinAlignArguments(), GetCFNumberSize(), clang::getComparisonCategoryForBuiltinCmp(), clang::CodeGen::ABIArgInfo::getExtend(), clang::ASTContext::getObjCEncodingTypeSize(), clang::CodeGen::ABIArgInfo::getSignExtend(), clang::ento::ProgramState::getSValAsScalarOrLoc(), getTypeString(), GetX86_64ByValArgumentPair(), clang::ento::SMTConv::getZeroExpr(), clang::CodeGen::ABIArgInfo::getZeroExtend(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::ento::SValBuilder::haveSameType(), clang::Expr::isKnownToHaveBooleanValue(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), isOnePastTheEndOfCompleteObject(), isRecordEmpty(), isRecordWithSSEVectorType(), clang::ento::SValBuilder::makeZeroVal(), clang::Sema::ICEConvertDiagnoser::match(), clang::Sema::prepareVectorSplat(), RecoverCastedSymbol(), TryListInitialization(), tryRearrange(), TryReinterpretCast(), TryStaticCast(), and clang::Sema::VerifyBitField().

## ◆ isIntegralOrUnscopedEnumerationType()

bool Type::isIntegralOrUnscopedEnumerationType | ( |  | ) | const

Determine whether this type is an integral or unscoped enumeration type.

Definition at line 1857 of file Type.cpp.

References isUnscopedEnumerationType().

Referenced by clang::Sema::CheckBitwiseOperands(), CheckConvertedConstantConversions(), diagnoseStringPlusInt(), EvaluateCPlusPlus11IntegralConstantExpr(), getIncrementedVar(), clang::StandardConversionSequence::getNarrowingKind(), isArithmeticArgumentPromotion(), IsStandardConversion(), and clang::Sema::ICEConvertDiagnoser::match().

## ◆ isIntegralType()

bool Type::isIntegralType | ( | const 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

  Ctx | The context in which this type occurs.

Returns
  true if the type is considered an integral type, false otherwise.

Definition at line 1844 of file Type.cpp.

References clang::ASTContext::getLangOpts().

Referenced by AnalyzeComparison(), CheckImplicitConversion(), checkIntToPointerCast(), clang::Sema::CheckObjCConversion(), clang::Sema::CheckVectorCast(), create_OSAtomicCompareAndSwap(), DiagnoseBadFunctionCast(), DiagnoseBinOpPrecedence(), EvaluateUnaryTypeTrait(), clang::StandardConversionSequence::getNarrowingKind(), IgnoreNoopCastsSingleStep(), IsStandardConversion(), isValidVectorForConditionalCondition(), tryGCCVectorConvertAndSplat(), TryReinterpretCast(), TryStaticCast(), and tryVectorConvertAndSplat().

## ◆ isInterfaceType()

bool Type::isInterfaceType | ( |  | ) | const

Definition at line 507 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait().

## ◆ isLinkageValid()

bool Type::isLinkageValid | ( |  | ) | const

True if the computed linkage is valid.

Used for consistency checking. Should always return true.

Definition at line 3804 of file Type.cpp.

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

Referenced by clang::TagDecl::setTypedefNameForAnonDecl().

## ◆ isLiteralType()

bool Type::isLiteralType | ( | const ASTContext & | Ctx | ) | const

Return true if this is a literal type (C++11 [basic.types]p10)

Definition at line 2383 of file Type.cpp.

References getAs(), getBaseElementTypeUnsafe(), getCanonicalTypeInternal(), clang::ASTContext::getLangOpts(), isAnyComplexType(), isDependentType(), isIncompleteType(), isReferenceType(), isScalarType(), isVariableArrayType(), isVectorType(), and isVoidType().

Referenced by CheckLiteralType(), EvaluateObjectArgument(), EvaluateUnaryTypeTrait(), and clang::CXXRecordDecl::setBases().

## ◆ isLValueReferenceType()

bool clang::Type::isLValueReferenceType | ( |  | ) | const
| inline

Definition at line 6520 of file Type.h.

Referenced by alignReferenceTypes(), checkTupleLikeDecomposition(), ClassifyUnnamed(), clang::ExprWithCleanups::Create(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseCastQual(), emitOutlinedFunctionPrologue(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), getCanonicalParamType(), clang::UserDefinedLiteral::getUDSuffix(), clang::ento::ExprEngine::handleLValueBitCast(), LookupMethodInReceiverType(), clang::InitializationSequence::Perform(), TryListConversion(), TryReferenceInitializationCore(), and TryRefInitWithConversionFunction().

## ◆ isMemberDataPointerType()

bool clang::Type::isMemberDataPointerType | ( |  | ) | const
| inline

Definition at line 6563 of file Type.h.

Referenced by clang::CodeGen::CodeGenModule::EmitNullConstant(), EvaluateUnaryTypeTrait(), and hasDefaultSetterName().

## ◆ isMemberFunctionPointerType()

bool clang::Type::isMemberFunctionPointerType | ( |  | ) | const
| inline

Definition at line 6556 of file Type.h.

Referenced by EvaluateUnaryTypeTrait(), isAggregateTypeForABI(), ResolveOverloadForDeduction(), and TryConstCast().

## ◆ isMemberPointerType()

bool clang::Type::isMemberPointerType | ( |  | ) | const
| inline

Definition at line 6552 of file Type.h.

Referenced by AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckNonTypeTemplateParameterType(), checkNullabilityTypeSpecifier(), CheckTemplateArgumentPointerToMember(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), DiagnoseNullConversion(), EmitX86_64VAArgFromMemory(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateComparisonBinaryOperator(), EvaluateMemberPointer(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), clang::ento::ExprEngine::getInitialState(), clang::ASTContext::getPreferredTypeAlign(), clang::Sema::HandleFunctionTypeMismatch(), handleMSPointerTypeQualifierAttr(), clang::Sema::handlerCanCatch(), clang::ASTContext::hasUniqueObjectRepresentations(), IsStandardConversion(), rewriteInputConstraintReferences(), TryConstCast(), and TryReinterpretCast().

## ◆ isNonOverloadPlaceholderType()

bool clang::Type::isNonOverloadPlaceholderType | ( |  | ) | const
| inline

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

Definition at line 6771 of file Type.h.

Referenced by clang::Sema::ActOnOMPArraySectionExpr(), and clang::Sema::DeduceAutoType().

## ◆ isNothrowT()

bool Type::isNothrowT | ( |  | ) | const

Definition at line 2533 of file Type.cpp.

References getAsCXXRecordDecl(), clang::NamedDecl::getIdentifier(), clang::Decl::isInStdNamespace(), and clang::IdentifierInfo::isStr().

Referenced by getAlignmentArgument(), HandleOperatorNewCall(), and clang::FunctionDecl::isReplaceableGlobalAllocationFunction().

## ◆ isNullPtrType()

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

Definition at line 6802 of file Type.h.

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

Referenced by CheckConvertedConstantConversions(), clang::Sema::CheckNonTypeTemplateParameterType(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::interp::Context::classify(), clang::ento::SValBuilder::conjureSymbolVal(), clang::ImplicitCastExpr::Create(), decomposeTypeForEH(), DiagnoseNullConversion(), clang::Sema::diagnoseZeroToNullptrConversion(), clang::ento::SMTConv::doTypeConversion(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), clang::Sema::FindCompositePointerType(), clang::ento::SValBuilder::getConjuredHeapSymbolVal(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getRegionValueSymbolVal(), clang::ASTContext::getTargetNullPointerValue(), HandleDestructionImpl(), clang::Sema::handlerCanCatch(), clang::ento::Loc::isLocType(), isNullPointerValueTemplateArgument(), clang::ASTContext::isSentinelNullExpr(), IsStandardConversion(), clang::analyze_format_string::ArgType::matchesType(), and TryReinterpretCast().

## ◆ isObjCARCBridgableType()

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 4089 of file Type.cpp.

References isBlockPointerType(), and isObjCObjectPointerType().

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

## ◆ isObjCARCImplicitlyUnretainedType()

bool Type::isObjCARCImplicitlyUnretainedType | ( |  | ) | const

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

Definition at line 4022 of file Type.cpp.

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

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

## ◆ isObjCBoxableRecordType()

bool Type::isObjCBoxableRecordType | ( |  | ) | const

Definition at line 501 of file Type.cpp.

## ◆ isObjCBuiltinType()

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

Definition at line 6669 of file Type.h.

Referenced by AuditedType(), clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), checkObjCPointerTypesForAssignment(), and TypeIsInnerPointer().

## ◆ isObjCClassOrClassKindOfType()

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 638 of file Type.cpp.

References clang::initialize(), isDependentType(), isInstantiationDependentType(), isVariablyModifiedType(), and Type().

## ◆ isObjCClassType()

bool clang::Type::isObjCClassType | ( |  | ) | const
| inline

Definition at line 6657 of file Type.h.

Referenced by clang::ASTContext::applyObjCProtocolQualifiers(), checkObjCPointerTypesForAssignment(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::Sema::FindCompositeObjCPointerType(), findMethodDecl(), clang::Sema::getMessageSendResultType(), clang::Sema::SelectorsForTypoCorrection(), and splitAccordingToPolicy().

## ◆ isObjCIdOrObjectKindOfType()

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

  bound | Will 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 612 of file Type.cpp.

References getAs(), and clang::ObjCObjectType::stripObjCKindOfTypeAndQuals().

## ◆ isObjCIdType()

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

Definition at line 6651 of file Type.h.

Referenced by clang::ASTContext::applyObjCProtocolQualifiers(), clang::Sema::BuildObjCExceptionDecl(), CheckKeyForObjCARCConversion(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CheckSubscriptingKind(), findMethodDecl(), clang::ObjCMethodDecl::getMethodFamily(), isObjCReceiverType(), isOSObjectRelated(), clang::ASTContext::mergeTypes(), ReplaceWithClasstype(), clang::Sema::SelectorsForTypoCorrection(), and splitAccordingToPolicy().

## ◆ isObjCIndependentClassType()

bool Type::isObjCIndependentClassType | ( |  | ) | const

Definition at line 4054 of file Type.cpp.

References clang::ast_matchers::typedefType.

## ◆ isObjCIndirectLifetimeType()

bool Type::isObjCIndirectLifetimeType | ( |  | ) | const

Definition at line 4066 of file Type.cpp.

References isObjCLifetimeType().

## ◆ isObjCInertUnsafeUnretainedType()

bool clang::Type::isObjCInertUnsafeUnretainedType | ( |  | ) | const
| inline

Was this type written with the special inert-in-ARC __unsafe_unretained qualifier?

This approximates the answer to the following question: if this translation unit were compiled in ARC, would this type be qualified with __unsafe_unretained?

Definition at line 2064 of file Type.h.

References hasAttr().

Referenced by computeBlockInfo().

## ◆ isObjCLifetimeType()

bool Type::isObjCLifetimeType | ( |  | ) | const

Returns true if objects of this type have lifetime semantics under ARC.

Definition at line 4080 of file Type.cpp.

References getAsArrayTypeUnsafe(), and isObjCRetainableType().

Referenced by clang::Sema::CheckAllocatedType(), createObjCPropertyGetter(), DiagnoseBadFunctionCast(), EvaluateUnaryTypeTrait(), clang::Sema::inferObjCARCLifetime(), isObjCARCImplicitlyUnretainedType(), isObjCIndirectLifetimeType(), and clang::TreeTransform< Derived >::RebuildQualifiedType().

## ◆ isObjCNSObjectType()

bool Type::isObjCNSObjectType | ( |  | ) | const

Definition at line 4041 of file Type.cpp.

References getLocallyUnqualifiedSingleStepDesugaredType(), and clang::ast_matchers::typedefType.

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

## ◆ isObjCObjectOrInterfaceType()

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

Definition at line 6626 of file Type.h.

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

## ◆ isObjCObjectPointerType()

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

Definition at line 6618 of file Type.h.

Referenced by clang::Sema::ActOnObjCAtSynchronizedOperand(), AdjustFunctionParmAndArgTypesForDeduction(), adjustReturnValue(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildQualifiedType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAdditionOperands(), checkFormatStringExpr(), CheckKeyForObjCARCConversion(), checkNullabilityTypeSpecifier(), CheckObjCCollectionLiteralElement(), checkObjCPointerIntrospection(), clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::DiagnoseAssignmentResult(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), emitBadConversionNotes(), clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::Sema::FindCompositePointerType(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::ASTContext::getByrefLifetime(), GetGCAttrTypeForType(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getUnqualifiedObjCPointerType(), handleObjCGCTypeAttr(), hasIsEqualMethod(), clang::ento::cocoa::isCocoaObjectRef(), isObjCARCBridgableType(), isObjCReceiverType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), LookThroughTransitiveAssignmentsAndCommaOperators(), clang::analyze_format_string::ArgType::matchesType(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTypes(), objectifyExpr(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareCastToObjCObjectPointer(), clang::TreeTransform< Derived >::RebuildCXXForRangeStmt(), scanToNextArgument(), clang::Sema::SelectorsForTypoCorrection(), TryConstCast(), tryEmitSpecializedAllocInit(), tryGenerateSpecializedMessageSend(), TryReinterpretCast(), TryStaticCast(), and TypeIsInnerPointer().

## ◆ isObjCObjectType()

bool clang::Type::isObjCObjectType | ( |  | ) | const
| inline

Definition at line 6622 of file Type.h.

Referenced by clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnForwardClassDeclaration(), clang::Sema::ActOnTypedefedProtocols(), clang::ASTContext::applyObjCProtocolQualifiers(), clang::Sema::BuildPointerType(), CastsAwayConstness(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::checkVariadicArgument(), inferARCWriteback(), isObjCReceiverType(), clang::Sema::isValidVarArgType(), and transferARCOwnership().

## ◆ isObjCQualifiedClassType()

bool clang::Type::isObjCQualifiedClassType | ( |  | ) | const
| inline

Definition at line 6645 of file Type.h.

Referenced by checkObjCPointerTypesForAssignment(), clang::Sema::SelectorsForTypoCorrection(), and splitAccordingToPolicy().

## ◆ isObjCQualifiedIdType()

bool clang::Type::isObjCQualifiedIdType | ( |  | ) | const
| inline

Definition at line 6639 of file Type.h.

Referenced by clang::Sema::BuildObjCExceptionDecl(), checkObjCPointerTypesForAssignment(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), RewriteOneForwardClassDecl(), scanToNextArgument(), clang::Sema::SelectorsForTypoCorrection(), and splitAccordingToPolicy().

## ◆ isObjCQualifiedInterfaceType()

bool Type::isObjCQualifiedInterfaceType | ( |  | ) | const

Definition at line 1635 of file Type.cpp.

References getAsObjCQualifiedInterfaceType().

Referenced by scanToNextArgument().

## ◆ isObjCRetainableType()

bool Type::isObjCRetainableType | ( |  | ) | const

Definition at line 4060 of file Type.cpp.

References isBlockPointerType(), isObjCNSObjectType(), and isObjCObjectPointerType().

Referenced by AdjustObjCObjectType(), clang::ASTContext::BlockRequiresCopying(), checkAllAtProps(), clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::Sema::checkUnsafeExprAssigns(), checkWeakGCAttrs(), computeBlockInfo(), computeCopyInfoForBlockCapture(), computeDestroyInfoForBlockCapture(), errorForGCAttrsOnNonObjC(), findWeakLValue(), clang::analyze_printf::PrintfSpecifier::fixType(), getImpliedARCOwnership(), handleObjCOwnershipTypeAttr(), inferARCWriteback(), isObjCLifetimeType(), isSynthesizedRetainableProperty(), clang::Sema::MaybeBindToTemporary(), MaybeProduceObjCObject(), PropertyMemoryAttribute(), clang::CodeGen::CodeGenFunction::StartFunction(), transferARCOwnership(), and transferARCOwnershipToDeclSpec().

## ◆ isObjCSelType()

bool clang::Type::isObjCSelType | ( |  | ) | const
| inline

Definition at line 6663 of file Type.h.

Referenced by clang::ObjCMethodDecl::getMethodFamily(), isCallback(), and LookupMemberExpr().

## ◆ isObjectPointerType()

bool clang::Type::isObjectPointerType | ( |  | ) | const
| inline

Definition at line 6528 of file Type.h.

Referenced by clang::getComparisonCategoryForBuiltinCmp().

## ◆ isObjectType()

bool clang::Type::isObjectType | ( |  | ) | const
| inline

Determine whether this type is an object type.

Definition at line 1931 of file Type.h.

References isBooleanType(), and isCharType().

Referenced by decomposeTypeForEH(), EvaluateBinaryTypeTrait(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), clang::Sema::handlerCanCatch(), and SemaBuiltinLaunder().

## ◆ isOCLExtOpaqueType()

bool clang::Type::isOCLExtOpaqueType | ( |  | ) | const
| inline

Definition at line 6728 of file Type.h.

## ◆ isOCLIntelSubgroupAVCType()

bool clang::Type::isOCLIntelSubgroupAVCType | ( |  | ) | const
| inline

Definition at line 6720 of file Type.h.

Referenced by clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and TryOCLZeroOpaqueTypeInitialization().

## ◆ isOpenCLSpecificType()

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

Definition at line 6735 of file Type.h.

Referenced by clang::CodeGen::CGOpenCLRuntime::convertOpenCLSpecificType(), and isTypeSubstitutable().

## ◆ isOverloadableType()

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

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

Definition at line 6907 of file Type.h.

References isRecordType().

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

## ◆ isPipeType()

bool clang::Type::isPipeType | ( |  | ) | const
| inline

Definition at line 6710 of file Type.h.

Referenced by checkOpenCLPipeArg(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeGen::CodeGenModule::GenOpenCLArgMetadata(), HandleOpenCLAccessAttr(), and SemaBuiltinPipePackets().

## ◆ isPlaceholderType()

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

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 6751 of file Type.h.

Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildCoreturnStmt(), clang::Sema::BuildCoyieldExpr(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildExpressionTrait(), clang::Sema::BuildResolvedCoawaitExpr(), clang::Sema::BuildUnresolvedCoawaitExpr(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), and DiagnoseBadFunctionCast().

## ◆ isPointerType()

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

Definition at line 6504 of file Type.h.

Referenced by clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::Sema::ActOnOpenMPUseDevicePtrClause(), addCastTransition(), clang::Sema::AddFunctionCandidates(), addInstanceOfTransition(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildAtomicExpr(), buildCapture(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildPseudoDestructorExpr(), clang::ento::StoreManager::CastRetrievedVal(), castToBase(), clang::Sema::CheckAdditionOperands(), checkArrayExpressionDoesNotReferToWholeSize(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), CheckImplicitConversion(), clang::Sema::CheckNonTypeTemplateParameterType(), checkPointerIntegerMismatch(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::interp::Context::classify(), ClassifyDiagnostic(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), decomposeTypeForEH(), describeUninitializedArgumentInCall(), DiagnoseDivisionSizeofPointerOrArray(), diagnoseObjCARCConversion(), clang::Sema::DiscardMisalignedMemberAddress(), EmitAtomicCmpXchgForMSIntrin(), EmitAtomicDecrementValue(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitAtomicIncrementValue(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), EmitDynamicCastToNull(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), emitOutlinedFunctionPrologue(), emitParallelOrTeamsOutlinedFunction(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), EmitX86_64VAArgFromMemory(), clang::ento::ExprEngine::evalCall(), clang::ento::SValBuilder::evalCast(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateObjectArgument(), EvaluatePointer(), EvaluateUnaryTypeTrait(), evalZeroParamNullReturn(), ExprLooksBoolean(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), GeneralizeType(), clang::CodeGen::CodeGenModule::GenOpenCLArgMetadata(), getAArch64LS(), getAArch64PBV(), clang::QualType::getBaseTypeIdentifier(), getBuiltinAlignArguments(), getCanonicalParamType(), clang::CodeGen::CodeGenModule::GetConstantArrayFromStringLiteral(), getCoreType(), clang::CXXDeleteExpr::getDestroyedType(), clang::CXXInstanceCall::getExtraInvalidatedValues(), clang::UserDefinedLiteral::getLiteralOperatorKind(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::CXXMemberCallExpr::getObjectType(), getUuidAttrOfType(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), clang::Sema::handlerCanCatch(), clang::ASTContext::hasUniqueObjectRepresentations(), IgnoreNoopCastsSingleStep(), isAutoCastType(), isConsumableType(), isIntegerLikeType(), clang::ento::iterator::isIteratorType(), isLibstdcxxPointerReturnFalseHack(), clang::BinaryOperator::isNullPointerArithmeticExtension(), clang::Expr::isOBJCGCCandidate(), isOSObjectRelated(), isPointerOrRef(), isRecordWithSSEVectorType(), IsTypeModifiable(), isValidBaseType(), IsVoidStarType(), loadToBegin(), LookThroughTransitiveAssignmentsAndCommaOperators(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), objectifyExpr(), peelOffPointerArithmetic(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareCastToObjCObjectPointer(), ResolveOverloadForDeduction(), SemaBuiltinLaunder(), SemaOpenCLBuiltinEnqueueKernel(), setObjCGCLValueClass(), shouldTrackFirstArgument(), shouldTrackImplicitObjectArg(), clang::CodeGen::CodeGenFunction::StartFunction(), TryConstCast(), TryDeconstructFunctionLike(), TryReinterpretCast(), and TypeIsInnerPointer().

## ◆ isPromotableIntegerType()

bool Type::isPromotableIntegerType | ( |  | ) | const

More type predicates useful for type checking/promotion.

Definition at line 2560 of file Type.cpp.

References isDependentType().

Referenced by addBaseAndFieldSizes(), checkArithmeticOrEnumeralThreeWayCompare(), checkVAStartIsInVariadicFunction(), clang::ento::SMTConv::doIntTypeConversion(), clang::ASTContext::getPromotedIntegerType(), GetX86_64ByValArgumentPair(), isArithmeticArgumentPromotion(), clang::Sema::IsIntegralPromotion(), isOverflowingIntegerType(), isRecordWithSSEVectorType(), clang::analyze_format_string::ArgType::matchesType(), and clang::ASTContext::mergeFunctionTypes().

## ◆ isQueueT()

bool clang::Type::isQueueT | ( |  | ) | const
| inline

Definition at line 6695 of file Type.h.

Referenced by IsStandardConversion(), SemaOpenCLBuiltinEnqueueKernel(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and TryOCLZeroOpaqueTypeInitialization().

## ◆ isRealFloatingType()

bool Type::isRealFloatingType | ( |  | ) | const

Floating point categories.

Definition at line 2021 of file Type.cpp.

Referenced by clang::Sema::BuildExtVectorType(), clang::Sema::BuildVectorType(), clang::ento::SMTConstraintManager::canReasonAbout(), clang::Sema::CreateBuiltinBinOp(), DiagnoseBadFunctionCast(), clang::ento::SMTConv::doFloatTypeConversion(), clang::ento::SMTConv::doTypeConversion(), emitReplacement(), Evaluate(), EvaluateComparisonBinaryOperator(), EvaluateComplex(), EvaluateFloat(), EvaluateVector(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ento::SMTConv::fromCast(), getAbsoluteValueKind(), clang::ento::SMTConv::getBinExpr(), clang::getComparisonCategoryForBuiltinCmp(), clang::ASTContext::getFloatingTypeOfSizeWithinDomain(), getIncrementedVar(), GetIntrinsic(), clang::StandardConversionSequence::getNarrowingKind(), clang::ento::SMTConstraintManager::getSymVal(), getTypeString(), clang::ento::SMTConv::getZeroExpr(), isIntegerLikeType(), IsStandardConversion(), clang::ento::SMTConv::mkSort(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), tryGCCVectorConvertAndSplat(), TryStaticCast(), and tryVectorConvertAndSplat().

## ◆ isRealType()

bool Type::isRealType | ( |  | ) | const

Definition at line 2027 of file Type.cpp.

Referenced by breakDownVectorType(), and rewriteToObjCProperty().

## ◆ isRecordType()

bool clang::Type::isRecordType | ( |  | ) | const
| inline

Definition at line 6594 of file Type.h.

Referenced by clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBaseInitializer(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberPointerType(), buildMemcpyForAssignmentOp(), clang::Sema::BuildOverloadedArrowExpr(), checkFoundationAPI(), CheckMoveOnConstruction(), CheckObjCCollectionLiteralElement(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::checkVariadicArgument(), ClassifyTemporary(), classifyTypeForARCConversion(), clang::Sema::CollectIvarsToConstructOrDestruct(), clang::CXXBindTemporaryExpr::Create(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseRecursiveConstFields(), DiagnoseReinterpretUpDownCast(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), Evaluate(), evaluateCDTSize(), EvaluateInPlace(), EvaluateRecord(), EvaluateTemporary(), FastEvaluateAsRValue(), clang::Sema::FindAllocationFunctions(), FindConversionForRefInit(), findSubobject(), clang::ento::FindUninitializedFields::FindUninitializedFields(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::getByrefLifetime(), clang::CXXMethodDecl::getDevirtualizedMethod(), GetGCAttrTypeForType(), clang::CodeGen::CodeGenFunction::getOverlapForFieldInit(), getSelfInitExpr(), GetX86_64ByValArgumentPair(), clang::Sema::handlerCanCatch(), clang::ASTContext::hasUniqueObjectRepresentations(), InitCatchParam(), isCARCBridgableType(), clang::ento::NonLoc::isCompoundType(), clang::Expr::isConstantInitializer(), clang::Sema::isCopyElisionCandidate(), isImplicitThis(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), isObjCReceiverType(), isPointerToConst(), isRecordType(), isSimpleZero(), IsStandardConversion(), isTrackedVar(), LookupMemberExpr(), LookupMethodInReceiverType(), clang::ento::SValBuilder::makeZeroVal(), clang::Sema::PerformImplicitConversion(), ResolveOverloadedFunctionForReferenceBinding(), setObjCGCLValueClass(), clang::Expr::skipRValueSubobjectAdjustments(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryAddressSpaceCast(), TryConstCast(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), TryListConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::ento::ExprEngine::VisitInitListExpr(), warnAboutAmbiguousFunction(), and warnAboutRedundantParens().

## ◆ isReferenceType()

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

Definition at line 6516 of file Type.h.

Referenced by addCastTransition(), clang::Sema::addInitCapture(), addInstanceOfTransition(), clang::CodeGen::CGOpenMPRuntimeNVPTX::adjustTargetSpecificDataForLambdas(), applyBitwiseConstraints(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::BuildQualifiedType(), clang::canDynamicCastThrow(), clang::CapturedStmt::Capture::Capture(), CastsAwayConstness(), castToBase(), clang::Sema::CheckAllocatedType(), clang::Sema::checkAllowedCUDAInitializer(), CheckForReference(), clang::Sema::checkInitializerLifetime(), CheckLValueConstantExpression(), checkMapClauseExpressionBase(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckOpenMPLinearDecl(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), checkVAStartIsInVariadicFunction(), clang::interp::Context::classify(), ClassifyDiagnostic(), CompareQualificationConversions(), clang::Sema::CompareReferenceRelationship(), createObjCPropertyGetter(), decomposeTypeForEH(), describeUninitializedArgumentInCall(), DiagnoseForRangeReferenceVariableCopies(), DiagnoseForRangeVariableCopies(), diagnoseListInit(), DiagnoseUninitializedReference(), DoMarkVarDeclReferenced(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitConstructorBody(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), EmitGlobalVarDeclLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), emitRTtypeidCall(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::ento::ExprEngine::evalCall(), clang::ento::SValBuilder::evalCast(), clang::Expr::EvaluateAsInitializer(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), evalZeroParamNullReturn(), clang::ento::SMTConv::fromCast(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), getBadTypeidFn(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), clang::CFGImplicitDtor::getDestructorDecl(), getFuchsiaHandleSymbol(), clang::OverloadCandidate::getNumParams(), clang::CodeGen::CGOpenMPRuntimeNVPTX::getParameterAddress(), getReferenceInitTemporaryType(), getStaticBooleanValue(), getThreadLocalWrapperLinkage(), getUuidAttrOfType(), clang::ento::SMTConv::getZeroExpr(), handleGslAnnotatedTypes(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), isAutoCastType(), isCallback(), isConstantEmittableObjectType(), isConsumableType(), clang::ento::isDereferencableType(), isLiteralType(), clang::ento::Loc::isLocType(), isPointerOrRef(), isPointerToConst(), isRecordEmpty(), isRecordWithSSEVectorType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), isSimpleZero(), clang::CodeGen::CodeGenModule::isTypeConstant(), clang::Expr::isUnusedResultAWarning(), isValidBaseType(), loadToBegin(), clang::CodeGen::CodeGenModule::maybeSetTrivialComdat(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), PerformReturnAdjustment(), print(), print_elem(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::ProcessInitializer(), clang::TreeTransform< Derived >::RebuildQualifiedType(), clang::ReferenceType::ReferenceType(), clang::ento::setDynamicTypeAndCastInfo(), clang::Expr::setType(), clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr(), shouldTrackFirstArgument(), shouldTrackImplicitObjectArg(), supportsNilWithFloatRet(), clang::CodeGen::CGOpenMPRuntimeNVPTX::translateParameter(), TryCopyInitialization(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), TryListConversion(), TryListInitialization(), TryReferenceInit(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCast(), clang::interp::ByteCodeExprGen< Emitter >::visitInitializer(), visitLocalsRetainedByInitializer(), clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl(), warnAboutAmbiguousFunction(), and writeShouldKill().

## ◆ isReserveIDT()

bool clang::Type::isReserveIDT | ( |  | ) | const
| inline

Definition at line 6699 of file Type.h.

Referenced by SemaBuiltinCommitRWPipe(), and SemaBuiltinRWPipe().

## ◆ isRValueReferenceType()

bool clang::Type::isRValueReferenceType | ( |  | ) | const
| inline

Definition at line 6524 of file Type.h.

Referenced by alignReferenceTypes(), clang::ExprWithCleanups::Create(), DiagnoseForRangeReferenceVariableCopies(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), clang::UserDefinedLiteral::getUDSuffix(), clang::ento::ExprEngine::handleLValueBitCast(), isRValueRef(), RefersToRValueRef(), TryListConversion(), TryReferenceInit(), TryReferenceListInitialization(), and TryStaticReferenceDowncast().

## ◆ isSamplerT()

bool clang::Type::isSamplerT | ( |  | ) | const
| inline

Definition at line 6683 of file Type.h.

Referenced by clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::deduceOpenCLAddressSpace(), clang::CodeGen::CodeGenFunction::EmitVarDecl(), IsStandardConversion(), clang::CodeGen::CodeGenModule::maybeSetTrivialComdat(), and TryOCLSamplerInitialization().

## ◆ isSaturatedFixedPointType()

bool clang::Type::isSaturatedFixedPointType | ( |  | ) | const
| inline

Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169.

This type can be signed or unsigned.

Definition at line 6836 of file Type.h.

Referenced by clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getFixedPointSemantics(), and handleFixedPointConversion().

## ◆ isScalarType()

bool clang::Type::isScalarType | ( |  | ) | const
| inline

Definition at line 6866 of file Type.h.

References clang::IsEnumDeclComplete().

Referenced by clang::Sema::ActOnOpenMPAtomicDirective(), clang::Sema::ActOnOpenMPLastprivateClause(), clang::Sema::areLaxCompatibleVectorTypes(), breakDownVectorType(), clang::Sema::BuildPseudoDestructorExpr(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::CapturedStmt::Capture::Capture(), clang::Sema::CheckBooleanCondition(), checkCondition(), DiagnoseBadFunctionCast(), DiagnoseNullConversion(), EvaluateUnaryTypeTrait(), getExistingLazyBinding(), clang::Sema::getFixItZeroInitializerForType(), getScalarTypeKind(), getTypeString(), getVariableCategoryFromDecl(), clang::ento::BasicValueFactory::getZeroWithTypeSize(), hasIsEqualMethod(), clang::QualType::isCXX11PODType(), isLiteralType(), clang::ento::isPrimitiveType(), isRecordEmpty(), isStandardLayoutType(), isTrackedVar(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), LookThroughTransitiveAssignmentsAndCommaOperators(), matchTypes(), TryListInitialization(), and updateOutParameters().

## ◆ isScopedEnumeralType()

bool Type::isScopedEnumeralType | ( |  | ) | const

Determine whether this type is a scoped enumeration type.

Definition at line 544 of file Type.cpp.

## ◆ isSignedFixedPointType()

bool clang::Type::isSignedFixedPointType | ( |  | ) | const
| inline

Return true if this is a fixed point type that is signed according to ISO/IEC JTC1 SC22 WG14 N1169.

This type can also be saturated.

Definition at line 6848 of file Type.h.

Referenced by clang::ASTContext::getCorrespondingUnsignedType(), clang::ASTContext::getFixedPointSemantics(), and handleFixedPointConversion().

## ◆ isSignedIntegerOrEnumerationType()

bool Type::isSignedIntegerOrEnumerationType | ( |  | ) | const

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

Definition at line 1944 of file Type.cpp.

Referenced by applyBitwiseConstraints(), clang::ento::SMTConv::castAPSInt(), CheckICE(), CheckImplicitConversion(), clang::interp::Context::classify(), clang::ento::SMTConv::doIntTypeConversion(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), EmitIntegerSignChangeCheckHelper(), EmitIntegerTruncationCheckHelper(), emitPointerArithmetic(), EvaluateComparisonBinaryOperator(), EvaluateFixedPointOrInteger(), clang::ento::SMTConv::fromCast(), clang::ento::BasicValueFactory::getAPSIntType(), clang::ento::SMTConv::getBinExpr(), getBuiltinAlignArguments(), clang::StandardConversionSequence::getNarrowingKind(), clang::ento::SMTConv::getRangeExpr(), clang::ento::SMTConstraintManager::getSymVal(), clang::ento::SMTConv::getZeroExpr(), HandleFloatToIntCast(), hasSignedIntegerRepresentation(), isWithinConstantOverflowBounds(), clang::ASTContext::MakeIntValue(), PromotionIsPotentiallyEligibleForImplicitIntegerConversionCheck(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), and tryRearrange().

## ◆ isSignedIntegerType()

bool Type::isSignedIntegerType | ( |  | ) | const

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 1928 of file Type.cpp.

Referenced by AnalyzeBitFieldAssignment(), CheckImplicitConversion(), DiagnoseIntInBoolContext(), EmitAtomicOp(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), EvaluateUnaryTypeTrait(), EvaluateVector(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getFixedPointSemantics(), getIntegerWidthAndSignedness(), clang::ASTContext::getPromotedIntegerType(), hasDefaultSetterName(), clang::Sema::IsIntegralPromotion(), isKnownToHaveUnsignedValue(), clang::ASTContext::isPromotableBitField(), printExprAsWritten(), rewriteToNumericBoxedExpression(), clang::TextNodeDumper::VisitIntegerLiteral(), and clang::JSONNodeDumper::VisitIntegerLiteral().

## ◆ isSpecificBuiltinType()

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

Test for a particular builtin type.

Definition at line 6744 of file Type.h.

Referenced by clang::ento::SMTConstraintManager::canReasonAbout(), clang::Sema::CheckConstraintExpression(), CheckImplicitConversion(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckOverloadedOperatorDeclaration(), CheckTautologicalComparison(), checkVAStartIsInVariadicFunction(), DiagnoseFloatingImpCast(), clang::OverloadExpr::find(), clang::ASTContext::getOpenMPDefaultSimdAlign(), clang::ASTContext::getPreferredTypeAlign(), isCharType(), isObjCSignedCharBool(), isTypeSubstitutable(), and LookupMemberExpr().

## ◆ isSpecificPlaceholderType()

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

Test for a specific placeholder type.

Definition at line 6764 of file Type.h.

References clang::BuiltinType::isPlaceholderTypeKind().

Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildCoreturnStmt(), clang::canCalleeThrow(), clang::CallExpr::getCallReturnType(), and clang::ObjCPropertyRefExpr::ObjCPropertyRefExpr().

## ◆ isSpecifierType()

bool Type::isSpecifierType | ( |  | ) | const

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

Definition at line 2593 of file Type.cpp.

References Complex, and getTypeClass().

Referenced by GetBaseType(), and splitAccordingToPolicy().

## ◆ isStandardLayoutType()

bool Type::isStandardLayoutType | ( |  | ) | const

Test if this type is a standard-layout type.

(C++0x [basic.type]p9)

Definition at line 2448 of file Type.cpp.

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

Referenced by EvaluateUnaryTypeTrait(), and isLayoutCompatible().

## ◆ isStdByteType()

bool Type::isStdByteType | ( |  | ) | const

Definition at line 2551 of file Type.cpp.

References clang::IdentifierInfo::isStr().

Referenced by isValidBaseType().

## ◆ isStructureOrClassType()

bool Type::isStructureOrClassType | ( |  | ) | const

Definition at line 513 of file Type.cpp.

References clang::TagDecl::isClass(), clang::TagDecl::isInterface(), and clang::TagDecl::isStruct().

Referenced by buildUserDefinedMapperRef(), DereferenceInfo::DereferenceInfo(), getTypeString(), isRecordEmpty(), and markEscapingByrefs().

## ◆ isStructureType()

bool Type::isStructureType | ( |  | ) | const

Definition at line 495 of file Type.cpp.

Referenced by EvaluateUnaryTypeTrait().

## ◆ isTemplateTypeParmType()

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

Definition at line 6740 of file Type.h.

Referenced by clang::TemplateDeclInstantiator::VisitCXXMethodDecl().

## ◆ isUndeducedAutoType()

bool clang::Type::isUndeducedAutoType | ( |  | ) | const
| inline

Definition at line 6635 of file Type.h.

## ◆ isUndeducedType()

bool clang::Type::isUndeducedType | ( |  | ) | const
| inline

Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type or similar which has not yet been deduced.

Definition at line 6900 of file Type.h.

Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddInitializerToDecl(), clang::Sema::canDelayFunctionBody(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckVariableDeclarationType(), completeFunctionType(), clang::Sema::deduceClosureReturnType(), clang::Sema::DeduceReturnType(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), FinishForRangeVarDecl(), GetTypeOfFunction(), handleObjCOwnershipTypeAttr(), hasDeducedReturnType(), and clang::Sema::MergeVarDeclTypes().

## ◆ isUnionType()

bool Type::isUnionType | ( |  | ) | const

Definition at line 527 of file Type.cpp.

Referenced by appendRecordType(), buildUserDefinedMapperRef(), CheckConstexprCtorInitializer(), checkFoundationAPI(), checkMapClauseExpressionBase(), checkMemberDecomposition(), DereferenceInfo::DereferenceInfo(), evaluateCDTSize(), EvaluateUnaryTypeTrait(), clang::ento::FindUninitializedFields::FindUninitializedFields(), GetGCAttrTypeForType(), GetX86_64ByValArgumentPair(), and isRecordEmpty().

## ◆ isUnsaturatedFixedPointType()

bool clang::Type::isUnsaturatedFixedPointType | ( |  | ) | const
| inline

Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169.

This type can be signed or unsigned.

Definition at line 6844 of file Type.h.

Referenced by CheckImplicitConversion().

## ◆ isUnscopedEnumerationType()

bool Type::isUnscopedEnumerationType | ( |  | ) | const

Definition at line 1864 of file Type.cpp.

Referenced by checkEnumArithmeticConversions(), and isIntegralOrUnscopedEnumerationType().

## ◆ isUnsignedFixedPointType()

bool clang::Type::isUnsignedFixedPointType | ( |  | ) | const
| inline

Return true if this is a fixed point type that is unsigned according to ISO/IEC JTC1 SC22 WG14 N1169.

This type can also be saturated.

Definition at line 6862 of file Type.h.

Referenced by clang::ASTContext::getCorrespondingSignedFixedPointType(), and handleFixedPointConversion().

## ◆ isUnsignedIntegerOrEnumerationType()

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 1984 of file Type.cpp.

Referenced by clang::interp::Context::classify(), clang::ento::BasicValueFactory::getTruthValue(), getTypeString(), GetValueRange(), HandleIntToIntCast(), hasUnsignedIntegerRepresentation(), and clang::ento::SValBuilder::makeIntVal().

## ◆ isUnsignedIntegerType()

bool Type::isUnsignedIntegerType | ( |  | ) | const

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 1968 of file Type.cpp.

Referenced by applyBitwiseConstraints(), CheckImplicitConversion(), clang::ento::SValBuilder::evalIntegralCast(), EvaluateUnaryTypeTrait(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getIntegerTypeOrder(), clang::ASTContext::getPromotedIntegerType(), IsStdFunction(), SemaBuiltinReserveRWPipe(), and SemaBuiltinRWPipe().

## ◆ isVariableArrayType()

bool clang::Type::isVariableArrayType | ( |  | ) | const
| inline

Definition at line 6582 of file Type.h.

Referenced by CheckICE(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), emitOMPArraySectionBase(), clang::ento::SValBuilder::evalCast(), isLiteralType(), isSimpleArrayDecayOperand(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and writeShouldKill().

## ◆ isVariablyModifiedType()

bool clang::Type::isVariablyModifiedType | ( |  | ) | const
| inline

Whether this type is a variably-modified type (C99 6.7.5).

Definition at line 2166 of file Type.h.

Referenced by clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), diagnoseArrayStarInParamType(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CGOpenMPRuntime::emitCall(), clang::CodeGen::CodeGenFunction::EmitCompoundLiteralLValue(), clang::CodeGen::CodeGenModule::EmitExplicitCastExprType(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(), clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(), clang::FunctionType::getNameForCallConv(), clang::ASTContext::getVariableArrayDecayedType(), clang::Sema::HandleExprEvaluationContextForTypeof(), hasSizedVLAType(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::QualType::isCanonicalAsParam(), isCheapEnoughToEvaluateUnconditionally(), isObjCClassOrClassKindOfType(), NeedsInstantiationAsFunctionType(), clang::DependentSizedArrayType::Profile(), clang::DependentSizedExtVectorType::Profile(), clang::DependentVectorType::Profile(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstType(), clang::Sema::tryCaptureVariable(), clang::TextNodeDumper::Visit(), clang::JSONNodeDumper::Visit(), and clang::TemplateDeclInstantiator::VisitVarDecl().

## ◆ isVectorType()

bool clang::Type::isVectorType | ( |  | ) | const
| inline

Definition at line 6606 of file Type.h.

Referenced by clang::Sema::ActOnCastExpr(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildVectorLiteral(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), checkFoundationAPI(), checkObjCMethodX86VectorTypes(), clang::Sema::CheckVectorCast(), clang::Sema::CXXCheckConditionalOperands(), DiagnoseBadFunctionCast(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), EmitX86_64VAArgFromMemory(), Evaluate(), EvaluateComparisonBinaryOperator(), EvaluateUnaryTypeTrait(), EvaluateVector(), GetIntrinsic(), getTypeString(), clang::Sema::InvalidLogicalVectorOperands(), isCheapEnoughToEvaluateUnconditionally(), clang::ento::NonLoc::isCompoundType(), clang::QualType::isCXX11PODType(), isIntegerLikeType(), clang::Sema::isLaxVectorConversion(), isLiteralType(), clang::ento::isPrimitiveType(), isRecordEmpty(), isRecordWithSSEVectorType(), isStandardLayoutType(), isTrackedVar(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), isValidVectorForConditionalCondition(), IsVectorConversion(), clang::ento::SValBuilder::makeZeroVal(), clang::Expr::refersToVectorElement(), rewriteInputConstraintReferences(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), TryReinterpretCast(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().

## ◆ isVisibilityExplicit()

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

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

Definition at line 2380 of file Type.h.

## ◆ isVoidPointerType()

bool Type::isVoidPointerType | ( |  | ) | const

Definition at line 521 of file Type.cpp.

Referenced by clang::CodeGen::CGDebugInfo::addHeapAllocSiteMetadata(), clang::ento::StoreManager::CastRetrievedVal(), checkConditionalBlockPointerCompatibility(), checkIntToPointerCast(), clang::Sema::CheckSubscriptingKind(), clang::ento::SMTConv::doTypeConversion(), EvaluateComparisonBinaryOperator(), EvaluatePointer(), clang::Sema::FindCompositePointerType(), getExistingLazyBinding(), HandleDynamicCast(), isVoidPointer(), clang::analyze_format_string::ArgType::matchesType(), and SemaBuiltinLaunder().

## ◆ isVoidType()

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

Definition at line 6777 of file Type.h.

Referenced by clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnStartOfObjCMethodDef(), addBaseAndFieldSizes(), AnalyzeImplicitConversions(), clang::ento::StoreManager::attemptDownCast(), clang::Sema::BuildArrayType(), clang::Sema::BuildCoreturnStmt(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildPseudoDestructorExpr(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCallReturnType(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalVoidType(), CheckConstexprFunctionBody(), clang::Sema::CheckCXXThrowOperand(), CheckIndirectionOperand(), CheckMemaccessSize(), clang::comments::Sema::checkReturnsCommand(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckTransparentUnionArgumentConstraints(), CheckUnaryTypeTraitTypeCompleteness(), clang::Sema::checkUnknownAnyCast(), ClassifyConditional(), classifyTypeForARCConversion(), clang::interp::ByteCodeEmitter::compileFunc(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::deduceOpenCLAddressSpace(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), DiagnoseReinterpretUpDownCast(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), emitPointerArithmetic(), EmitX86_64VAArgFromMemory(), evalBinOpFieldRegionFieldRegion(), clang::ento::ExprEngine::evalCall(), Evaluate(), EvaluateBinaryTypeTrait(), evaluateCDTSize(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), EvaluateVoid(), clang::Sema::FindCompositePointerType(), FinishForRangeVarDecl(), formatBlockPlaceholder(), clang::CodeGen::CodeGenFunction::GenerateCode(), getAArch64MTV(), getCastAwayConstnessCastKind(), getNDSWDS(), clang::ento::SMTConstraintManager::getSymVal(), getTypeString(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), HandleFunctionCall(), clang::Sema::handlerCanCatch(), HandleSizeof(), IgnoreCommaOperand(), clang::Sema::IgnoredValueConversions(), clang::CXXDynamicCastExpr::isAlwaysNull(), isCARCBridgableType(), isCheapEnoughToEvaluateUnconditionally(), isDispatchBlock(), isIncompleteType(), isLiteralType(), clang::Expr::isNullPointerConstant(), isPointerToConst(), isQualificationConversionStep(), isUnitTest(), clang::Expr::isUnusedResultAWarning(), clang::ento::SymExpr::isValidTypeForSymbol(), clang::Sema::isValidVarArgType(), isVoidPointerToNonConst(), IsVoidStarType(), clang::analyze_format_string::ArgType::matchesType(), noteMemberDeclaredHere(), clang::consumed::ConsumedAnalyzer::run(), shouldBeModeledWithNoOp(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstParmVarDecl(), TryAddressSpaceCast(), tryGenerateSpecializedMessageSend(), TryStaticCast(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::interp::ByteCodeStmtGen< Emitter >::visitFunc(), and warnAboutAmbiguousFunction().

## ◆ isWideCharType()

bool Type::isWideCharType | ( |  | ) | const

Definition at line 1880 of file Type.cpp.

Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::analyze_printf::PrintfSpecifier::fixType(), and clang::analyze_scanf::ScanfSpecifier::fixType().

## ◆ operator=() [1/2]

Type& clang::Type::operator= | ( | const Type & |  | ) |
| delete

## ◆ operator=() [2/2]

Type& clang::Type::operator= | ( | Type && |  | ) |
| delete

## ◆ setContainsUnexpandedParameterPack()

void clang::Type::setContainsUnexpandedParameterPack | ( | bool | PP = `true` | ) |
| inline protected

Definition at line 1861 of file Type.h.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments(), clang::FixedPointValueToString(), clang::FunctionType::getNameForCallConv(), and clang::ObjCObjectType::ObjCObjectType().

## ◆ setDependent()

void clang::Type::setDependent | ( | bool | D = `true` | ) |
| inline protected

Definition at line 1850 of file Type.h.

Referenced by clang::FunctionType::getNameForCallConv(), and clang::ObjCObjectType::ObjCObjectType().

## ◆ setInstantiationDependent()

void clang::Type::setInstantiationDependent | ( | bool | D = `true` | ) |
| inline protected

Definition at line 1856 of file Type.h.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments(), clang::FunctionType::getNameForCallConv(), and clang::ObjCObjectType::ObjCObjectType().

## ◆ setVariablyModified()

void clang::Type::setVariablyModified | ( | bool | VM = `true` | ) |
| inline protected

Definition at line 1859 of file Type.h.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments().

## ◆ this_()

Type* clang::Type::this_ | ( |  | ) |
| inline protected

Definition at line 1848 of file Type.h.

## Friends And Related Function Documentation

## ◆ ASTContext

friend class ASTContext
| friend

Definition at line 1829 of file Type.h.

## ◆ ASTReader

friend class ASTReader
| friend

Definition at line 1866 of file Type.h.

## ◆ ASTWriter

friend class ASTWriter
| friend

Definition at line 1867 of file Type.h.

## ◆ serialization::AbstractTypeReader

template<class T >

friend class serialization::AbstractTypeReader
| friend

Definition at line 1868 of file Type.h.

## ◆ serialization::AbstractTypeWriter

template<class T >

friend class serialization::AbstractTypeWriter
| friend

Definition at line 1869 of file Type.h.

## ◆ TypePropertyCache

template<class T >

friend class TypePropertyCache
| friend

Definition at line 1821 of file Type.h.

## Member Data Documentation

## ◆ @122

union { ... }

## ◆ ArrayTypeBits

ArrayTypeBitfields clang::Type::ArrayTypeBits

Definition at line 1768 of file Type.h.

Referenced by clang::ArrayType::ArrayType().

## ◆ AttributedTypeBits

AttributedTypeBitfields clang::Type::AttributedTypeBits

Definition at line 1770 of file Type.h.

## ◆ AutoTypeBits

AutoTypeBitfields clang::Type::AutoTypeBits

Definition at line 1771 of file Type.h.

Referenced by clang::FixedPointValueToString().

## ◆ BuiltinTypeBits

BuiltinTypeBitfields clang::Type::BuiltinTypeBits

Definition at line 1772 of file Type.h.

## ◆ ConstantArrayTypeBits

ConstantArrayTypeBitfields clang::Type::ConstantArrayTypeBits

Definition at line 1769 of file Type.h.

## ◆ DependentTemplateSpecializationTypeBits

DependentTemplateSpecializationTypeBitfields clang::Type::DependentTemplateSpecializationTypeBits

Definition at line 1782 of file Type.h.

## ◆ ElaboratedTypeBits

ElaboratedTypeBitfields clang::Type::ElaboratedTypeBits

Definition at line 1777 of file Type.h.

## ◆ FunctionTypeBits

FunctionTypeBitfields clang::Type::FunctionTypeBits

Definition at line 1773 of file Type.h.

Referenced by clang::FunctionType::getNameForCallConv().

## ◆ ObjCObjectTypeBits

ObjCObjectTypeBitfields clang::Type::ObjCObjectTypeBits

Definition at line 1774 of file Type.h.

Referenced by clang::ObjCObjectType::isSpecialized(), and clang::ObjCObjectType::ObjCObjectType().

## ◆ PackExpansionTypeBits

PackExpansionTypeBitfields clang::Type::PackExpansionTypeBits

Definition at line 1783 of file Type.h.

## ◆ ReferenceTypeBits

ReferenceTypeBitfields clang::Type::ReferenceTypeBits

Definition at line 1775 of file Type.h.

## ◆ SubstTemplateTypeParmPackTypeBits

SubstTemplateTypeParmPackTypeBitfields clang::Type::SubstTemplateTypeParmPackTypeBits

Definition at line 1779 of file Type.h.

Referenced by clang::TemplateTypeParmType::getIdentifier().

## ◆ TemplateSpecializationTypeBits

TemplateSpecializationTypeBitfields clang::Type::TemplateSpecializationTypeBits

Definition at line 1780 of file Type.h.

Referenced by clang::TemplateSpecializationType::anyDependentTemplateArguments().

## ◆ TypeBits

TypeBitfields clang::Type::TypeBits

Definition at line 1767 of file Type.h.

Referenced by clang::TypePropertyCache< Private >::ensure(), clang::TypePropertyCache< Private >::get(), getLinkage(), getTypeClassName(), hasUnnamedOrLocalType(), and isLinkageValid().

## ◆ TypeWithKeywordBits

TypeWithKeywordBitfields clang::Type::TypeWithKeywordBits

Definition at line 1776 of file Type.h.

## ◆ VectorTypeBits

VectorTypeBitfields clang::Type::VectorTypeBits

Definition at line 1778 of file Type.h.

Referenced by clang::VectorType::VectorType().

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

- include/clang/AST/Type.h
- include/clang/AST/CanonicalType.h
- lib/AST/ASTDumper.cpp
- lib/AST/Type.cpp