clang 19.0.0git
|
The base class of the type hierarchy. More...
#include "clang/AST/Type.h"
Classes | |
class | ArrayTypeBitfields |
class | AttributedTypeBitfields |
class | AutoTypeBitfields |
class | BuiltinTypeBitfields |
class | ConstantArrayTypeBitfields |
class | CountAttributedTypeBitfields |
class | DependentTemplateSpecializationTypeBitfields |
class | ElaboratedTypeBitfields |
class | FunctionTypeBitfields |
FunctionTypeBitfields store various bits belonging to FunctionProtoType. More... | |
class | ObjCObjectTypeBitfields |
class | PackExpansionTypeBitfields |
class | ReferenceTypeBitfields |
class | SubstTemplateTypeParmPackTypeBitfields |
class | SubstTemplateTypeParmTypeBitfields |
class | TemplateSpecializationTypeBitfields |
class | TypedefBitfields |
class | TypeOfBitfields |
class | TypeWithKeywordBitfields |
class | UsingBitfields |
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. | |
bool | containsUnexpandedParameterPack () const |
Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates. | |
bool | isCanonicalUnqualified () const |
Determines if this type would be canonical if it had no further qualification. | |
QualType | getLocallyUnqualifiedSingleStepDesugaredType () const |
Pull a single level of sugar off of this locally-unqualified type. | |
bool | isSizelessType () const |
As an extension, we classify types as one of "sized" or "sizeless"; every type is one or the other. | |
bool | isSizelessBuiltinType () const |
bool | isSizelessVectorType () const |
Returns true for all scalable vector types. | |
bool | isSVESizelessBuiltinType () const |
Returns true for SVE scalable vector types. | |
bool | isRVVSizelessBuiltinType () const |
Returns true for RVV scalable vector types. | |
bool | isWebAssemblyExternrefType () const |
Check if this is a WebAssembly Externref Type. | |
bool | isWebAssemblyTableType () const |
Returns true if this is a WebAssembly table type: either an array of reference types, or a pointer to a reference type (which can only be created by array to pointer decay). | |
bool | isSveVLSBuiltinType () const |
Determines if this is a sizeless type supported by the 'arm_sve_vector_bits' type attribute, which can be applied to a single SVE vector or predicate, excluding tuple types such as svint32x4_t. | |
QualType | getSveEltType (const ASTContext &Ctx) const |
Returns the representative type for the element of an SVE builtin type. | |
bool | isRVVVLSBuiltinType () const |
Determines if this is a sizeless type supported by the 'riscv_rvv_vector_bits' type attribute, which can be applied to a single RVV vector or mask. | |
QualType | getRVVEltType (const ASTContext &Ctx) const |
Returns the representative type for the element of an RVV builtin type. | |
bool | isIncompleteType (NamedDecl **Def=nullptr) const |
Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. | |
bool | isIncompleteOrObjectType () const |
Return true if this is an incomplete or object type, in other words, not a function type. | |
bool | isObjectType () const |
Determine whether this type is an object type. | |
bool | isLiteralType (const ASTContext &Ctx) const |
Return true if this is a literal type (C++11 [basic.types]p10) | |
bool | isStructuralType () const |
Determine if this type is a structural type, per C++20 [temp.param]p7. | |
bool | isStandardLayoutType () const |
Test if this type is a standard-layout type. | |
bool | isBuiltinType () const |
Helper methods to distinguish type categories. | |
bool | isSpecificBuiltinType (unsigned K) const |
Test for a particular builtin type. | |
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. | |
const BuiltinType * | getAsPlaceholderType () const |
bool | isSpecificPlaceholderType (unsigned K) const |
Test for a specific placeholder type. | |
bool | isNonOverloadPlaceholderType () const |
Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType. | |
bool | isIntegerType () const |
isIntegerType() does not include complex integers (a GCC extension). | |
bool | isEnumeralType () const |
bool | isScopedEnumeralType () const |
Determine whether this type is a scoped enumeration type. | |
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. | |
bool | isIntegralType (const ASTContext &Ctx) const |
Determine whether this type is an integral type. | |
bool | isIntegralOrEnumerationType () const |
Determine whether this type is an integral or enumeration type. | |
bool | isIntegralOrUnscopedEnumerationType () const |
Determine whether this type is an integral or unscoped enumeration type. | |
bool | isUnscopedEnumerationType () const |
bool | isRealFloatingType () const |
Floating point categories. | |
bool | isComplexType () const |
isComplexType() does not include complex integers (a GCC extension). | |
bool | isAnyComplexType () const |
bool | isFloatingType () const |
bool | isHalfType () const |
bool | isFloat16Type () const |
bool | isFloat32Type () const |
bool | isDoubleType () const |
bool | isBFloat16Type () const |
bool | isFloat128Type () const |
bool | isIbm128Type () 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. | |
bool | isFundamentalType () const |
Tests whether the type is categorized as a fundamental type. | |
bool | isCompoundType () const |
Tests whether the type is categorized as a compound type. | |
bool | isFunctionType () const |
bool | isFunctionNoProtoType () const |
bool | isFunctionProtoType () const |
bool | isPointerType () const |
bool | isAnyPointerType () const |
bool | isCountAttributedType () 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 | isExtVectorBoolType () const |
bool | isMatrixType () const |
bool | isConstantMatrixType () 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. | |
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? | |
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>. | |
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>. | |
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. | |
bool | isCARCBridgableType () const |
Determine whether the given type T is a "bridgeable" C type. | |
bool | isTemplateTypeParmType () const |
bool | isNullPtrType () const |
bool | isNothrowT () const |
bool | isAlignValT () const |
bool | isStdByteType () const |
bool | isAtomicType () const |
bool | isUndeducedAutoType () const |
bool | isTypedefNameType () const |
Determines whether this type is written as a typedef-name. | |
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 | isBitIntType () const |
bool | isOpenCLSpecificType () const |
bool | isObjCARCImplicitlyUnretainedType () const |
Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong. | |
bool | isCUDADeviceBuiltinSurfaceType () const |
Check if the type is the CUDA device builtin surface type. | |
bool | isCUDADeviceBuiltinTextureType () const |
Check if the type is the CUDA device builtin texture type. | |
Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const |
Return the implicit lifetime for this type, which must not be dependent. | |
ScalarTypeKind | getScalarTypeKind () const |
Given that this is a scalar type, classify it. | |
TypeDependence | getDependence () const |
bool | containsErrors () const |
Whether this type is an error type. | |
bool | isDependentType () const |
Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]). | |
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). | |
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. | |
bool | isVariablyModifiedType () const |
Whether this type is a variably-modified type (C99 6.7.5). | |
bool | hasSizedVLAType () const |
Whether this type involves a variable-length array type with a definite size. | |
bool | hasUnnamedOrLocalType () const |
Whether this type is or contains a local or unnamed type. | |
bool | isOverloadableType () const |
Determines whether this is a type for which one can define an overloaded operator. | |
bool | isElaboratedTypeSpecifier () const |
Determine wither this type is a C++ elaborated-type-specifier. | |
bool | canDecayToPointerType () const |
Determines whether this type can decay to a pointer type. | |
bool | hasPointerRepresentation () const |
Whether this type is represented natively as a pointer. | |
bool | hasObjCPointerRepresentation () const |
Whether this type can represent an objective pointer type for the purpose of GC'ability. | |
bool | hasIntegerRepresentation () const |
Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector. | |
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. | |
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. | |
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. | |
const RecordType * | getAsStructureType () const |
const RecordType * | getAsUnionType () const |
NOTE: getAs*ArrayType are methods on ASTContext. | |
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. | |
RecordDecl * | getAsRecordDecl () const |
Retrieves the RecordDecl this type refers to. | |
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. | |
const CXXRecordDecl * | getPointeeCXXRecordDecl () const |
If this is a pointer or reference to a RecordType, return the CXXRecordDecl that the type refers to. | |
DeducedType * | getContainedDeducedType () const |
Get the DeducedType whose type will be deduced for a variable with an initializer of this type. | |
AutoType * | getContainedAutoType () const |
Get the AutoType whose type will be deduced for a variable with an initializer of this type. | |
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). | |
template<typename T > | |
const T * | getAs () const |
Member-template getAs<specific type>'. | |
template<typename T > | |
const T * | getAsAdjusted () const |
Member-template getAsAdjusted<specific type>. | |
const ArrayType * | getAsArrayTypeUnsafe () const |
A variant of getAs<> for array types which silently discards qualifiers from the outermost type. | |
template<typename T > | |
const T * | castAs () const |
Member-template castAs<specific type>. | |
const ArrayType * | castAsArrayTypeUnsafe () const |
A variant of castAs<> for array type which silently discards qualifiers from the outermost type. | |
bool | hasAttr (attr::Kind AK) const |
Determine whether this type had the specified attribute applied to it (looking through top-level type sugar). | |
const Type * | getBaseElementTypeUnsafe () const |
Get the base element type of this type, potentially discarding type qualifiers. | |
const Type * | getArrayElementTypeNoTypeQual () const |
If this is an array type, return the element type of the array, potentially with type qualifiers missing. | |
const Type * | getPointeeOrArrayElementType () const |
If this is a pointer type, return the pointee type. | |
QualType | getPointeeType () const |
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee. | |
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. | |
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. | |
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. | |
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. | |
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. | |
bool | isFixedPointType () const |
Return true if this is a fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
bool | isFixedPointOrIntegerType () const |
Return true if this is a fixed point or integer type. | |
bool | isConvertibleToFixedPointType () const |
Return true if this can be converted to (or from) a fixed point type. | |
bool | isSaturatedFixedPointType () const |
Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
bool | isUnsaturatedFixedPointType () const |
Return true if this is a saturated fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169. | |
bool | isSignedFixedPointType () const |
Return true if this is a fixed point type that is signed according to ISO/IEC JTC1 SC22 WG14 N1169. | |
bool | isUnsignedFixedPointType () const |
Return true if this is a fixed point type that is unsigned according to ISO/IEC JTC1 SC22 WG14 N1169. | |
bool | isConstantSizeType () const |
Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. | |
bool | isSpecifierType () const |
Returns true if this type can be represented by some set of type specifiers. | |
Linkage | getLinkage () const |
Determine the linkage of this type. | |
Visibility | getVisibility () const |
Determine the visibility of this type. | |
bool | isVisibilityExplicit () const |
Return true if the visibility was explicitly set is the code. | |
LinkageInfo | getLinkageAndVisibility () const |
Determine the linkage and visibility of this type. | |
bool | isLinkageValid () const |
True if the computed linkage is valid. | |
std::optional< NullabilityKind > | getNullability () const |
Determine the nullability of the given type. | |
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. | |
std::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. | |
bool | acceptsObjCTypeParams () const |
Determines if this is an ObjC interface type that may accept type parameters. | |
const char * | getTypeClassName () const |
QualType | getCanonicalTypeInternal () const |
CanQualType | getCanonicalTypeUnqualified () const |
void | dump () const |
void | dump (llvm::raw_ostream &OS, const ASTContext &Context) 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. | |
Protected Types | |
enum | { NumArrayTypeBits = NumTypeBits + 6 } |
enum | { NumTypeWithKeywordBits = NumTypeBits + 8 } |
Protected Member Functions | |
Type (TypeClass tc, QualType canon, TypeDependence Dependence) | |
Type * | this_ () |
void | setDependence (TypeDependence D) |
void | addDependence (TypeDependence D) |
Friends | |
template<class T > | |
class | TypePropertyCache |
class | ASTContext |
class | ASTReader |
class | ASTWriter |
template<class T > | |
class | serialization::AbstractTypeReader |
template<class T > | |
class | serialization::AbstractTypeWriter |
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.
|
inlineprotected |
Definition at line 2058 of file Type.h.
References clang::TypeAlignment.
|
delete |
|
delete |
bool Type::acceptsObjCTypeParams | ( | ) | const |
Determines if this is an ObjC interface type that may accept type parameters.
Definition at line 1698 of file Type.cpp.
References getAsObjCInterfaceType().
|
inlineprotected |
Definition at line 2081 of file Type.h.
Referenced by clang::ObjCObjectType::ObjCObjectType().
|
inline |
Determines whether this type can decay to a pointer type.
Definition at line 7815 of file Type.h.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), checkArithmeticNull(), CheckImplicitConversion(), clang::analyze_format_string::ArgType::matchesType(), and SemaBuiltinAlignment().
Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type.
ResultIfUnknown | The value to return if we don't yet know whether this type can have nullability because it is dependent. |
Definition at line 4609 of file Type.cpp.
References getCanonicalTypeInternal(), and clang::ast_matchers::type.
Referenced by CheckNullabilityTypeSpecifier(), GetFullTypeForDeclarator(), clang::Sema::getMessageSendResultType(), and clang::TreeTransform< Derived >::TransformAttributedType().
const T * clang::Type::castAs |
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 7945 of file Type.h.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnClassPropertyRefExpr(), clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnNumericConstant(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnSuperClassOfClassInterface(), addBlockPointerConversion(), clang::Sema::AddConversionCandidate(), addFunctionPointerConversions(), AddObjCKeyValueCompletions(), clang::Sema::adjustCCAndNoReturn(), clang::ASTContext::adjustDeducedFunctionResultType(), clang::TemplateDeclInstantiator::adjustForRewrite(), AdjustFunctionParmAndArgTypesForDeduction(), adjustFunctionTypeForInstantiation(), AnalyzeBitFieldAssignment(), clang::Sema::anyAltivecTypes(), applyObjCTypeArgs(), clang::ASTContext::areCommonBaseCompatible(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildCXXNew(), BuildExpressionFromNonTypeTemplateArgumentValue(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildMemberReferenceExpr(), buildMemcpyForAssignmentOp(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildResolvedCallExpr(), buildTypeForLambdaCallOperator(), clang::Sema::BuildVectorLiteral(), clang::ASTContext::canAssignObjCInterfaces(), clang::Sema::canCalleeThrow(), checkArithmeticOnObjCPointer(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckBaseClassAccess(), clang::Sema::CheckBaseSpecifier(), checkCastFunctionType(), clang::Sema::CheckCompareOperands(), CheckCompleteParameterTypesForMangler(), checkConditionalObjectPointersCompatibility(), checkConditionalPointerCompatibility(), CheckConstexprParameterTypes(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), checkEnumArithmeticConversions(), clang::Sema::CheckEquivalentExceptionSpec(), CheckEvaluationResult(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), clang::Sema::checkInitMethod(), CheckInvalidVLENandLMUL(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckMain(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMSVCRTEntryPoint(), checkObjCPointerTypesForAssignment(), checkOpenCLBlockArgs(), checkOpenCLEnqueueVariadicArgs(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckSizelessVectorConditionalTypes(), checkSizelessVectorShift(), clang::Sema::CheckSpecifiedExceptionType(), checkSwiftAsyncErrorBlock(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CheckUnresolvedMemberAccess(), checkVAStartABI(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorConditionalTypes(), clang::Sema::CodeCompleteMemberReferenceExpr(), commonEmitCXXMemberOrOperatorCall(), compareConversionFunctions(), CompareDerivedToBaseConversions(), clang::CodeGen::CGDebugInfo::completeClass(), completeFunctionType(), CompleteNonViableCandidate(), clang::CodeGen::CGDebugInfo::completeType(), clang::ObjCObjectType::computeSuperClassTypeSlow(), convertHalfVecBinOp(), ConvertQualTypeToKind(), convertToComplexValue(), create_std_move_forward(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedUnaryOp(), clang::Sema::DeduceReturnType(), DeduceTemplateSpecArguments(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitCopyConstructor(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineImplicitMoveConstructor(), clang::InitializationSequence::Diagnose(), DiagnoseArityMismatch(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseCallingConvCast(), diagnoseListInit(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::DiagnoseSentinelCalls(), EmitBaseInitializer(), emitCombinerOrInitializer(), emitDeclTargetVarDeclLValue(), emitDestructorsFunction(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenModule::EmitNullConstant(), emitOutlinedFunctionPrologue(), emitPointerArithmetic(), emitProxyTaskFunction(), emitTaskDupFunction(), clang::CodeGen::CGOpenMPRuntime::emitTaskOutlinedFunction(), emitTaskPrivateMappingFunction(), emitWritebackArg(), EncodeBitField(), EvaluateBuiltinClassifyType(), clang::Sema::EvaluateImplicitExceptionSpec(), evaluateLValueAsAllocSize(), clang::Sema::FindAllocationFunctions(), clang::Sema::FindCompositeObjCPointerType(), FindConversionForRefInit(), FindDesignatorMismatch(), clang::Sema::findInheritingConstructor(), findMethodDecl(), findSubobject(), funcHasParameterSizeMangling(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), clang::CXXNewExpr::getAllocatedType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), getCallingConvMangling(), clang::FunctionDecl::getCallResultType(), clang::CallExpr::getCallReturnType(), getCanonicalRD(), getConversionOpReturnTyAsFunction(), clang::CXXConversionDecl::getConversionType(), clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getCorrespondingSignedFixedPointType(), clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getCorrespondingUnsaturatedType(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::FunctionDecl::getDeclaredReturnType(), clang::CodeGen::CGOpenMPRuntime::getDepobjElements(), clang::TemplateTypeParmDecl::getDepth(), clang::CXXDeleteExpr::getDestroyedType(), clang::CXXMethodDecl::getDevirtualizedMethod(), GetEnumUnderlyingType(), clang::ASTContext::getExtVectorType(), getFixedEnumPromtion(), clang::ASTContext::getFixedPointIBits(), clang::ASTContext::getFixedPointScale(), getFloatingRank(), clang::ASTContext::getFloatTypeSemantics(), GetFullTypeForDeclarator(), clang::CXXMethodDecl::getFunctionObjectParameterReferenceType(), clang::BlockExpr::getFunctionType(), clang::Decl::getFunctionType(), clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable(), clang::ASTContext::getFunctionTypeWithExceptionSpec(), clang::TemplateTypeParmDecl::getIndex(), clang::ObjCObjectPointerType::getInterfaceType(), clang::CXXRecordDecl::getLambdaStaticInvoker(), clang::CodeGen::CGCXXABI::getMemberPointerAdjustment(), clang::CXXMethodDecl::getMethodQualifiers(), getMostInformativeDerivedClassImpl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::OverloadCandidate::getNumParams(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCGCAttrKind(), getObjCSubstitutions(), clang::ObjCObjectPointerType::getObjectType(), clang::TemplateArgument::getPackExpansionPattern(), clang::CodeGen::CGOpenCLRuntime::getPipeElemAlign(), clang::CodeGen::CGOpenCLRuntime::getPipeElemSize(), clang::ReferenceType::getPointeeType(), clang::CXXMethodDecl::getRefQualifier(), clang::FunctionDecl::getReturnType(), clang::ObjCInterfaceDecl::getSuperClassType(), clang::CastExpr::getTargetFieldForToUnionCast(), getUsualDeleteParams(), clang::AtomicExpr::getValueType(), clang::ASTContext::getVectorType(), HandleArmSveVectorBitsTypeAttr(), handleComplexFloatConversion(), handleComplexIntegerToFloatConversion(), clang::CompletionContextHandler::handleDeclaration(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), HandleOpenCLAccessAttr(), HandleRISCVRVVVectorBitsTypeAttr(), handleSentinelAttr(), handleSwiftAsyncAttr(), handleVectorVectorBinOp(), hasDeducedReturnType(), hasDefaultCXXMethodCC(), HasNoThrowOperator(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::Sema::InstantiateExceptionSpec(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), IsAcceptableNonMemberOperatorCandidate(), clang::CXXMethodDecl::isConst(), clang::Expr::isConstantInitializer(), clang::CXXConstructorDecl::isConvertingConstructor(), isDesignatorAtObjectEnd(), isIdiomaticBraceElisionEntity(), isInitializerOfDynamicClass(), isNoexcept(), clang::Sema::isOpenMPCapturedByRef(), clang::TemplateTypeParmDecl::isParameterPack(), clang::Sema::IsPointerConversion(), clang::ento::cocoa::isRefType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), isStdBuiltin(), IsStructurallyEquivalent(), isSwiftAsyncCallee(), IsVoidStarType(), clang::CXXMethodDecl::isVolatile(), isZeroInitialized(), LookupMethodInReceiverType(), lookupPromiseType(), clang::Sema::LookupTemplateName(), clang::MangleContext::mangleName(), clang::Sema::MarkVirtualBaseDestructorsReferenced(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::MergeTypedefNameDecl(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclExceptionSpecs(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectMemberConversion(), PrepareArgumentsForCallToObjectOfClassType(), clang::Sema::PrepareScalarCast(), clang::Sema::prepareVectorSplat(), clang::APValue::printPretty(), ProcessAPINotes(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::Sema::ResolveExceptionSpec(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), SemaOpenCLBuiltinEnqueueKernel(), clang::CXXRecordDecl::setBases(), clang::ASTContext::setCFConstantStringType(), setObjCGCLValueClass(), SetValueDataBasedOnQualType(), clang::CXXNewExpr::shouldNullCheckAllocation(), shouldSkipNotingLambdaConversionDecl(), clang::Expr::skipRValueSubobjectAdjustments(), clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals(), clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), tryEmitSpecializedAllocInit(), tryGCCVectorConvertAndSplat(), TryListConversion(), TryReferenceInit(), TryReferenceInitialization(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), TryStaticCast(), clang::ASTDeclReader::VisitFunctionDecl(), and clang::ento::ExprEngine::VisitOffsetOfExpr().
|
inline |
A variant of castAs<> for array type which silently discards qualifiers from the outermost type.
Definition at line 7954 of file Type.h.
Referenced by CheckEvaluationResult(), FindDesignatorMismatch(), getArrayIndexingBound(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), and clang::APValue::printPretty().
|
inline |
Whether this type is an error type.
Definition at line 2436 of file Type.h.
Referenced by clang::Sema::ActOnIvar(), clang::Sema::BuildReturnStmt(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckFieldDecl(), clang::Sema::MergeVarDeclTypes(), clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
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':
Note that this routine does not specify which
Definition at line 2114 of file Type.h.
Referenced by clang::Sema::ActOnPackIndexingType(), clang::Sema::BuildBaseInitializer(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckPackExpansion(), clang::DeclarationNameInfo::containsUnexpandedParameterPack(), clang::Sema::containsUnexpandedParameterPacks(), clang::Sema::CreateGenericSelectionExpr(), clang::Sema::DiagnoseUnexpandedParameterPack(), GetFullTypeForDeclarator(), getLambdaType(), clang::ASTContext::getPackExpansionType(), clang::ASTContext::getUnconstrainedType(), handleAlignedAttr(), clang::Sema::SubstParmVarDecl(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
LLVM_DUMP_METHOD void Type::dump | ( | ) | const |
Definition at line 196 of file ASTDumper.cpp.
References clang::ExtQualsTypeCommonBase::QualType.
Referenced by computeCachedProperties().
LLVM_DUMP_METHOD void Type::dump | ( | llvm::raw_ostream & | OS, |
const ASTContext & | Context | ||
) | const |
Definition at line 198 of file ASTDumper.cpp.
References clang::ExtQualsTypeCommonBase::QualType.
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 426 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by clang::Sema::BuildExpressionFromDeclTemplateArgument(), CheckNullabilityTypeSpecifier(), clang::Sema::deepTypeCheckForSYCLDevice(), and isZeroInitialized().
const T * clang::Type::getAs |
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 7878 of file Type.h.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::actOnObjCTypeArgsOrProtocolQualifiers(), actOnOMPReductionKindClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnTag(), clang::Sema::ActOnTypedefedProtocols(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::ActOnVariableDeclarator(), AddClassMessageCompletions(), clang::Sema::AddConversionCandidate(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddMemberOperatorCandidates(), clang::Sema::AddMethodCandidate(), clang::Sema::AddModeAttr(), AddTypedNameChunk(), AdjustFunctionParmAndArgTypesForDeduction(), AlignOfType(), AnalyzeBitFieldAssignment(), AnalyzeCompoundAssignment(), clang::AnyCall::AnyCall(), appendFunctionType(), appendType(), applyObjCTypeArgs(), clang::ASTContext::areComparableObjCPointerTypes(), clang::ASTContext::areCompatibleRVVTypes(), clang::ASTContext::areCompatibleSveTypes(), clang::ASTContext::areLaxCompatibleRVVTypes(), clang::ASTContext::areLaxCompatibleSveTypes(), clang::Sema::areMatrixTypesOfTheSameDimension(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::ast_matchers::AST_POLYMORPHIC_MATCHER_P2(), clang::Sema::AttachBaseSpecifiers(), clang::ASTDeclReader::attachPreviousDeclImpl(), BitsContainNoUserData(), clang::Sema::BuildAddressSpaceAttr(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildCXXTypeId(), buildDeclareReductionRef(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemberExpr(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), buildSingleCopyAssignRecursively(), clang::Sema::BuildTypeofExprType(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVectorType(), clang::Sema::BuiltinChangeSignedness(), calculateElementType(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::arcmt::trans::canApplyWeak(), canAssignObjCObjectTypes(), clang::Sema::canCalleeThrow(), clang::FunctionProtoType::canThrow(), clang::Sema::canThrow(), CanThrow(), clang::canTypeidThrow(), captureInBlock(), captureInLambda(), CheckAggExprForMemSetUse(), CheckArgsTypesAreCorrect(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), clang::Sema::CheckCompleteDecompositionDeclaration(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), clang::interp::CheckConstant(), clang::Sema::CheckConversionToObjCLiteral(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckDistantExceptionSpec(), checkEnumTypesInSwitchStmt(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckEquivalentExceptionSpec(), CheckEvaluationResult(), clang::Sema::CheckExceptionSpecSubset(), CheckExtVectorComponent(), CheckFallThroughForBody(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFloatComparison(), checkFormatStringExpr(), checkFoundationAPI(), checkFPMathBuiltinElementType(), clang::Sema::CheckFunctionDeclaration(), CheckIdentityFieldAssignment(), clang::Sema::checkIllFormedTrivialABIStruct(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), CheckIndirectionOperand(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckLiteralOperatorDeclaration(), checkLiteralOperatorTemplateParameterList(), clang::Sema::CheckLValueToRValueConversionOperand(), clang::Sema::CheckMain(), checkMathBuiltinElementType(), clang::Sema::CheckMatrixElementwiseOperands(), clang::Sema::CheckMatrixMultiplyOperands(), clang::Sema::CheckMemberPointerConversion(), clang::Sema::CheckMessageArgumentTypes(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckMultiVersionFunction(), clang::Sema::CheckNontrivialField(), CheckNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), checkObjCArrayLiteral(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), checkObjCCollectionLiteralElement(), clang::Sema::CheckObjCConversion(), checkObjCDictionaryLiteral(), clang::Sema::CheckObjCForCollectionOperand(), checkOpenCLConditionVector(), checkOpenCLPipePacketType(), CheckOperatorNewDeleteTypes(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), checkQualifiedFunction(), clang::Sema::CheckQualifiedFunctionForTypeId(), CheckRelatedResultTypeCompatibility(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSizelessVectorCompareOperands(), clang::Sema::CheckSizelessVectorConditionalTypes(), clang::Sema::CheckSizelessVectorOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), checkSwiftAsyncErrorBlock(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), checkTypedefTypeForCapability(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVectorConditionalTypes(), CheckVectorElementCallArgs(), clang::Sema::CheckVectorLogicalOperands(), clang::Sema::CheckVectorOperands(), checkVectorResult(), checkVectorShift(), clang::interp::Context::classify(), clang::CodeGen::DefaultABIInfo::classifyArgumentType(), PNaClABIInfo::classifyArgumentType(), ClassifyDiagnostic(), clang::CodeGen::classifyReturnType(), clang::CodeGen::DefaultABIInfo::classifyReturnType(), PNaClABIInfo::classifyReturnType(), ClassifyUnnamed(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CodeCompleteObjCSuperMessage(), CollectVRQualifiers(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), CompleteNonViableCandidate(), clang::Sema::computeDeclContext(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), ConvertAPValueToString(), ConvertQualTypeToKind(), ConvertTypeToDiagnosticString(), convertVector(), CopyObject(), create_call_once(), create_dispatch_once(), create_OSAtomicCompareAndSwap(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::interp::Program::createDescriptor(), CreateFunctionRefExpr(), clang::CodeGen::CodeGenModule::CreateKCFITypeId(), clang::Sema::CreatePropertyDecl(), CXXRecordMembersNamed(), clang::Sema::DeclClonePragmaWeak(), decomposeTypeForEH(), clang::Sema::DeduceAutoType(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceReturnType(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), DeduceTemplateSpecArguments(), clang::Sema::DefaultArgumentPromotion(), defaultedSpecialMemberIsConstexpr(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), clang::desugarForDiagnostic(), clang::InitializationSequence::Diagnose(), clang::Sema::DiagnoseAssignmentEnum(), diagnoseBadCast(), DiagnoseBadConversion(), DiagnoseBadTarget(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), clang::ODRDiagsEmitter::diagnoseMismatch(), DiagnoseNarrowingInInitList(), clang::Sema::DiagnosePropertyAccessorMismatch(), DiagnoseRecursiveConstFields(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSentinelCalls(), diagnoseSubMismatchMethodParameters(), clang::Sema::DiagnoseUnusedButSetDecl(), DiagnoseVariableSizedIvars(), doesUsualArrayDeleteWantSize(), doRewriteToUTF8StringBoxedExpressionHelper(), EmitCompare(), clang::CodeGen::ConstantEmitter::emitForMemory(), clang::CodeGen::CodeGenModule::EmitNullConstant(), EmitObjectDelete(), emitPointerArithmetic(), EmitPointerWithAlignment(), EncodeBitField(), EvaluateBinaryTypeTrait(), EvaluateUnaryTypeTrait(), evenFlexibleArraySize(), extractPBaseFlags(), clang::Sema::ExtractUnqualifiedFunctionType(), FieldHasTrivialDestructorBody(), clang::Sema::FindCompositePointerType(), FindConversionForRefInit(), findEnumForBlockReturn(), clang::Sema::FindInstantiatedDecl(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CXXRecordDecl::forallBases(), FunctionCanThrow(), GeneralizeFunctionType(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), getAbsoluteValueArgumentType(), clang::ento::BasicValueFactory::getAPSIntType(), getArmStreamingFnType(), getAsRecordDecl(), GetAssumedMessageSendExprType(), clang::interp::Record::getBase(), GetBaseType(), clang::Expr::getBestDynamicClassType(), clang::Sema::getCallingConvAttributedType(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getCanonicalNestedNameSpecifier(), clang::ASTContext::getCommentForDecl(), getConversionOpReturnTyAsFunction(), clang::CXXMethodDecl::getCorrespondingMethodInClass(), clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ASTContext::getDeclAlign(), clang::ento::CallEvent::getDeclaredResultType(), clang::getDeclUsageType(), getDependentArraySubscriptType(), clang::FunctionDecl::getEllipsisLoc(), clang::FunctionDecl::getExceptionSpecType(), GetExprType(), GetFixedPointRank(), clang::VarDecl::getFlexibleArrayInitChars(), getFloatingRank(), getFuchsiaHandleSymbols(), GetFullTypeForDeclarator(), clang::Sema::getFullyPackExpandedSize(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::TypeName::getFullyQualifiedType(), clang::getFunctionExtInfo(), clang::CodeCompleteConsumer::OverloadCandidate::getFunctionType(), clang::Decl::getFunctionType(), clang::CodeGen::CGDebugInfo::getFunctionType(), clang::ASTContext::getFunctionTypeWithoutPtrSizes(), GetGCAttrTypeForType(), clang::ASTContext::getInnerObjCOwnership(), clang::ObjCObjectType::getInterface(), clang::ASTContext::getIntWidth(), clang::ASTContext::getLegacyIntegralTypeEncoding(), clang::ento::TypedValueRegion::getLocationType(), clang::ASTContext::getLValueReferenceType(), clang::Sema::getMoreSpecializedTemplate(), clang::StandardConversionSequence::getNarrowingKind(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), 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(), GetPrototypeLoc(), clang::UsingEnumDecl::getQualifierLoc(), getRangeForType(), clang::ObjCMessageExpr::getReceiverInterface(), clang::CodeGen::getRecordArgABI(), clang::interp::ByteCodeExprGen< Emitter >::getRecordTy(), getRecordType(), GetReturnType(), clang::ASTContext::getRValueReferenceType(), clang::extractapi::TypedefUnderlyingTypeResolver::getSymbolReferenceForType(), getTemplateArgsFromVariant(), clang::ASTContext::getTypeAlignIfKnown(), getTypeExpansion(), clang::ASTContext::getTypeInfoDataSizeInChars(), clang::ASTContext::getTypeUnadjustedAlign(), clang::ASTContext::getUnconstrainedType(), clang::GetUnderlyingFunction(), clang::extractapi::TypedefUnderlyingTypeResolver::getUnderlyingTypeDecl(), clang::Expr::getValueKindForType(), clang::AtomicExpr::getValueType(), clang::ento::MemRegionManager::getVarRegion(), HandleBaseToDerivedCast(), handleCleanupAttr(), handleFormatArgAttr(), handleFunctionTypeAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleGlobalAttr(), handleInitPriorityAttr(), HandleMemberPointerAccess(), handleMIGServerRoutineAttr(), HandleOpenCLAccessAttr(), handlePreferredName(), clang::Sema::HandlePropertyInClassExtension(), clang::Sema::handlerCanCatch(), hasArmStreamingInterface(), hasArmZAState(), hasArmZT0State(), hasAttr(), clang::ASTNodeImporter::hasAutoReturnTypeDeclaredInside(), hasBooleanRepresentation(), clang::RecordType::hasConstFields(), clang::FunctionProtoType::hasDependentExceptionSpec(), clang::Sema::hasExplicitCallingConv(), HasExplicitOwnershipAttr(), clang::VarDecl::hasFlexibleArrayInit(), hasIsEqualMethod(), HasNonDllImportDtor(), hasTemplateSpecializationInEncodedString(), hasTypedefNamed(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::CodeGen::CodeGenFunction::hasVolatileMember(), clang::Sema::IgnoredValueConversions(), clang::ASTNodeImporter::ImportFieldDeclDefinition(), clang::Sema::inferCUDATargetForImplicitSpecialMember(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::ASTReader::InitializeContext(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::interp::InterpretOffsetOf(), is32Or64BitBasicType(), IsAddressSpaceConversion(), isArithmeticArgumentPromotion(), isAtLeastAsSpecializedAs(), clang::Sema::IsBlockPointerConversion(), isBooleanType(), isCanonicalExceptionSpecification(), IsCFError(), isCFStringType(), clang::ento::cocoa::isCocoaObjectRef(), clang::Sema::IsComplexPromotion(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::QualType::isCXX11PODType(), IsDerivedFromInclusive(), clang::ParmVarDecl::isDestroyedInCallee(), isDispatchBlock(), clang::CodeGen::isEmptyField(), clang::CodeGen::isEmptyRecord(), isErrorParameter(), clang::Sema::IsFloatingPointPromotion(), isForwardingReference(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), clang::Sema::IsFunctionConversion(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), clang::Sema::isInitListConstructor(), isIntegerLikeType(), clang::Sema::IsIntegralPromotion(), isKnownNonNilCollectionType(), clang::Sema::isLaxVectorConversion(), isLegalTypeForHLSLSV_DispatchThreadID(), isLiteralType(), IsLLVMStringRef(), clang::Sema::IsMemberPointerConversion(), IsNSError(), isNSStringType(), clang::BinaryOperator::isNullPointerArithmeticExtension(), clang::Expr::isNullPointerConstant(), isObjCIdOrObjectKindOfType(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::RecordDecl::isOrContainsUnion(), clang::NonTypeTemplateParmDecl::isPackExpansion(), IsPartOfAST(), isPermittedNeonBaseType(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToRecordType(), clang::ASTContext::isPromotableIntegerType(), clang::CodeGen::ABIInfo::isPromotableIntegerTypeForABI(), clang::CodeGen::isRecordWithSIMDVectorType(), clang::ento::cocoa::isRefType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), IsSameCharType(), clang::ASTContext::isSameEntity(), clang::Sema::isSameOrCompatibleFunctionType(), isScopedEnumerationType(), clang::CodeGen::isSIMDVectorType(), isSimpleTemplateIdType(), clang::CodeGen::isSingleElementStruct(), IsSmallVector(), IsStandardConversion(), isStandardLayoutType(), clang::Sema::isStdInitializerList(), IsStdString(), IsStdVector(), isStreaming(), isStreamingCompatible(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), isSubstitutedType(), isTemplateArgumentTemplateParameter(), isTriviallyCopyableTypeImpl(), clang::QualType::isTrivialType(), isTypeSubstitutable(), IsUserDefinedConversion(), isValidBaseType(), isValidBPFPreserveEnumValueArg(), isValidBPFPreserveTypeInfoArg(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), isVarDeclStrongDefinition(), isVariableCapturable(), IsVariableSizedType(), isVector(), IsVectorConversion(), isVoidPointerToNonConst(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), clang::FieldDecl::isZeroSize(), loadToBegin(), LookupDirect(), clang::CXXRecordDecl::lookupInBases(), clang::Sema::LookupInlineAsmField(), clang::Sema::LookupInlineAsmVarDeclField(), LookupMemberExpr(), LookupMethodInReceiverType(), clang::Sema::LookupTemplateName(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), MarkUsedTemplateParameters(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), maybeAdjustInterfaceForSubscriptingCheck(), clang::Sema::MaybeBindToTemporary(), clang::CodeGen::CodeGenModule::MayDropFunctionReturn(), clang::CodeGen::CGCXXABI::mayNeedDestruction(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclExceptionSpecs(), clang::analyze_format_string::FormatSpecifier::namedTypeToLengthModifier(), needsConversionOfHalfVec(), NoteIndirectBases(), NoteSurrogateCandidate(), ObjCBridgeRelatedAttrFromType(), ObjCEnumerationCollection(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), OpenCLConvertScalarsToVectors(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), clang::DeclarationName::print(), printCXXConstructorDestructorName(), printIntegral(), clang::APValue::printPretty(), ProcessAPINotes(), clang::ento::ExprEngine::processSwitch(), clang::Sema::ProduceCallSignatureHelp(), PropertyMemoryAttribute(), pushTemporaryCleanup(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::TreeTransform< Derived >::RebuildUnresolvedUsingType(), REGISTER_MAP_WITH_PROGRAMSTATE(), clang::ASTContext::removePtrSizeAddrSpace(), clang::Sema::RequireCompleteType(), clang::Sema::RequireLiteralType(), clang::Sema::ResolveAddressOfOverloadedFunction(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFP2Ret(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFPRet(), rewriteToNumericBoxedExpression(), rewriteToObjCProperty(), SemaBuiltinDumpStruct(), SemaBuiltinOverflow(), clang::Sema::SemaBuiltinVectorToScalarMath(), SetElementTypeAsReturnType(), setUsedBits(), SetValueDataBasedOnQualType(), shouldAddReversedEqEq(), ShouldDiagnoseUnusedDecl(), shouldNotPrintDirectly(), ShouldTryAgainWithRedefinitionType(), clang::Expr::skipRValueSubobjectAdjustments(), skipTopLevelReferences(), clang::Sema::SpecialMemberIsTrivial(), clang::ObjCObjectType::stripObjCKindOfTypeAndQuals(), threadSafetyCheckIsPointer(), clang::TreeTransform< Derived >::TransformExceptionSpec(), TryAddressSpaceCast(), tryAtomicConversion(), TryClassUnification(), TryConstCast(), TryConstructorInitialization(), TryDeconstructFunctionLike(), clang::Sema::tryExprAsCall(), tryGCCVectorConvertAndSplat(), tryGetFunctionProtoType(), TryImplicitConversion(), TryListInitialization(), TryLValueToRValueCast(), TryObjectArgumentInitialization(), TryOrBuildParenListInitialization(), TryReferenceInit(), TryRefInitWithConversionFunction(), TryReinterpretCast(), TryStaticCast(), TryStaticMemberPointerUpcast(), TryStaticPointerDowncast(), TryStaticReferenceDowncast(), TryUserDefinedConversion(), TryValueInitialization(), TypeHasMayAlias(), TypeIsInnerPointer(), unsupportedTypeConversion(), clang::ASTContext::UnwrapSimilarTypes(), clang::QualType::UseExcessPrecision(), clang::Sema::UsualArithmeticConversions(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::Value::Value(), clang::interp::ByteCodeExprGen< Emitter >::VisitCastExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitComplexBinOp(), clang::UsedDeclVisitor< Derived >::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXScalarValueInitExpr(), clang::ASTNodeTraverser< Derived, NodeDelegateType >::VisitFriendDecl(), clang::TextNodeDumper::VisitFunctionDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitInitListExpr(), clang::ASTNodeImporter::VisitRecordDecl(), clang::ento::SValExplainer::VisitSymbolicRegion(), clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::serialization::DataStreamBasicWriter< Impl >::writeLValuePathSerializationHelper().
const CountAttributedType * Type::getAs | ( | ) | const |
This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type.
This will check for a CountAttributedType by removing any existing sugar until it reaches an CountAttributedType or a non-sugared type.
This will check for a BoundsAttributedType by removing any existing sugar until it reaches an BoundsAttributedType or a non-sugared type.
This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type.
This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type.
const T * clang::Type::getAsAdjusted |
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 7895 of file Type.h.
References P.
Referenced by clang::Sema::checkOpenMPDeclareVariantFunction(), and CreateNewFunctionDecl().
|
inline |
A variant of getAs<> for array types which silently discards qualifiers from the outermost type.
Definition at line 7931 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPDependClause(), clang::Sema::ActOnOpenMPUsesAllocatorClause(), clang::Sema::ActOnSourceLocExpr(), clang::ODRHash::AddStructuralValue(), appendType(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildObjCEncodeExpression(), buildUserDefinedMapperRef(), clang::interp::CheckFieldsInitialized(), clang::interp::EvaluationResult::checkFullyInitialized(), checkMappableExpressionList(), CheckStringInit(), clang::interp::Program::createDescriptor(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::CodeGen::CGOpenMPRuntime::emitUsesAllocatorsInit(), clang::ASTContext::getBaseElementType(), getCanonicalParamType(), clang::ASTContext::getConstantArrayElementCount(), getDependentArraySubscriptType(), getDesignatedType(), clang::interp::Program::getOrCreateDummy(), getTypeString(), handleDefaultInitValue(), hasSizedVLAType(), clang::InitListExpr::isStringLiteralInit(), processImplicitMapsWithDefaultMappers(), SemaBuiltinLaunder(), and clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr().
const ComplexType * Type::getAsComplexIntegerType | ( | ) | const |
Definition at line 687 of file Type.cpp.
References Complex.
Referenced by handleComplexIntConversion(), and isComplexIntegerType().
CXXRecordDecl * Type::getAsCXXRecordDecl | ( | ) | const |
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization.
Definition at line 1862 of file Type.cpp.
References getAsTagDecl().
Referenced by clang::Sema::ActOnCXXTryBlock(), clang::CodeGen::CGOpenMPRuntimeGPU::adjustTargetSpecificDataForLambdas(), clang::CodeGen::CGHLSLRuntime::annotateHLSLResource(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildCXXConstructExpr(), BuildNonArrayForRange(), clang::Sema::BuildUnresolvedCoawaitExpr(), calculateOffset(), canCaptureVariableByCopy(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::canVarDeclThrow(), clang::Sema::CaptureHasSideEffects(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCompleteDecompositionDeclaration(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructor(), checkDestructorReference(), clang::CheckEquivalentExceptionSpecImpl(), checkEscapingByref(), checkForConsumableClass(), checkMoveAssignmentForRepeatedMove(), clang::Sema::CheckParmsForFunctionDef(), checkTrivialClassMembers(), checkTrivialSubobjectCall(), checkTupleLikeDecomposition(), CheckUnaryTypeTraitTypeCompleteness(), computeBlockInfo(), clang::dataflow::copyRecord(), clang::CoroutineStmtBuilder::CoroutineStmtBuilder(), clang::ImplicitCastExpr::Create(), create_call_once(), clang::Sema::CreateBuiltinBinOp(), clang::ConstructionContext::createFromLayers(), clang::TypeName::createNestedNameSpecifierForScopeOf(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), diagnoseBadCast(), clang::Sema::DiagnoseEmptyLookup(), diagnoseMutableFields(), DiagnoseReinterpretUpDownCast(), DiagnoseUninitializedReference(), EmitDeclDestroy(), EmitDestroyingObjectDelete(), clang::CodeGen::CGOpenMPRuntime::emitTargetGlobalVariable(), clang::ento::StoreManager::evalBaseToDerived(), clang::ento::StoreManager::evalDerivedToBase(), EvaluateBooleanTypeTrait(), clang::Sema::EvaluateStaticAssertMessageAsString(), EvaluateUnaryTypeTrait(), clang::Sema::FindAllocationFunctions(), findDecomposableBaseClass(), findDeleteForPromise(), clang::Sema::FindInstantiatedDecl(), findSubobject(), clang::NestedNameSpecifier::getAsRecordDecl(), getBaseAlignmentAndOffsetFromPtr(), clang::ASTContext::getCommentForDecl(), getConstructedRegion(), getContainedDynamicClass(), getDerivedToBaseAlignmentAndOffset(), clang::CFGImplicitDtor::getDestructorDecl(), clang::Sema::getDestructorName(), clang::ento::CXXInstanceCall::getExtraInvalidatedValues(), getFieldsFromClassHierarchy(), clang::Sema::getFixItZeroInitializerForType(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::LambdaExpr::getLambdaClass(), clang::ento::ProgramState::getLValue(), clang::CodeGen::CGCXXABI::getMemberPointerAdjustment(), clang::CodeGen::CodeGenModule::getMinimumObjectSize(), clang::MemberPointerType::getMostRecentCXXRecordDecl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), getNoteTag(), getOpenCLKernelParameterType(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), clang::interp::Context::getOverridingFunction(), getPrettyTypeName(), clang::CXXMemberCallExpr::getRecordDecl(), clang::ento::BlockCall::getRuntimeDefinition(), clang::ento::CXXInstanceCall::getRuntimeDefinition(), getUnionInitName(), getVirtualOperatorDelete(), HandleBaseToDerivedCast(), HandleConstructorCall(), clang::DotMemberAccessHandler::handleDeclaration(), handleDefaultInitValue(), HandleDestructionImpl(), HandleLValueBasePath(), HandleMemberPointerAccess(), handlePreferredName(), hasAnyVptr(), hasNonTrivialConstructorCall(), clang::hasPublicMethodInBase(), hasTemplateSpecializationInEncodedString(), hasTrivialABIAttr(), clang::ComparisonCategoryInfo::ValueInfo::hasValidIntValue(), hasVirtualDestructor(), clang::Sema::inferGslPointerAttribute(), InitializationHasSideEffects(), clang::Sema::isAbstractType(), clang::CXXDynamicCastExpr::isAlwaysNull(), isAutoCastType(), isConstNotMutableType(), isConsumableType(), clang::CFGCXXRecordTypedCall::isCXXRecordTypedCall(), clang::Sema::IsDerivedFrom(), clang::FunctionDecl::isDestroyingOperatorDelete(), isIncompleteType(), clang::ento::iterator::isIteratorType(), clang::ento::RetainSummaryManager::isKnownSmartPointer(), clang::QualType::isNonConstantStorage(), isNothrowT(), clang::Sema::isOpenMPPrivateDecl(), isOSObjectRelated(), isPointerToObject(), clang::CXXTypeidExpr::isPotentiallyEvaluated(), clang::FieldDecl::isPotentiallyOverlapping(), isReadByLvalueToRvalueConversion(), isRecordWithAttr(), isRelevantAttr(), isStdBasicOstream(), isStdSmartPtr(), clang::ento::smartptr::isStdSmartPtr(), isStructuralType(), isSubstitutedType(), clang::Sema::isThisOutsideMemberFunctionBody(), clang::QualType::isTriviallyEqualityComparableType(), isValidBaseClass(), isValidSubjectOfOSAttribute(), clang::Sema::isValidVarArgType(), isZeroInitialized(), LeastDerivedClassWithSameLayout(), clang::ComparisonCategories::lookupInfoForType(), lookupPromiseType(), lookupStdTypeTraitMember(), mapConsumableAttrState(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), PerformReturnAdjustment(), print_elem(), print_initializer(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::Sema::ProduceCallSignatureHelp(), recoverFromMSUnqualifiedLookup(), regionMatchesCXXRecordType(), clang::Sema::RequireNonAbstractType(), clang::Sema::RequireStructuralType(), clang::CXXRecordDecl::setBases(), clang::Sema::tryCaptureOpenMPLambdas(), TryListInitialization(), TypeRequiresBuiltinLaunderImp(), clang::dataflow::UncheckedOptionalAccessModel::UncheckedOptionalAccessModel(), usesMultipleInheritanceModel(), clang::ento::ExprEngine::VisitCXXDestructor(), visitLocalsRetainedByInitializer(), warnAboutAmbiguousFunction(), and warnAboutRedundantParens().
const ObjCObjectPointerType * Type::getAsObjCInterfacePointerType | ( | ) | const |
Definition at line 1839 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage(), CheckObjCBridgeNSCast(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::HandleExprPropertyRefExpr(), and clang::Sema::SelectorsForTypoCorrection().
const ObjCObjectType * Type::getAsObjCInterfaceType | ( | ) | const |
Definition at line 1831 of file Type.cpp.
Referenced by acceptsObjCTypeParams(), and getBaseMessageSendResultType().
const ObjCObjectPointerType * Type::getAsObjCQualifiedClassType | ( | ) | const |
Definition at line 1821 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage().
const ObjCObjectPointerType * Type::getAsObjCQualifiedIdType | ( | ) | const |
Definition at line 1811 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage(), and clang::Sema::CodeCompleteObjCInstanceMessage().
const ObjCObjectType * Type::getAsObjCQualifiedInterfaceType | ( | ) | const |
Definition at line 1797 of file Type.cpp.
Referenced by isObjCQualifiedInterfaceType().
|
inline |
Definition at line 7642 of file Type.h.
Referenced by clang::Sema::BuildBinOp(), clang::Sema::BuildUnaryOp(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckPlaceholderExpr(), checkPlaceholderForOverload(), clang::Sema::DefaultVariadicArgumentPromotion(), isValidBPFPreserveEnumValueArg(), isValidBPFPreserveFieldInfoArg(), and isValidBPFPreserveTypeInfoArg().
RecordDecl * Type::getAsRecordDecl | ( | ) | const |
Retrieves the RecordDecl this type refers to.
Definition at line 1866 of file Type.cpp.
References getAsTagDecl().
Referenced by clang::Sema::ActOnFriendTypeDecl(), CheckC23ConstexprVarType(), clang::Sema::CheckCoroutineWrapper(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), create_call_once(), clang::Sema::deepTypeCheckForSYCLDevice(), emitReadOnlyPlacementAttrWarning(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), getAsRecordDecl(), clang::dataflow::getFieldsForInitListExpr(), getFieldsFromClassHierarchy(), hasBPFPreserveStaticOffset(), clang::ASTNodeImporter::ImportFieldDeclDefinition(), clang::ento::tagged_union_modeling::isStdType(), isTrackedVar(), clang::QualType::isTriviallyRelocatableType(), isValidStructGUID(), processImplicitMapsWithDefaultMappers(), clang::Sema::ProduceConstructorSignatureHelp(), SemaBuiltinDumpStruct(), and clang::ASTNodeImporter::VisitTypedefNameDecl().
const RecordType * Type::getAsStructureType | ( | ) | const |
Definition at line 710 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by addFlexibleArrayMemberInitSize(), appendType(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), isCallback(), clang::analyze_format_string::ArgType::matchesType(), and clang::Sema::ParsedFreeStandingDeclSpec().
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 1870 of file Type.cpp.
Referenced by clang::Sema::ActOnTag(), clang::Sema::ActOnUsingEnumDeclaration(), clang::UsingEnumDecl::Create(), emitDependData(), clang::CodeGen::CGOpenMPRuntime::emitDepobjDependClause(), emitDestructorsFunction(), clang::CodeGen::CGOpenMPRuntime::emitDoacrossInit(), emitProxyTaskFunction(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), emitTaskPrivateMappingFunction(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), getAsCXXRecordDecl(), getAsRecordDecl(), clang::CodeGen::CGOpenMPRuntime::getDepobjElements(), clang::UsingEnumDecl::getEnumDecl(), getUuidAttrOfType(), and TypeHasMayAlias().
const RecordType * Type::getAsUnionType | ( | ) | const |
NOTE: getAs*ArrayType are methods on ASTContext.
Definition at line 729 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by appendType(), CheckNonNullExpr(), clang::Sema::CheckTransparentUnionArgumentConstraints(), isTransparentUnion(), IsTransparentUnionStandardConversion(), clang::Sema::isValidPointerAttrType(), clang::ASTContext::mergeTransparentUnionType(), clang::Sema::ParsedFreeStandingDeclSpec(), and clang::CodeGen::useFirstFieldIfTransparentUnion().
|
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 7828 of file Type.h.
References clang::ast_matchers::arrayType, and clang::ast_matchers::type.
Referenced by clang::Sema::BuildCXXConstructExpr(), buildMemcpyForAssignmentOp(), clang::canVarDeclThrow(), clang::Sema::CaptureHasSideEffects(), clang::Sema::CheckFieldDecl(), clang::Sema::checkIllFormedTrivialABIStruct(), CheckUnaryTypeTraitTypeCompleteness(), diagnoseMutableFields(), DiagnoseUninitializedReference(), clang::Sema::DiagnoseUnusedButSetDecl(), doesUsualArrayDeleteWantSize(), clang::CodeGen::CGOpenMPRuntime::emitTargetGlobalVariable(), getContainedDynamicClass(), clang::ASTContext::getPreferredTypeAlign(), getUuidAttrOfType(), HasNonDllImportDtor(), hasTemplateSpecializationInEncodedString(), clang::ASTNodeImporter::ImportFieldDeclDefinition(), InitializationHasSideEffects(), clang::QualType::isCXX11PODType(), isLiteralType(), isReadByLvalueToRvalueConversion(), isStandardLayoutType(), clang::CodeGen::CGCXXABI::mayNeedDestruction(), print_elem(), and pushTemporaryCleanup().
|
inline |
Definition at line 2725 of file Type.h.
Referenced by addAssociatedClassesAndNamespaces(), canHaveNullability(), checkOpenCLPipePacketType(), clang::Sema::CheckTemplateIdType(), DeduceTemplateArgumentsByTypeMatch(), clang::CodeGen::CodeGenTypes::DeriveThisType(), clang::TypePropertyCache< Private >::ensure(), clang::ASTContext::getCanonicalType(), getCanonicalTypeUnqualified(), getConstantArrayExtents(), getCurrentInstantiationOf(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), clang::ASTContext::getObjCGCAttrKind(), clang::LocInfoType::getType(), clang::LinkageComputer::getTypeLinkageAndVisibility(), clang::ASTContext::getUsingType(), isLinkageValid(), isLiteralType(), isObjCARCImplicitlyUnretainedType(), IsPossiblyOpaquelyQualifiedType(), isSameQualifier(), printIntegral(), and clang::ObjCTypeParamType::Profile().
|
inline |
Definition at line 214 of file CanonicalType.h.
References clang::CanQual< Type >::CreateUnsafe(), and getCanonicalTypeInternal().
Referenced by adjustReturnValue(), clang::CodeGen::CodeGenTypes::arrangeCXXMethodType(), clang::CodeGen::CodeGenTypes::arrangeFunctionDeclaration(), clang::Sema::checkExceptionSpecification(), evaluateCDTSize(), findDirectBaseWithType(), GetFormalType(), GetReturnType(), clang::Sema::HandleFunctionTypeMismatch(), and setCUDAKernelCallingConvention().
|
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 2547 of file Type.h.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::BuildReturnStmt(), clang::NonTypeTemplateParmDecl::Create(), clang::Sema::DeduceAutoType(), clang::Sema::deduceVarTypeFromInitializer(), clang::CodeGen::CGDebugInfo::EmitUsingDecl(), GetFullTypeForDeclarator(), clang::ASTContext::getUnconstrainedType(), clang::NonTypeTemplateParmDecl::hasPlaceholderTypeConstraint(), clang::Sema::InstantiateFunctionDefinition(), clang::Sema::MergeFunctionDecl(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), and clang::ASTDeclReader::VisitFunctionDecl().
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 1991 of file Type.cpp.
Referenced by clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::CheckPackExpansion(), clang::Sema::CheckTemplateArgument(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), clang::Sema::deduceVarTypeFromInitializer(), GetDeclSpecTypeForDeclarator(), clang::isUndeducedReturnType(), LookupDirect(), and clang::ASTDeclWriter::VisitVarDecl().
|
inline |
Definition at line 2431 of file Type.h.
Referenced by clang::computeDependence().
Linkage Type::getLinkage | ( | ) | const |
Determine the linkage of this type.
Definition at line 4486 of file Type.cpp.
References clang::TypePropertyCache< Private >::ensure(), and TypeBits.
Referenced by checkUndefinedButUsed(), getTypeInfoLinkage(), clang::LinkageComputer::getTypeLinkageAndVisibility(), and clang::Sema::isExternalWithNoLinkageType().
LinkageInfo Type::getLinkageAndVisibility | ( | ) | const |
Determine the linkage and visibility of this type.
Definition at line 4592 of file Type.cpp.
References clang::LinkageComputer::getTypeLinkageAndVisibility().
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 475 of file Type.cpp.
References getTypeClass().
Referenced by unwrapSugar(), clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit(), and clang::TextNodeDumper::Visit().
std::optional< NullabilityKind > Type::getNullability | ( | ) | 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 4596 of file Type.cpp.
References getAs(), and clang::ExtQualsTypeCommonBase::Type.
Referenced by clang::Sema::BuildObjCBoxedExpr(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckNonNullExpr(), CheckNullabilityTypeSpecifier(), clang::Sema::CheckObjCPropertyAttributes(), computeConditionalNullability(), clang::Sema::deduceClosureReturnType(), clang::Sema::diagnoseNullableToNonnullConversion(), clang::ASTContext::getArrayDecayedType(), getBaseMessageSendResultType(), GetFullTypeForDeclarator(), clang::Sema::getMessageSendResultType(), clang::ASTContext::hasSameNullabilityTypeQualifier(), mergeParamDeclTypes(), and mergeTypeNullabilityForRedecl().
Qualifiers::ObjCLifetime Type::getObjCARCImplicitLifetime | ( | ) | const |
Return the implicit lifetime for this type, which must not be dependent.
Definition at line 4801 of file Type.cpp.
References isObjCARCImplicitlyUnretainedType(), clang::Qualifiers::OCL_ExplicitNone, and clang::Qualifiers::OCL_Strong.
Referenced by clang::Sema::AdjustParameterTypeForObjCAutoRefCount(), clang::Sema::BuildCXXNew(), clang::Sema::CheckParameter(), handleObjCPreciseLifetimeAttr(), and tryMakeVariablePseudoStrong().
std::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.
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. |
Extract the class from the receiver object type.
Definition at line 1617 of file Type.cpp.
References castAs(), clang::ObjCCategoryDecl::getClassInterface(), clang::ObjCObjectType::getInterface(), clang::ASTContext::getObjCObjectType(), clang::DeclContext::getParentASTContext(), clang::ObjCObjectType::getSuperClassType(), clang::ObjCObjectType::getTypeArgs(), clang::ObjCCategoryDecl::getTypeParamList(), clang::QualType::isNull(), clang::ObjCObjectType::isUnspecialized(), and clang::ASTContext::ObjCBuiltinIdTy.
Referenced by clang::Sema::CheckMessageArgumentTypes(), clang::CodeCompletionResult::createCodeCompletionStringForDecl(), and clang::QualType::substObjCMemberType().
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 1847 of file Type.cpp.
References getAs(), and getPointeeType().
Referenced by adjustReturnValue(), DiagnoseReinterpretUpDownCast(), emitBadConversionNotes(), clang::ento::retaincountchecker::RetainCountChecker::errorKindToBugKind(), clang::ento::StoreManager::evalBaseToDerived(), clang::ento::StoreManager::evalDerivedToBase(), clang::SourceLocExpr::EvaluateInContext(), HandleDynamicCast(), isOSObjectPtr(), isSetOnReadPtrType(), clang::isUncountedPtr(), clang::QualType::mayBeDynamicClass(), clang::QualType::mayBeNotDynamicClass(), regionMatchesCXXRecordType(), and shouldTrackFirstArgument().
|
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 7835 of file Type.h.
References clang::ast_matchers::type.
Referenced by clang::CodeGen::CGHLSLRuntime::annotateHLSLResource(), checkIsValidOpenCLKernelParameter(), clang::Sema::DiagnoseAssignmentResult(), getOpenCLKernelParameterType(), clang::ASTNodeImporter::ImportDeclParts(), clang::InitializationSequence::Perform(), and SemaOpenCLBuiltinEnqueueKernel().
QualType Type::getPointeeType | ( | ) | const |
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.
Definition at line 694 of file Type.cpp.
References getPointeeType().
Referenced by clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOMPArrayShapingExpr(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPDependClause(), clang::Sema::ActOnStartCXXMemberReference(), addAssociatedClassesAndNamespaces(), clang::Sema::AddConversionCandidate(), adjustCVQualifiersForCXXThisWithinLambda(), AlignOfType(), clang::ast_matchers::AST_POLYMORPHIC_MATCHER_P2(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildCallExpr(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildExpressionFromNonTypeTemplateArgumentValue(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildResolvedCallExpr(), BuildSimilarlyQualifiedPointerType(), clang::Sema::BuiltinRemovePointer(), clang::arcmt::trans::canApplyWeak(), clang::Sema::canCalleeThrow(), CanThrow(), clang::Sema::CaptureHasSideEffects(), captureInBlock(), captureInLambda(), captureVariablyModifiedType(), clang::ento::StoreManager::castRegion(), castToBase(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), checkBlockPointerTypesForAssignment(), checkCastFunctionType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalPointerCompatibility(), clang::Sema::CheckCXXThisCapture(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDistantExceptionSpec(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), CheckFallThroughForBody(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckLiteralOperatorDeclaration(), checkMappableExpressionList(), CheckNullabilityTypeSpecifier(), CheckObjCBridgeNSCast(), clang::Sema::CheckObjCConversion(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), clang::Sema::CodeCompleteMemberReferenceExpr(), CollectVRQualifiers(), CompareStandardConversionSequences(), CompleteNonViableCandidate(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenTypes::ConvertType(), create_call_once(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), decomposeTypeForEH(), clang::Sema::DeduceReturnType(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::deepTypeCheckForSYCLDevice(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), dereference(), diagnoseArithmeticOnTwoFunctionPointers(), clang::Sema::DiagnoseAssignmentResult(), diagnoseBadCast(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), DiagnoseDivisionSizeofPointerOrArray(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseSentinelCalls(), diagnoseStringPlusChar(), clang::Sema::DiagnoseSwiftName(), clang::Sema::DiscardMisalignedMemberAddress(), doRewriteToUTF8StringBoxedExpressionHelper(), emitAlignedClause(), EmitAtomicCmpXchgForMSIntrin(), emitBadConversionNotes(), EmitBinaryAtomicPost(), EmitCheckedMixedSignMultiply(), EmitCheckedUnsignedMultiplySignedResult(), emitFrexpBuiltin(), EmitISOVolatileLoad(), EmitISOVolatileStore(), EmitPointerWithAlignment(), emitWritebackArg(), clang::ento::StoreManager::evalBaseToDerived(), clang::ento::ExprEngine::evalCall(), EvaluateBuiltinStrLen(), clang::Expr::EvaluateCharRangeAsString(), clang::Sema::FindCompositePointerType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), GeneralizeType(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), getAArch64LS(), getAlignmentAndOffsetFromBinAddOrSub(), getBaseAlignmentAndOffsetFromPtr(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), clang::CallExpr::getCallReturnType(), getCanonicalParamType(), getConstantExprReferredType(), getCoreType(), getCXXRecord(), clang::ASTContext::getDeclAlign(), clang::getDeclUsageType(), getDeepPointeeType(), GetExplicitObjectExpr(), GetExplicitObjectType(), clang::ento::CXXInstanceCall::getExtraInvalidatedValues(), getFuchsiaHandleSymbols(), clang::TypeName::getFullyQualifiedType(), clang::BlockExpr::getFunctionType(), clang::ASTContext::getInnerObjCOwnership(), clang::ento::StoreManager::getLValueElement(), clang::CodeGen::CodeGenModule::getNaturalPointeeTypeAlignment(), clang::QualType::getNonLValueExprType(), clang::QualType::getNonReferenceType(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCQualType(), clang::CXXMemberCallExpr::getObjectType(), getOpenCLKernelParameterType(), clang::CodeGen::CGOpenMPRuntimeGPU::getParameterAddress(), getPointeeCXXRecordDecl(), clang::ento::SymbolicRegion::getPointeeStaticType(), getPointeeType(), getPointeeTypeText(), getPresumedAlignmentOfPointer(), getPrettyTypeName(), clang::CXXMemberCallExpr::getRecordDecl(), clang::interp::ByteCodeExprGen< Emitter >::getRecordTy(), getRecordType(), clang::ento::CXXInstanceCall::getRuntimeDefinition(), clang::ASTContext::getTargetNullPointerValue(), clang::CodeGen::CGCXXABI::getThisAddress(), clang::GetUnderlyingFunction(), getUuidAttrOfType(), clang::CodeGen::getVAListElementType(), HandleBaseToDerivedCast(), clang::consumed::ConsumedStmtVisitor::handleCall(), handleCallbackAttr(), clang::ento::tagged_union_modeling::handleConstructorAndAssignment(), clang::Sema::HandleFunctionTypeMismatch(), HandleMemberPointerAccess(), handleMSPointerTypeQualifierAttr(), handleObjCOwnershipTypeAttr(), clang::Sema::handlerCanCatch(), HandleWebAssemblyFuncrefAttr(), handleXReturnsXRetainedAttr(), hasBPFPreserveStaticOffset(), HasExplicitOwnershipAttr(), hasIsEqualMethod(), hasNonTrivialConstructorCall(), InitCatchParam(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::Sema::IsBlockPointerConversion(), isCallback(), clang::CXXMethodDecl::isCopyAssignmentOperator(), isErrorParameter(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), isIndirectPointerType(), clang::Sema::isInitListConstructor(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::Expr::isNullPointerConstant(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), isOSObjectRelated(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), isPointerToObject(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), isSubstitutedType(), isSwiftAsyncCallee(), IsTypeModifiable(), isValidOSObjectOutParameter(), isValidSubjectOfOSAttribute(), isValidSwiftContextType(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), isVoidPointer(), isVoidPointerToNonConst(), clang::AtomicExpr::isVolatile(), loadToBegin(), clang::Sema::LookupInlineAsmField(), LookupMemberExpr(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeVarDeclExceptionSpecs(), needsAmpersandOnTemplateArg(), NoteSurrogateCandidate(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), clang::Sema::PerformQualificationConversion(), PerformReturnAdjustment(), clang::Sema::PrepareScalarCast(), clang::APValue::printPretty(), processImplicitMapsWithDefaultMappers(), clang::Sema::ProduceCallSignatureHelp(), recoverFromMSUnqualifiedLookup(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::ASTContext::removePtrSizeAddrSpace(), rewriteBuiltinFunctionDecl(), SemaBuiltinDumpStruct(), SemaBuiltinLaunder(), SemaBuiltinOverflow(), SemaOpenCLBuiltinEnqueueKernel(), shouldSkipNotingLambdaConversionDecl(), clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter(), TryDeconstructFunctionLike(), clang::Sema::tryExprAsCall(), tryGetFunctionProtoType(), TryObjectArgumentInitialization(), TryReinterpretCast(), TryStaticCast(), TryToFixInvalidVariablyModifiedType(), typeIsPostfix(), unwrapCastAwayConstnessLevel(), clang::ASTContext::UnwrapSimilarTypes(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl(), and clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr().
QualType Type::getRVVEltType | ( | const ASTContext & | Ctx | ) | const |
Returns the representative type for the element of an RVV builtin type.
This is used to represent fixed-length RVV vectors created with the 'riscv_rvv_vector_bits' type attribute as VectorType.
Definition at line 2536 of file Type.cpp.
References clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ASTContext::getBuiltinVectorTypeInfo(), clang::BuiltinType::getKind(), and isRVVVLSBuiltinType().
Referenced by clang::ASTContext::areLaxCompatibleRVVTypes(), and HandleRISCVRVVVectorBitsTypeAttr().
Type::ScalarTypeKind Type::getScalarTypeKind | ( | ) | const |
Given that this is a scalar type, classify it.
Definition at line 2276 of file Type.cpp.
References isBitIntType(), 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(), clang::Sema::PrepareScalarCast(), and clang::Sema::ScalarTypeToBooleanCastKind().
QualType Type::getSveEltType | ( | const ASTContext & | Ctx | ) | const |
Returns the representative type for the element of an SVE builtin type.
This is used to represent fixed-length SVE vectors created with the 'arm_sve_vector_bits' type attribute as VectorType.
Definition at line 2505 of file Type.cpp.
References clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ASTContext::getBuiltinVectorTypeInfo(), clang::BuiltinType::getKind(), isSveVLSBuiltinType(), and clang::ASTContext::UnsignedCharTy.
Referenced by clang::ASTContext::areCompatibleSveTypes(), clang::ASTContext::areLaxCompatibleSveTypes(), CheckImplicitConversion(), clang::Sema::CheckSizelessVectorConditionalTypes(), checkSizelessVectorShift(), clang::Sema::CreateBuiltinArraySubscriptExpr(), HandleArmSveVectorBitsTypeAttr(), and isValidSizelessVectorForConditionalCondition().
|
inline |
Definition at line 2094 of file Type.h.
Referenced by addAssociatedClassesAndNamespaces(), buildNamedType(), BuildSimilarlyQualifiedPointerType(), captureVariablyModifiedType(), clang::LocInfoType::classof(), clang::BuiltinType::classof(), clang::ComplexType::classof(), clang::ParenType::classof(), clang::PointerType::classof(), clang::BoundsAttributedType::classof(), clang::CountAttributedType::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::MatrixType::classof(), clang::ConstantMatrixType::classof(), clang::DependentSizedMatrixType::classof(), clang::FunctionType::classof(), clang::FunctionNoProtoType::classof(), clang::FunctionProtoType::classof(), clang::UnresolvedUsingType::classof(), clang::UsingType::classof(), clang::TypedefType::classof(), clang::MacroQualifiedType::classof(), clang::TypeOfExprType::classof(), clang::TypeOfType::classof(), clang::DecltypeType::classof(), clang::PackIndexingType::classof(), clang::UnaryTransformType::classof(), clang::TagType::classof(), clang::RecordType::classof(), clang::EnumType::classof(), clang::AttributedType::classof(), clang::BTFTagAttributedType::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(), clang::BitIntType::classof(), clang::DependentBitIntType::classof(), computeCachedProperties(), clang::LinkageComputer::computeTypeLinkageInfo(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::Sema::CreateParsedType(), clang::desugarForDiagnostic(), EvaluateBuiltinClassifyType(), getAsSugar(), clang::QualType::getBaseTypeIdentifier(), getCommonNonSugarTypeNode(), getCommonSugarTypeNode(), clang::Sema::getCopyElisionCandidate(), clang::ASTNodeKind::getFromNode(), getLocallyUnqualifiedSingleStepDesugaredType(), clang::TypeLoc::getTypeLocClass(), clang::UnqualTypeLoc::getTypeLocClass(), getUnqualifiedDesugaredType(), clang::ASTContext::getVariableArrayDecayedType(), clang::QualType::isCXX98PODType(), isLayoutCompatible(), isObjCReceiverType(), IsPossiblyOpaquelyQualifiedTypeInternal(), isSpecifierType(), IsStructurallyEquivalent(), isSubstitutedType(), MarkUsedTemplateParameters(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeTypes(), clang::ASTContext::PrintStats(), clang::RecursiveASTVisitor< Derived >::TraverseType(), typeIsPostfix(), UnwrapTypeForDebugInfo(), and clang::TypeVisitor< ImplClass, RetTy >::Visit().
const char * Type::getTypeClassName | ( | ) | const |
Definition at line 3253 of file Type.cpp.
References TypeBits.
Referenced by clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), and clang::ASTNodeImporter::VisitType().
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 604 of file Type.cpp.
References getTypeClass().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::BuildPointerType(), getArrayElementTypeNoTypeQual(), getAsStructureType(), getAsUnionType(), clang::ASTContext::getTargetNullPointerValue(), clang::ASTContext::getTypeUnadjustedAlign(), clang::ASTContext::getUnqualifiedArrayType(), handleCallbackAttr(), clang::ento::iterator::isIteratorType(), IsPreserveAIArrayBase(), isValidBPFPreserveEnumValueArg(), isValidBPFPreserveTypeInfoArg(), and TryReferenceListInitialization().
|
inline |
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 1879 of file Type.cpp.
References getAs().
Referenced by clang::Sema::BuildFieldReferenceExpr(), IsPreserveAIArrayBase(), clang::Expr::isUnusedResultAWarning(), and IsVectorConversion().
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 1996 of file Type.cpp.
Referenced by clang::Sema::FinalizeDeclaratorGroup().
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 2238 of file Type.cpp.
References isFloatingType().
Referenced by clang::Sema::ActOnParenExpr(), canApplyNoFPClass(), checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckHLSLBuiltinFunctionCall(), clang::Sema::CheckSizelessVectorCompareOperands(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorLogicalOperands(), diagnoseTautologicalComparison(), EmitCompare(), getDotProductIntrinsic(), handleTransparentUnionAttr(), and clang::Sema::PerformImplicitConversion().
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 2001 of file Type.cpp.
References isIntegerType().
Referenced by clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CreateBuiltinUnaryOp(), clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getCorrespondingUnsignedType(), and clang::Sema::SemaBuiltinShuffleVector().
|
inline |
|
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 7819 of file Type.h.
Referenced by Evaluate(), EvaluateBuiltinStrLen(), EvaluatePointer(), handleSwiftError(), ignorePointerCastsAndParens(), is32Or64BitBasicType(), and isValidSwiftContextType().
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 2166 of file Type.cpp.
References isSignedIntegerOrEnumerationType().
Referenced by actOnOMPReductionKindClause(), AnalyzeComparison(), canConvertIntToOtherIntTy(), canConvertIntTyToFloatTy(), castValueToType(), checkOpenMPLoop(), checkPointerTypesForAssignment(), EmitCompare(), emitOMPAtomicCompareExpr(), clang::ASTContext::getCorrespondingSignedType(), getDotProductIntrinsic(), clang::CodeGen::ABIArgInfo::getExtend(), handleIntegerConversion(), and clang::analyze_format_string::ArgType::matchesType().
bool Type::hasSizedVLAType | ( | ) | const |
Whether this type involves a variable-length array type with a definite size.
Definition at line 4895 of file Type.cpp.
References getAsArrayTypeUnsafe(), and isVariablyModifiedType().
Referenced by clang::QualType::isCanonicalAsParam().
bool Type::hasUnnamedOrLocalType | ( | ) | const |
Whether this type is or contains a local or unnamed type.
Definition at line 4491 of file Type.cpp.
References clang::TypePropertyCache< Private >::ensure(), and TypeBits.
Referenced by clang::Sema::CheckTemplateArgument().
bool Type::hasUnsignedIntegerRepresentation | ( | ) | const |
Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector.
Definition at line 2216 of file Type.cpp.
References isUnsignedIntegerOrEnumerationType().
Referenced by AnalyzeComparison(), checkOpenMPLoop(), DiagnoseBadShiftValues(), DiagnoseFloatingImpCast(), clang::ASTContext::getCorrespondingUnsignedType(), getDotProductIntrinsic(), and isLegalTypeForHLSLSV_DispatchThreadID().
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 2318 of file Type.cpp.
Referenced by clang::Sema::AddInitializerToDecl(), EvaluateUnaryTypeTrait(), TryListConversion(), and TryListInitialization().
bool Type::isAlignValT | ( | ) | const |
Definition at line 3050 of file Type.cpp.
References clang::IdentifierInfo::isStr().
Referenced by clang::Sema::AddAllocAlignAttr(), getUsualDeleteParams(), and clang::FunctionDecl::isReplaceableGlobalAllocationFunction().
bool Type::isAnyCharacterType | ( | ) | const |
Determine whether this type is any of the built-in character types.
Definition at line 2105 of file Type.cpp.
Referenced by BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::CheckCompatibleReinterpretCast(), diagnoseStringPlusChar(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::UserDefinedLiteral::getLiteralOperatorKind(), clang::Sema::IsIntegralPromotion(), printIntegral(), and TryPrintAsStringLiteral().
|
inline |
Definition at line 7469 of file Type.h.
Referenced by actOnOMPReductionKindClause(), checkArithmeticOrEnumeralCompare(), CheckIncrementDecrementOperand(), clang::interp::Context::classify(), clang::Sema::CreateBuiltinUnaryOp(), emitReplacement(), Evaluate(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateComplex(), EvaluateUnaryTypeTrait(), FindDesignatorMismatch(), findSubobject(), getAbsoluteValueKind(), clang::interp::EvalEmitter::interpretDecl(), clang::ento::NonLoc::isCompoundType(), isDesignatorAtObjectEnd(), isLiteralType(), IsStandardConversion(), clang::APValue::printPretty(), TryListInitialization(), clang::interp::ByteCodeExprGen< Emitter >::visit(), clang::interp::ByteCodeExprGen< Emitter >::VisitBinaryOperator(), clang::interp::ByteCodeExprGen< Emitter >::visitBool(), clang::interp::ByteCodeExprGen< Emitter >::VisitCastExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitComplexBinOp(), clang::interp::ByteCodeExprGen< Emitter >::VisitComplexUnaryOperator(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXScalarValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitImaginaryLiteral(), clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitInitListExpr(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitUnaryOperator(), and clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryOperator().
|
inline |
Definition at line 7375 of file Type.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::AddAlignValueAttr(), AreTypesCompatible(), AuditedType(), clang::tooling::buildAccess(), clang::Sema::BuildQualifiedType(), clang::Sema::BuiltinRemovePointer(), CastsAwayConstness(), clang::Sema::CheckAdditionOperands(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticNull(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCompareOperands(), checkConditionalNullPointer(), CheckLValueConstantExpression(), checkMapConflicts(), clang::Sema::CheckMSVCRTEntryPoint(), CheckNullabilityTypeSpecifier(), CheckOriginalCallArgDeduction(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPtrComparisonWithNullChar(), clang::Sema::CheckSubtractionOperands(), computeConditionalNullability(), convertPointersToCompositeType(), clang::Sema::deepTypeCheckForSYCLDevice(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseBadFunctionCast(), DiagnoseCastQual(), DiagnoseNullConversion(), diagnosePointerIncompatibility(), diagnoseStringPlusChar(), clang::ento::SMTConv::doTypeConversion(), emitOutlinedFunctionPrologue(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), clang::ento::SMTConv::fromCast(), clang::ento::SMTConv::getBinExpr(), getFuchsiaHandleSymbols(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), clang::CXXMemberCallExpr::getRecordDecl(), getVariableCategoryFromDecl(), clang::ento::SMTConv::getZeroExpr(), handleOwnershipAttr(), handleRestrictAttr(), isCallback(), clang::ento::isDereferencableType(), isIndirectPointerType(), clang::ento::Loc::isLocType(), clang::Sema::isOpenMPCapturedByRef(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), clang::CodeGen::CodeGenTypes::isPointerZeroInitializable(), clang::ASTContext::isSentinelNullExpr(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), isValidPointerType(), threadSafetyCheckIsPointer(), TryReinterpretCast(), TypeIsInnerPointer(), clang::FunctionCallFilterCCC::ValidateCandidate(), and clang::ento::UndefOrNullArgVisitor::VisitNode().
bool Type::isArithmeticType | ( | ) | const |
Definition at line 2261 of file Type.cpp.
References isBitIntType().
Referenced by actOnOMPReductionKindClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::CheckAdditionOperands(), checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckSubtractionOperands(), CheckVecStepTraitOperandType(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::ento::SMTConv::doTypeConversion(), EvaluateUnaryTypeTrait(), IsStandardConversion(), IsVectorConversion(), IsVectorElementConversion(), tryGCCVectorConvertAndSplat(), and clang::Sema::UsualArithmeticConversions().
|
inline |
Definition at line 7437 of file Type.h.
Referenced by clang::Sema::ActOnConditionalOp(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareReductionType(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::Sema::AdjustParameterTypeForObjCAutoRefCount(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssign(), buildUserDefinedMapperRef(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVectorType(), clang::Sema::BuiltinDecay(), captureInBlock(), CheckArrow(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), clang::interp::CheckFieldsInitialized(), checkForArray(), clang::Sema::CheckFunctionReturnType(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckNonTypeTemplateParameterType(), CheckNullabilityTypeSpecifier(), clang::Sema::CheckParameter(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), CheckUnaryTypeTraitTypeCompleteness(), ClassifyTemporary(), clang::Sema::ConstantFoldAttrArgs(), clang::CXXBindTemporaryExpr::Create(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateGenericSelectionExpr(), clang::Sema::CreatePropertyDecl(), createReferenceTemporary(), DecodeTypeFromStr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceOpenCLAddressSpace(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::deduceVarTypeFromInitializer(), clang::Sema::deepTypeCheckForSYCLDevice(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentResult(), diagnoseTautologicalComparison(), clang::Sema::DiagnoseUnusedExprResult(), doRewriteToUTF8StringBoxedExpressionHelper(), emitOMPArraySectionBase(), emitPrivatesInit(), emitReadOnlyPlacementAttrWarning(), clang::CodeGen::CGOpenMPRuntime::emitSingleReductionCombiner(), Evaluate(), EvaluateArray(), EvaluateArrayNewConstructExpr(), EvaluateArrayNewInitList(), EvaluateArrayTypeTrait(), clang::interp::Context::evaluateAsInitializer(), EvaluateBinaryTypeTrait(), EvaluateInPlace(), EvaluateUnaryTypeTrait(), clang::Sema::FinalizeVarWithDestructor(), FindDesignatorMismatch(), findSubobject(), clang::ASTContext::getAdjustedParameterType(), getAsArrayToPointerDecayedDecl(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::GetBuiltinType(), getCoreType(), clang::ASTContext::getCountAttributedType(), clang::ASTContext::getDecayedType(), getDesignatedType(), clang::ASTContext::getExceptionObjectType(), GetFullTypeForDeclarator(), clang::ASTContext::getInnerObjCOwnership(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), getOpenCLKernelParameterType(), getUuidAttrOfType(), handleLifetimeCategoryAttr(), handleLValueToRValueConversion(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::ASTNodeImporter::ImportDeclParts(), clang::ASTNodeImporter::ImportFieldDeclDefinition(), clang::ento::NonLoc::isCompoundType(), clang::Expr::isConstantInitializer(), isDesignatorAtObjectEnd(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), IsStandardConversion(), clang::QualType::isTriviallyEqualityComparableType(), clang::Expr::isUnusedResultAWarning(), isZeroSized(), clang::Sema::MergeVarDeclTypes(), needsAmpersandOnTemplateArg(), clang::InitializationSequence::Perform(), pushTemporaryCleanup(), rebuildPotentialResultsAsNonOdrUsed(), SemaBuiltinAlignment(), setObjCGCLValueClass(), tryDiagnoseOverloadedCast(), TryOrBuildParenListInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXConstructExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitInitListExpr(), clang::ento::ExprEngine::VisitInitListExpr(), visitLocalsRetainedByInitializer(), and clang::ento::ExprEngine::VisitMemberExpr().
|
inline |
Definition at line 7512 of file Type.h.
Referenced by AnalyzeAssignment(), AnalyzeCompoundAssignment(), AnalyzeImplicitConversions(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildAtomicType(), clang::Sema::BuildQualifiedType(), CheckBoolLikeConversion(), CheckC23ConstexprVarType(), CheckImplicitConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), diagnoseRedundantReturnTypeQualifiers(), Evaluate(), EvaluateAtomic(), EvaluateInPlace(), GetFullTypeForDeclarator(), getOpenCLKernelParameterType(), clang::ento::isPrimitiveType(), clang::InitializationSequence::Perform(), and clang::interp::ByteCodeExprGen< Emitter >::VisitCastExpr().
|
inline |
Definition at line 7681 of file Type.h.
Referenced by clang::Sema::checkTypeSupport(), and IsFloatingPointConversion().
|
inline |
Definition at line 7595 of file Type.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnMSAsmStmt(), clang::Sema::AddModeAttr(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildAtomicType(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildVectorType(), clang::Sema::BuiltinChangeSignedness(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckTemplateArgument(), clang::Sema::checkTypeSupport(), clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), DetermineNoUndef(), DiagnoseBadShiftValues(), clang::CodeGen::ConstantEmitter::emitForMemory(), clang::ASTContext::getExtVectorType(), getIntegerWidthAndSignedness(), getScalarTypeKind(), clang::ASTContext::getVectorType(), isArithmeticType(), isIntegralOrUnscopedEnumerationType(), isIntegralType(), and isRealType().
bool Type::isBlockCompatibleObjCPointerType | ( | ASTContext & | ctx | ) | const |
Definition at line 4768 of file Type.cpp.
References clang::ASTContext::getNSCopyingName(), and clang::ASTContext::getNSObjectName().
Referenced by applyObjCTypeArgs(), clang::Sema::CheckAssignmentConstraints(), and clang::Sema::CheckCompareOperands().
|
inline |
Definition at line 7379 of file Type.h.
Referenced by clang::Sema::ActOnObjCForCollectionStmt(), applyObjCTypeArgs(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCBridgedCast(), CanThrow(), clang::ento::StoreManager::castRegion(), CastsAwayConstness(), checkArithmeticNull(), clang::Sema::CheckAssignmentConstraints(), checkBlockType(), checkCastFunctionType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalBlockPointerCompatibility(), checkConditionalNullPointer(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckMessageArgumentTypes(), clang::Sema::CheckObjCPropertyAttributes(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckVariableDeclarationType(), compareConversionFunctions(), computeCopyInfoForBlockCapture(), clang::Sema::ConvertArgumentsForCall(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeCompletionResult::createCodeCompletionStringForDecl(), clang::Sema::DefaultVariadicArgumentPromotion(), DiagnoseBadFunctionCast(), DiagnoseNullConversion(), diagnoseObjCARCConversion(), diagnoseTautologicalComparison(), DiagnoseUninitializedUse(), clang::ento::SMTConv::doTypeConversion(), FormatFunctionParameter(), clang::ento::SMTConv::fromCast(), clang::Sema::GatherArgumentsForCall(), getBlockFieldFlagsForObjCObjectPointer(), clang::ASTContext::getByrefLifetime(), GetFullTypeForDeclarator(), clang::Decl::getFunctionType(), GetGCAttrTypeForType(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), clang::ObjCPropertyDecl::getSetterKind(), clang::ento::CallEventManager::getSimpleCall(), clang::Sema::getVariadicCallType(), clang::ento::SMTConv::getZeroExpr(), handleAnalyzerNoReturnAttr(), handleOwnershipAttr(), handleRestrictAttr(), handleSentinelAttr(), handleSwiftAsyncAttr(), is32Or64BitBasicType(), isBlockPointer(), isCallback(), isFunctionLike(), clang::CXXConversionDecl::isLambdaToBlockPointerConversion(), clang::ento::Loc::isLocType(), isObjCARCBridgableType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), clang::CodeGen::CodeGenTypes::isPointerZeroInitializable(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), isValidPointerType(), isVariableCapturable(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::maybeExtendBlockObject(), clang::ASTContext::mergeTypes(), clang::Sema::PerformImplicitConversion(), PropertyMemoryAttribute(), rewriteToObjCProperty(), SemaBuiltinDumpStruct(), shouldEmitSeparateBlockRetain(), SuggestInitializationFixit(), TryReinterpretCast(), TryStaticCast(), and TypeIsInnerPointer().
|
inline |
Definition at line 7788 of file Type.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), AddObjCKeyValueCompletions(), AddOrdinaryNameResults(), AnalyzeBitFieldAssignment(), AnalyzeImplicitConversions(), clang::ento::SMTConstraintManager::assumeSym(), buildCoawaitCalls(), BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVectorType(), clang::Sema::BuiltinChangeSignedness(), ChangeIntegralSignedness(), checkArithmeticOrEnumeralThreeWayCompare(), CheckConditionalOperator(), CheckConvertedConstantConversions(), CheckCountExpr(), clang::Sema::CheckEnumConstant(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), checkIntToPointerCast(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckLoopHintExpr(), clang::Sema::CheckSingleAssignmentConstraints(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), clang::interp::Context::classify(), ConvertAPValueToString(), create_OSAtomicCompareAndSwap(), clang::Sema::CreateOverloadedBinOp(), DiagnoseBadFunctionCast(), clang::Sema::DiagnoseStaticAssertDetails(), ExprLooksBoolean(), clang::ento::SMTConv::fromCast(), getIntegerWidthAndSignedness(), clang::ASTContext::getIntWidth(), getOpenCLKernelParameterType(), getScalarZeroExpressionForType(), clang::ento::SMTConstraintManager::getSymVal(), clang::ento::SMTConv::getZeroExpr(), HandleIntToIntCast(), handleVecTypeHint(), hasBooleanRepresentation(), clang::InitializationSequence::InitializeFrom(), isBooleanType(), clang::Sema::IsIntegralPromotion(), isIntOrBool(), clang::Expr::isKnownToHaveBooleanValue(), IsStandardConversion(), clang::MatrixType::isValidElementType(), IsVectorElementConversion(), clang::ento::SMTConv::mkSort(), clang::Sema::PerformImplicitConversion(), clang::Sema::prepareVectorSplat(), printIntegral(), clang::APValue::printPretty(), clang::ento::ConditionBRVisitor::printValue(), rewriteToNumericBoxedExpression(), TryListInitialization(), TryReinterpretCast(), TryStaticCast(), clang::Sema::VerifyBitField(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXNoexceptExpr(), and clang::interp::ByteCodeExprGen< Emitter >::VisitTypeTraitExpr().
|
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 7457 of file Type.h.
Referenced by clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildVectorType(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::ASTContext::getExtVectorType(), clang::ASTContext::getVectorType(), handleIBOutletCollection(), clang::ento::isPrimitiveType(), and isTypeSubstitutable().
|
inline |
Determines if this type would be canonical if it had no further qualification.
Definition at line 2120 of file Type.h.
Referenced by areCompatMatrixTypes(), areCompatVectorTypes(), clang::TypePropertyCache< Private >::ensure(), clang::Sema::getCopyElisionCandidate(), clang::TemplateTypeParmType::getIdentifier(), clang::ASTContext::getMemberPointerType(), clang::LinkageComputer::getTypeLinkageAndVisibility(), clang::QualType::isCanonical(), IsPossiblyOpaquelyQualifiedTypeInternal(), and clang::FunctionProtoType::Profile().
bool Type::isCARCBridgableType | ( | ) | const |
Determine whether the given type T is a "bridgeable" C type.
Definition at line 4872 of file Type.cpp.
References isRecordType(), isVoidType(), and Pointer.
Referenced by clang::Sema::BuildObjCBridgedCast(), and handleObjCNSObject().
bool Type::isChar16Type | ( | ) | const |
Definition at line 2091 of file Type.cpp.
Referenced by BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuiltinChangeSignedness(), getScalarZeroExpressionForType(), printIntegral(), and TryPrintAsStringLiteral().
bool Type::isChar32Type | ( | ) | const |
Definition at line 2097 of file Type.cpp.
Referenced by BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuiltinChangeSignedness(), getScalarZeroExpressionForType(), printIntegral(), and TryPrintAsStringLiteral().
bool Type::isChar8Type | ( | ) | const |
Definition at line 2085 of file Type.cpp.
Referenced by BuildExpressionFromIntegralTemplateArgumentValue(), isOneByteCharacterType(), IsStringInit(), printIntegral(), and TryPrintAsStringLiteral().
bool Type::isCharType | ( | ) | const |
Definition at line 2069 of file Type.cpp.
Referenced by CheckImplicitConversion(), clang::Sema::CheckLoopHintExpr(), checkParamIsIntegerType(), checkPointerTypesForAssignment(), DiagnoseDivisionSizeofPointerOrArray(), clang::analyze_printf::PrintfSpecifier::fixType(), getScalarZeroExpressionForType(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::IsIntegralPromotion(), clang::BinaryOperator::isNullPointerArithmeticExtension(), isOneByteCharacterType(), isSameWidthConstantConversion(), IsStringInit(), and printIntegral().
bool Type::isClassType | ( | ) | const |
Definition at line 622 of file Type.cpp.
Referenced by EvaluateUnaryTypeTrait(), MaybePrintTagKeywordIfSupressingScopes(), and maybeTailCall().
|
inline |
Definition at line 7572 of file Type.h.
Referenced by clang::Sema::CheckCompareOperands(), diagnoseOpenCLTypes(), and SemaOpenCLBuiltinEnqueueKernel().
bool Type::isComplexIntegerType | ( | ) | const |
Definition at line 672 of file Type.cpp.
References getAsComplexIntegerType().
Referenced by clang::ento::SMTConstraintManager::canReasonAbout(), clang::Sema::CreateBuiltinUnaryOp(), DiagnoseBadFunctionCast(), handleComplexIntegerToFloatConversion(), handleIntToFloatConversion(), and clang::Sema::UsualArithmeticConversions().
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 666 of file Type.cpp.
Referenced by clang::Sema::AddModeAttr(), clang::ento::SMTConstraintManager::canReasonAbout(), clang::Sema::CreateBuiltinUnaryOp(), DiagnoseBadFunctionCast(), clang::StandardConversionSequence::getNarrowingKind(), handleComplexIntegerToFloatConversion(), clang::Sema::UsualArithmeticConversions(), and clang::Sema::UsualUnaryConversions().
|
inline |
Tests whether the type is categorized as a compound type.
Definition at line 7345 of file Type.h.
References isRecordType().
Referenced by EvaluateUnaryTypeTrait().
|
inline |
Definition at line 7441 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::ast_matchers::AST_MATCHER(), clang::Sema::deduceVarTypeFromInitializer(), EquivalentArrayTypes(), hasCompatibleArrayTypes(), isQualificationConversionStep(), and clang::Value::Value().
|
inline |
Definition at line 7491 of file Type.h.
Referenced by clang::Sema::CheckAdditionOperands(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckSubtractionOperands(), clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), and EmitLoadOfMatrixLValue().
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 2332 of file Type.cpp.
References isDependentType(), and isIncompleteType().
Referenced by clang::Sema::BuildArrayType(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), getAlignmentAndOffsetFromBinAddOrSub(), clang::ASTContext::getConstantArrayType(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), HandleSizeof(), clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Return true if this can be converted to (or from) a fixed point type.
Definition at line 7725 of file Type.h.
Referenced by IsStandardConversion().
bool Type::isCUDADeviceBuiltinSurfaceType | ( | ) | const |
Check if the type is the CUDA device builtin surface type.
Check if the specified type is the CUDA device builtin surface type.
Definition at line 4882 of file Type.cpp.
Referenced by clang::CodeGen::CodeGenTypes::ConvertType(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::CodeGen::CodeGenModule::getTBAAAccessInfo(), and clang::Sema::IdentifyCUDATarget().
bool Type::isCUDADeviceBuiltinTextureType | ( | ) | const |
Check if the type is the CUDA device builtin texture type.
Check if the specified type is the CUDA device builtin texture type.
Definition at line 4889 of file Type.cpp.
Referenced by clang::CodeGen::CodeGenTypes::ConvertType(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::CodeGen::CodeGenModule::getTBAAAccessInfo(), and clang::Sema::IdentifyCUDATarget().
|
inline |
Definition at line 7495 of file Type.h.
Referenced by clang::Sema::CheckFieldDecl().
|
inline |
Definition at line 7453 of file Type.h.
Referenced by EquivalentArrayTypes().
|
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 2442 of file Type.h.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCaseExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnOpenMPCopyinClause(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnSEHExceptBlock(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignedAttr(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddAllocAlignAttr(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddModeAttr(), AddRecordMembersCompletionResults(), applyObjCTypeArgs(), clang::Sema::AttachBaseSpecifiers(), clang::Sema::BuildArrayType(), clang::Sema::BuildArrayTypeTrait(), clang::Sema::BuildAsTypeExpr(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinBitCastExpr(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCaptureField(), clang::Sema::BuildClassMessage(), buildCoawaitCalls(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::buildCoroutinePromise(), clang::Sema::BuildCoyieldExpr(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNamedCast(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildCXXUuidof(), buildDeclareReductionRef(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExtVectorType(), buildLambdaScopeReturnType(), clang::Sema::BuildMatrixType(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBridgedCast(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildResolvedCoawaitExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildUnaryTransformType(), buildUserDefinedMapperRef(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVariableInstantiation(), clang::Sema::BuildVectorType(), canCaptureVariableByCopy(), clang::Sema::canFullyTypeCheckRedeclaration(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::Sema::canThrow(), captureInLambda(), checkAcquireOrderAttrCommon(), clang::Sema::CheckAlignasUnderalignment(), clang::Sema::CheckAllocatedType(), checkArithmeticIncompletePointerType(), clang::Sema::checkArrayElementAlignment(), clang::Sema::CheckBaseSpecifier(), checkBuiltinTemplateIdType(), clang::Sema::CheckCastAlign(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompleteDecompositionDeclaration(), CheckConstexprFunctionBody(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckDeductionGuideDeclarator(), clang::Sema::CheckEnumConstant(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckFieldDecl(), CheckLiteralType(), clang::Sema::CheckNonDependentConversions(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckOMPThreadPrivateDecl(), checkOpenMPIterationSpace(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverload(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckQualifiedMemberReference(), clang::Sema::CheckTemplateArgument(), clang::Sema::checkTypeSupport(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::computeDeclContext(), clang::computeDependence(), clang::CoroutineSuspendExpr::CoroutineSuspendExpr(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateGenericSelectionExpr(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::CXXInheritedCtorInitExpr::CXXInheritedCtorInitExpr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceClosureReturnType(), DeduceFromInitializerList(), deduceOpenCLPointeeAddrSpace(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultLvalueConversion(), clang::DependentCoawaitExpr::DependentCoawaitExpr(), DiagnoseDivisionSizeofPointerOrArray(), clang::Sema::DiagnoseInvalidExplicitObjectParameterInLambda(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), clang::Sema::DiagnoseUnusedNestedTypedefs(), clang::Sema::DiscardMisalignedMemberAddress(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), EvaluateUnaryTypeTrait(), EvaluateVarDecl(), clang::Sema::FillInlineAsmIdentifierInfo(), findTemplateParameter(), FixDependencyOfIdExpressionsInLambdaWithDependentObjectParameter(), FormatFunctionParameter(), clang::Expr::getBestDynamicClassType(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getCanonicalTemplateSpecializationType(), clang::ASTContext::getConstantArrayType(), clang::Sema::getCopyElisionCandidate(), clang::ento::CallEvent::getDeclaredResultType(), clang::CXXDeleteExpr::getDestroyedType(), clang::Sema::getDestructorName(), clang::Sema::getDestructorTypeForDecltype(), clang::ASTContext::getExtVectorType(), getFieldsFromClassHierarchy(), GetFullTypeForDeclarator(), getOpenCLKernelParameterType(), clang::ASTContext::getTypeSizeInCharsIfKnown(), clang::ASTContext::getUnaryTransformType(), HandleHLSLParamModifierAttr(), handleNonNullAttr(), handleObjCPreciseLifetimeAttr(), handlePackedAttr(), HandleSizeof(), hasDeducibleTemplateParameters(), clang::VarDecl::hasDependentAlignment(), clang::FunctionProtoType::hasDependentExceptionSpec(), clang::CoroutineBodyStmt::hasDependentPromiseType(), hasRepeatedBaseClass(), clang::InitializationSequence::InitializeFrom(), clang::Sema::isAcceptableNestedNameSpecifier(), IsAcceptableNonMemberOperatorCandidate(), isConstantSizeType(), clang::QualType::isCXX11PODType(), clang::DeclarationName::isDependentName(), isDependentOrGNUAutoType(), IsDerivedFromInclusive(), clang::Sema::isIncompatibleTypedef(), isIncompleteType(), isLiteralType(), isObjCReceiverType(), isOverflowingIntegerType(), clang::ASTContext::isPromotableIntegerType(), isRelevantAttr(), isStandardLayoutType(), isTriviallyCopyableTypeImpl(), clang::QualType::isTriviallyEqualityComparableType(), clang::QualType::isTrivialType(), clang::MatrixType::isValidElementType(), isValidSubjectOfCFAttribute(), isValidSubjectOfNSAttribute(), isValidSubjectOfNSReturnsRetainedAttribute(), isValidSubjectOfOSAttribute(), isValidSwiftContextType(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), clang::Sema::isValidVarArgType(), LookupDirect(), clang::Sema::LookupInlineAsmIdentifier(), clang::Sema::LookupInlineAsmVarDeclField(), LookupMemberExpr(), clang::Sema::LookupTemplateName(), MarkUsedTemplateParameters(), MatchTemplateParameterKind(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), clang::Sema::PerformObjectMemberConversion(), clang::AutoType::Profile(), clang::TreeTransform< Derived >::RebuildQualifiedType(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::Sema::RequireLiteralType(), clang::Sema::RequireStructuralType(), clang::Sema::SemaConvertVectorExpr(), clang::CXXRecordDecl::setBases(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryToFixInvalidVariablyModifiedType(), clang::TypoExpr::TypoExpr(), VariableCanNeverBeAConstantExpression(), clang::Sema::VerifyBitField(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr(), clang::TextNodeDumper::VisitVarDecl(), and warnAboutRedundantParens().
bool Type::isElaboratedTypeSpecifier | ( | ) | const |
Determine wither this type is a C++ elaborated-type-specifier.
Definition at line 3238 of file Type.cpp.
References clang::TypeWithKeyword::KeywordIsTagTypeKind().
Referenced by clang::Sema::ActOnFriendTypeDecl().
|
inline |
Definition at line 7465 of file Type.h.
Referenced by AnalyzeBitFieldAssignment(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuiltinChangeSignedness(), clang::Sema::BuiltinEnumUnderlyingType(), ChangeIntegralSignedness(), checkArithmeticOrEnumeralCompare(), checkArithmeticOrEnumeralThreeWayCompare(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), CheckIncrementDecrementOperand(), checkIntToPointerCast(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckSizelessVectorConditionalTypes(), clang::Sema::CheckSwitchCondition(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckVectorConditionalTypes(), DiagnoseBadFunctionCast(), EvaluateUnaryTypeTrait(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getCorrespondingUnsignedType(), GetEnumUnderlyingType(), getFixedEnumPromtion(), getNextLargerIntegralType(), getScalarZeroExpressionForType(), HasEnumType(), is32Or64BitBasicType(), IsAcceptableNonMemberOperatorCandidate(), clang::Sema::IsIntegralPromotion(), isNullPointerConstantForConversion(), clang::ento::isPrimitiveType(), clang::ASTContext::isPromotableBitField(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), isRepresentableIntegerValue(), clang::QualType::isTriviallyEqualityComparableType(), clang::MatrixType::isValidElementType(), isValidSizelessVectorForConditionalCondition(), isValidVectorForConditionalCondition(), clang::Sema::PerformOpenMPImplicitIntegerConversion(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), tryGCCVectorConvertAndSplat(), TryStaticCast(), and clang::Sema::VerifyIntegerConstantExpression().
|
inline |
Definition at line 7568 of file Type.h.
Referenced by clang::Sema::CheckFieldDecl(), diagnoseOpenCLTypes(), getOpenCLKernelParameterType(), IsStandardConversion(), clang::InitializationSequence::Perform(), and TryOCLZeroOpaqueTypeInitialization().
|
inline |
Definition at line 7481 of file Type.h.
Referenced by clang::Sema::CheckVectorOperands(), checkVectorShift(), clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), clang::Sema::GetSignedVectorType(), and LookupMemberExpr().
|
inline |
Definition at line 7477 of file Type.h.
Referenced by clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckExtVectorCast(), clang::Sema::CheckVectorConditionalTypes(), clang::Sema::CheckVectorOperands(), convertVector(), clang::Sema::CreateBuiltinUnaryOp(), EvaluateUnaryTypeTrait(), handleVecTypeHint(), clang::InitializationSequence::InitializeFrom(), isValidVectorForConditionalCondition(), IsVectorConversion(), LookupMemberExpr(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), clang::Sema::prepareVectorSplat(), and TryReinterpretCast().
|
inline |
Return true if this is a fixed point or integer type.
Definition at line 7721 of file Type.h.
Referenced by clang::Sema::CheckShiftOperands(), and handleFixedPointConversion().
|
inline |
Return true if this is a fixed point type according to ISO/IEC JTC1 SC22 WG14 N1169.
Definition at line 7713 of file Type.h.
Referenced by CheckImplicitConversion(), clang::Sema::CreateBuiltinBinOp(), DiagnoseBadFunctionCast(), DiagnoseBadShiftValues(), Evaluate(), EvaluateAsFixedPoint(), EvaluateComparisonBinaryOperator(), EvaluateFixedPoint(), EvaluateFixedPointOrInteger(), clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getCorrespondingUnsaturatedType(), clang::ASTContext::getCorrespondingUnsignedType(), clang::ASTContext::getFixedPointIBits(), clang::ASTContext::getFixedPointMax(), clang::ASTContext::getFixedPointMin(), clang::ASTContext::getFixedPointScale(), clang::ASTContext::getFixedPointSemantics(), handleFixedPointConversion(), handleFloatConversion(), IsStandardConversion(), clang::Sema::PerformImplicitConversion(), and clang::Sema::UsualArithmeticConversions().
|
inline |
Definition at line 7685 of file Type.h.
Referenced by clang::Sema::checkTypeSupport().
|
inline |
Definition at line 7669 of file Type.h.
Referenced by clang::Sema::checkTypeSupport(), and IsFloatingPointConversion().
|
inline |
Definition at line 7673 of file Type.h.
Referenced by CheckFloatOrHalfRepresentations().
bool Type::isFloatingType | ( | ) | const |
Definition at line 2229 of file Type.cpp.
Referenced by actOnOMPReductionKindClause(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddModeAttr(), clang::Sema::BuildAtomicExpr(), checkCondition(), checkEnumArithmeticConversions(), CheckImplicitConversion(), clang::Sema::CheckLogicalOperands(), clang::interp::Context::classify(), PNaClABIInfo::classifyArgumentType(), EmitAtomicOp(), EvaluateBuiltinConstantP(), EvaluateUnaryTypeTrait(), getAArch64PBV(), clang::UserDefinedLiteral::getLiteralOperatorKind(), handleVectorVectorBinOp(), handleVecTypeHint(), hasFloatingRepresentation(), clang::Sema::PerformImplicitConversion(), clang::Sema::prepareVectorSplat(), rewriteToNumberLiteral(), clang::interp::Pointer::toRValue(), TryListInitialization(), unsupportedTypeConversion(), clang::Sema::UsualUnaryConversions(), clang::interp::ByteCodeExprGen< Emitter >::VisitBinaryOperator(), clang::interp::ByteCodeExprGen< Emitter >::VisitCompoundAssignOperator(), clang::interp::ByteCodeExprGen< Emitter >::VisitFloatCompoundAssignOperator(), and clang::ento::ExprEngine::VisitUnaryOperator().
|
inline |
Whether this type comes from an AST file.
Definition at line 2097 of file Type.h.
Referenced by clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
inline |
Definition at line 2283 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), checkCastFunctionType(), clang::Sema::checkOpenMPDeclareVariantFunction(), and setPrototype().
|
inline |
Definition at line 7405 of file Type.h.
Referenced by clang::Sema::ActOnVariableDeclarator(), clang::ast_matchers::AST_POLYMORPHIC_MATCHER_P2(), CanThrow(), checkCastFunctionType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckParameter(), checkPointerTypesForAssignment(), clang::interp::Context::classify(), DiagnoseCallingConvCast(), diagnoseOpenCLTypes(), clang::Decl::getFunctionType(), getPointeeTypeText(), handleAnalyzerNoReturnAttr(), handleCallbackAttr(), handleSentinelAttr(), isCallback(), isFunctionLike(), clang::Decl::isFunctionPointerType(), clang::QualType::isWebAssemblyFuncrefType(), maybeDiagnoseAssignmentToFunction(), ResolveOverloadForDeduction(), rewriteToObjCProperty(), SemaBuiltinAlignment(), SemaBuiltinDumpStruct(), SemaBuiltinLaunder(), TryConstCast(), TryReinterpretCast(), and TypeIsInnerPointer().
|
inline |
Definition at line 2284 of file Type.h.
Referenced by clang::Sema::checkOpenMPDeclareVariantFunction(), clang::Sema::CreateBuiltin(), CreateNewFunctionDecl(), FindPossiblePrototype(), GetFullTypeForDeclarator(), clang::MemberPointerType::isMemberDataPointer(), clang::MemberPointerType::isMemberFunctionPointer(), clang::Sema::MergeVarDeclExceptionSpecs(), clang::InitializationSequence::Perform(), and setPrototype().
|
inline |
Definition at line 7412 of file Type.h.
Referenced by checkCastFunctionType(), clang::interp::Context::classify(), diagnoseOpenCLTypes(), and clang::Decl::getFunctionType().
|
inline |
Definition at line 7367 of file Type.h.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPDeclareReductionType(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBlockPointerType(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::BuildReferenceType(), clang::Sema::BuiltinChangeCVRQualifiers(), clang::Sema::BuiltinDecay(), clang::Sema::CallExprUnaryConversions(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), checkArithmeticBinOpPointerOperands(), checkArithmeticNull(), checkArithmeticOpPointerOperand(), CheckArrow(), checkCastFunctionType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckConversionDeclarator(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::checkOpenMPDeclareVariantFunction(), CheckOriginalCallArgDeduction(), clang::Sema::CheckPointerConversion(), checkPointerTypesForAssignment(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::interp::Context::classify(), ClassifyBinaryOp(), clang::Sema::CompareReferenceRelationship(), clang::Sema::ConstantFoldAttrArgs(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreatePropertyDecl(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), determineEndOffset(), clang::Sema::DiagnoseAlwaysNonNullPointer(), emitPointerArithmetic(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateBooleanTypeTrait(), EvaluateLValue(), EvaluateUnaryTypeTrait(), clang::Sema::FillInlineAsmIdentifierInfo(), FindConversionForRefInit(), clang::FunctionDecl::FunctionDecl(), clang::ASTContext::getAdjustedParameterType(), clang::ASTContext::getBlockPointerType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getDeclAlign(), clang::ASTContext::getExceptionObjectType(), GetFullTypeForDeclarator(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), clang::CodeGen::CodeGenTypes::getTargetAddressSpace(), HandleAddressSpaceTypeAttribute(), clang::Sema::HandleDeclarator(), HandleOperatorNewCall(), HandleSizeof(), clang::Sema::IgnoredValueConversions(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::Declarator::isDeclarationOfFunction(), IsModifiable(), clang::Sema::IsPointerConversion(), clang::ento::isPrimitiveType(), IsStandardConversion(), clang::Sema::LookupInlineAsmIdentifier(), LookupMemberExpr(), maybeDiagnoseAssignmentToFunction(), maybeSynthesizeBlockSignature(), clang::ASTContext::mergeObjCGCQualifiers(), clang::TreeTransform< Derived >::RebuildQualifiedType(), clang::Sema::resolveAndFixAddressOfSingleOverloadCandidate(), ResolveOverloadForDeduction(), SemaBuiltinDumpStruct(), SemaBuiltinLaunder(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticCast(), and clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Tests whether the type is categorized as a fundamental type.
Definition at line 7334 of file Type.h.
Referenced by EvaluateUnaryTypeTrait().
|
inline |
Definition at line 7664 of file Type.h.
Referenced by clang::Sema::BuildFunctionType(), clang::Sema::CheckAssignmentOperands(), CheckFloatOrHalfRepresentations(), clang::Sema::CheckFunctionReturnType(), checkIsValidOpenCLKernelParameter(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::DefaultLvalueConversion(), diagnoseOpenCLTypes(), GetFullTypeForDeclarator(), getOpenCLKernelParameterType(), handleFloatConversion(), IsFloatingPointConversion(), clang::Sema::PerformImplicitConversion(), and clang::Sema::UsualUnaryConversions().
|
inline |
Definition at line 7689 of file Type.h.
Referenced by clang::Sema::checkTypeSupport().
|
inline |
Definition at line 7584 of file Type.h.
Referenced by clang::Sema::BuildArrayType(), clang::Sema::CheckFieldDecl(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), diagnoseOpenCLTypes(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), GetFullTypeForDeclarator(), getOpenCLKernelParameterType(), and HandleOpenCLAccessAttr().
|
inline |
Definition at line 7445 of file Type.h.
Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnUninitializedDecl(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildArrayType(), clang::Sema::BuildCountAttributedArrayType(), clang::interp::CheckFieldsInitialized(), CheckUnaryTypeTraitTypeCompleteness(), clang::computeDependence(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseRetainableFlexibleArrayMember(), DiagnoseVariableSizedIvars(), EvaluateBinaryTypeTrait(), EvaluateBooleanTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::getCompletedType(), clang::APValue::LValueBase::getType(), hasCompatibleArrayTypes(), isDesignatorAtObjectEnd(), isIncompleteOrZeroLengthArrayType(), isQualificationConversionStep(), clang::ASTContext::isSameEntity(), IsVariableSizedType(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), setUsedBits(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), TryOrBuildParenListInitialization(), and clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr().
|
inline |
Return true if this is an incomplete or object type, in other words, not a function type.
Definition at line 2190 of file Type.h.
Referenced by clang::Sema::BuildQualifiedType(), checkConditionalObjectPointersCompatibility(), checkPointerTypesForAssignment(), clang::Sema::CheckTemplateArgument(), clang::Sema::IsPointerConversion(), and TryStaticCast().
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.
Definition at line 2342 of file Type.cpp.
References clang::Enum, getAsCXXRecordDecl(), clang::Decl::getASTContext(), clang::TargetInfo::getCXXABI(), clang::CXXRecordDecl::getMostRecentNonInjectedDecl(), clang::ASTContext::getTargetInfo(), clang::Decl::hasAttr(), clang::Interface, clang::EnumDecl::isComplete(), clang::TagDecl::isCompleteDefinition(), isDependentType(), clang::TargetCXXABI::isMicrosoft(), and isVoidType().
Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnOMPArrayShapingExpr(), clang::Sema::BuildArrayType(), clang::Sema::BuildCaptureField(), clang::Sema::BuiltinEnumUnderlyingType(), calculateOffset(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAlignasUnderalignment(), clang::Sema::checkArrayElementAlignment(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::checkDeclIsAllowedInOpenMPTarget(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), checkRecordTypeForCapability(), clang::Sema::CheckSubscriptingKind(), CheckVecStepTraitOperandType(), computeOffset(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), determineEndOffset(), clang::InitializationSequence::Diagnose(), DiagnoseBadConversion(), DiagnoseForRangeVariableCopies(), clang::Sema::DiscardMisalignedMemberAddress(), EvaluateBooleanTypeTrait(), EvaluateComparisonBinaryOperator(), EvaluateUnaryTypeTrait(), clang::CodeGen::CodeGenTBAA::getAccessInfo(), clang::ento::ElementRegion::getAsArrayOffset(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getDeclAlign(), getFieldsFromClassHierarchy(), clang::CodeGen::CodeGenModule::getNaturalTypeAlignment(), clang::ento::MemRegionManager::getStaticSize(), clang::ASTContext::getTypeAlignIfKnown(), clang::ASTContext::getTypeSizeInCharsIfKnown(), HandleOperatorNewCall(), handlePackedAttr(), handleTransparentUnionAttr(), clang::interp::interp__builtin_atomic_lock_free(), isConstantSizeType(), clang::QualType::isCXX11PODType(), isEnableIf(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), isLiteralType(), isOnePastTheEndOfCompleteObject(), isStandardLayoutType(), isTriviallyCopyableTypeImpl(), clang::QualType::isTriviallyEqualityComparableType(), clang::QualType::isTriviallyRelocatableType(), clang::Sema::isValidVarArgType(), isZeroSized(), clang::Sema::LookupTemplateName(), matchTypes(), clang::CodeGen::CGCXXABI::mayNeedDestruction(), TryToFixInvalidVariablyModifiedType(), clang::ASTNodeImporter::VisitTypedefNameDecl(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
|
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 2450 of file Type.h.
Referenced by clang::Sema::ActOnOpenMPCopyinClause(), buildDeclareReductionRef(), clang::Sema::BuildResolvedCallExpr(), buildUserDefinedMapperRef(), clang::Sema::CheckOMPThreadPrivateDecl(), clang::Sema::CheckTemplateArgument(), computeCachedProperties(), clang::computeDependence(), clang::LinkageComputer::computeTypeLinkageInfo(), getCommonNonSugarTypeNode(), clang::PackIndexingType::getSelectedIndex(), clang::Sema::HandleFunctionTypeMismatch(), handleGlobalAttr(), clang::FunctionProtoType::hasInstantiationDependentExceptionSpec(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::DeclarationNameInfo::isInstantiationDependent(), NeedsInstantiationAsFunctionType(), RebuildDeclaratorInCurrentInstantiation(), clang::Sema::RebuildTypeInCurrentInstantiation(), SubstDefaultTemplateArgument(), clang::Sema::SubstType(), clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
inline |
isIntegerType() does not include complex integers (a GCC extension).
isComplexIntegerType() can be used to test for complex integers.
Definition at line 7700 of file Type.h.
References clang::IsEnumDeclComplete(), and clang::IsEnumDeclScoped().
Referenced by clang::Sema::ActOnGCCAsmStmt(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPCanonicalLoop(), clang::Sema::ActOnSEHExceptBlock(), AddObjCKeyValueCompletions(), clang::ASTContext::areLaxCompatibleRVVTypes(), clang::ASTContext::areLaxCompatibleSveTypes(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::BuildVectorType(), clang::Sema::BuiltinChangeSignedness(), castValueToType(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), CheckCountExpr(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckLoopHintExpr(), checkOpenCLConditionVector(), checkOpenCLEnqueueIntType(), checkOpenMPIterationSpace(), checkParamIsIntegerType(), checkPointerIntegerMismatch(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckSubtractionOperands(), clang::Sema::checkTypeSupport(), clang::Sema::CheckVectorOperands(), CheckWasmBuiltinArgIsInteger(), convertVector(), create_dispatch_once(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinMatrixSubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::DefaultArgumentPromotion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentEnum(), DiagnoseBadFunctionCast(), diagnoseStringPlusChar(), clang::Sema::DiscardMisalignedMemberAddress(), EvaluateFixedPointOrInteger(), expandStringLiteral(), extractStringLiteralCharacter(), getAArch64PBV(), clang::ASTContext::getFixedPointSemantics(), getIntegerWidthAndSignedness(), clang::UserDefinedLiteral::getLiteralOperatorKind(), getUsualDeleteParams(), handleComplexIntegerToFloatConversion(), handleIntToFloatConversion(), handleOwnershipAttr(), handleVectorVectorBinOp(), hasIntegerRepresentation(), isAcceptableMethodMismatch(), clang::Sema::IsIntegralPromotion(), isIntOrBool(), isKnownToHaveUnsignedValue(), clang::BinaryOperator::isNullPointerArithmeticExtension(), isNullPointerConstantForConversion(), clang::InitListExpr::isStringLiteralInit(), mergeEnumWithInteger(), OpenCLArithmeticConversions(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), PromotionIsPotentiallyEligibleForImplicitIntegerConversionCheck(), SemaBuiltinAnnotation(), SemaBuiltinOverflow(), SemaBuiltinRWPipe(), SemaOpenCLBuiltinEnqueueKernel(), clang::interp::Pointer::toRValue(), tryVectorConvertAndSplat(), clang::interp::ByteCodeExprGen< Emitter >::VisitGNUNullExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitPointerArithBinOp(), and clang::interp::ByteCodeExprGen< Emitter >::VisitSourceLocExpr().
|
inline |
Determine whether this type is an integral or enumeration type.
Definition at line 7775 of file Type.h.
References clang::IsEnumDeclComplete().
Referenced by clang::Sema::ActOnStartOfSwitchStmt(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddModeAttr(), clang::ento::RangedConstraintManager::assumeSymUnsupported(), BuildConvertedConstantExpression(), BuildExpressionFromIntegralTemplateArgumentValue(), clang::ento::SymbolManager::canSymbolicate(), clang::ento::RangeSet::Factory::castTo(), clang::Sema::CheckCaseExpression(), clang::Sema::CheckConvertedConstantExpression(), CheckICE(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSwitchCondition(), clang::Sema::CheckTemplateArgument(), conjureOffsetSymbolOnLocation(), DecodeTypeFromStr(), diagnoseNonConstVariable(), clang::ento::SMTConv::doTypeConversion(), EmitCompare(), emitReplacement(), Evaluate(), EvaluateAsInt(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateIntegerOrLValue(), clang::Sema::FinalizeDeclaration(), findCompleteObject(), clang::ento::SMTConv::fromCast(), getAbsoluteValueKind(), clang::ento::BasicValueFactory::getAPSIntType(), getBuiltinAlignArguments(), clang::getComparisonCategoryForBuiltinCmp(), clang::CodeGen::ABIArgInfo::getExtend(), getPreferredTypeOfBinaryRHS(), clang::CodeGen::ABIArgInfo::getSignExtend(), clang::ConstantExpr::getStorageKind(), clang::ento::ProgramState::getSVal(), clang::ento::ProgramState::getSValAsScalarOrLoc(), clang::ento::SMTConv::getZeroExpr(), clang::CodeGen::ABIArgInfo::getZeroExtend(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::ObjCSubscriptRefExpr::isArraySubscriptRefExpr(), clang::Expr::isKnownToHaveBooleanValue(), clang::Sema::isLaxVectorConversion(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), clang::Sema::ICEConvertDiagnoser::match(), clang::Sema::prepareVectorSplat(), clang::ento::ConditionBRVisitor::printValue(), RecoverCastedSymbol(), clang::TemplateArgument::TemplateArgument(), TryReinterpretCast(), TryStaticCast(), and clang::Sema::VerifyBitField().
bool Type::isIntegralOrUnscopedEnumerationType | ( | ) | const |
Determine whether this type is an integral or unscoped enumeration type.
Definition at line 2051 of file Type.cpp.
References isBitIntType(), and isUnscopedEnumerationType().
Referenced by adjustBlockReturnsToEnum(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), checkArraySize(), clang::Sema::CheckBitwiseOperands(), CheckConvertedConstantConversions(), checkPointerAuthValue(), clang::Sema::CreateOverloadedBinOp(), diagnoseStringPlusInt(), EvaluateCPlusPlus11IntegralConstantExpr(), getDependentArraySubscriptType(), clang::StandardConversionSequence::getNarrowingKind(), IsStandardConversion(), IsVectorElementConversion(), clang::Sema::ICEConvertDiagnoser::match(), TryListInitialization(), clang::Sema::UsualUnaryConversions(), and clang::Sema::VerifyIntegerConstantExpression().
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.
Ctx | The context in which this type occurs. |
Definition at line 2038 of file Type.cpp.
References clang::ASTContext::getLangOpts(), and isBitIntType().
Referenced by clang::Sema::ActOnOMPIteratorExpr(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddAllocAlignAttr(), AnalyzeComparison(), argTypeIsABIEquivalent(), checkBuiltinTemplateIdType(), CheckImplicitConversion(), checkIntToPointerCast(), clang::Sema::CheckObjCConversion(), checkSwiftAsyncErrorBlock(), clang::Sema::CheckVectorCast(), create_OSAtomicCompareAndSwap(), DiagnoseBinOpPrecedence(), EvaluateUnaryTypeTrait(), clang::StandardConversionSequence::getNarrowingKind(), getNextLargerIntegralType(), handleSwiftError(), handleVecTypeHint(), clang::Expr::IgnoreParenNoopCasts(), clang::Sema::IsIntegralPromotion(), isRepresentableIntegerValue(), IsStandardConversion(), isValidSizelessVectorForConditionalCondition(), isValidVectorForConditionalCondition(), IsVectorElementConversion(), clang::Sema::PerformImplicitConversion(), tryGCCVectorConvertAndSplat(), TryReinterpretCast(), TryStaticCast(), and tryVectorConvertAndSplat().
bool Type::isInterfaceType | ( | ) | const |
Definition at line 640 of file Type.cpp.
Referenced by EvaluateUnaryTypeTrait().
bool Type::isLinkageValid | ( | ) | const |
True if the computed linkage is valid.
Used for consistency checking. Should always return true.
Definition at line 4573 of file Type.cpp.
References clang::LinkageComputer::computeTypeLinkageInfo(), getCanonicalTypeInternal(), clang::LinkageInfo::getLinkage(), and TypeBits.
Referenced by clang::TagDecl::setTypedefNameForAnonDecl().
bool Type::isLiteralType | ( | const ASTContext & | Ctx | ) | const |
Return true if this is a literal type (C++11 [basic.types]p10)
Definition at line 2872 of file Type.cpp.
References getAs(), getBaseElementTypeUnsafe(), getCanonicalTypeInternal(), clang::ASTContext::getLangOpts(), isAnyComplexType(), isDependentType(), isIncompleteType(), isReferenceType(), isScalarType(), isVariableArrayType(), isVectorType(), and isVoidType().
Referenced by clang::Sema::AddInitializerToDecl(), CheckLiteralType(), EvaluateUnaryTypeTrait(), findCompleteObject(), clang::CXXRecordDecl::isLiteral(), clang::MaterializeTemporaryExpr::isUsableInConstantExpressions(), clang::Sema::RequireLiteralType(), and clang::CXXRecordDecl::setBases().
|
inline |
Definition at line 7387 of file Type.h.
Referenced by alignReferenceTypes(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), checkTupleLikeDecomposition(), ClassifyUnnamed(), create_call_once_funcptr_call(), createPrivatesRecordDecl(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefineImplicitCopyAssignment(), DiagnoseCastQual(), emitOutlinedFunctionPrologue(), emitTaskPrivateMappingFunction(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), getCanonicalParamType(), clang::ento::ExprEngine::handleLValueBitCast(), implicitObjectParamIsLifetimeBound(), clang::CXXConstructorDecl::isCopyConstructor(), IsOverloadOrOverrideImpl(), isRelevantAttr(), isStructuralType(), clang::InitializationSequence::Perform(), TryListConversion(), TryReferenceInitializationCore(), and TryRefInitWithConversionFunction().
|
inline |
Definition at line 7487 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::areMatrixTypesOfTheSameDimension(), clang::Sema::CheckMatrixCast(), clang::Sema::PerformImplicitConversion(), and TryStaticCast().
|
inline |
Definition at line 7430 of file Type.h.
Referenced by clang::CodeGen::CodeGenModule::EmitNullConstant(), EvaluateBuiltinClassifyType(), and EvaluateUnaryTypeTrait().
|
inline |
Definition at line 7423 of file Type.h.
Referenced by clang::ast_matchers::AST_POLYMORPHIC_MATCHER_P2(), checkCastFunctionType(), diagnoseOpenCLTypes(), EvaluateUnaryTypeTrait(), clang::CodeGen::isAggregateTypeForABI(), ResolveOverloadForDeduction(), and TryConstCast().
|
inline |
Definition at line 7419 of file Type.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::AddAlignValueAttr(), AddOrdinaryNameResults(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), checkArithmeticNull(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckNonTypeTemplateParameterType(), CheckNullabilityTypeSpecifier(), CheckOriginalCallArgDeduction(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentPointerToMember(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), DeduceNullPtrTemplateArgument(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultLvalueConversion(), DetermineNoUndef(), DiagnoseNullConversion(), Evaluate(), EvaluateComparisonBinaryOperator(), EvaluateMemberPointer(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), GetFullTypeForDeclarator(), clang::ASTContext::getPreferredTypeAlign(), getScalarZeroExpressionForType(), clang::Sema::HandleFunctionTypeMismatch(), handleMSPointerTypeQualifierAttr(), clang::Sema::handlerCanCatch(), isIndirectPointerType(), IsStandardConversion(), needsAmpersandOnTemplateArg(), TryConstCast(), TryReinterpretCast(), and clang::Value::Value().
|
inline |
Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType.
Definition at line 7654 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnOMPArraySectionExpr(), and clang::Sema::checkPseudoObjectAssignment().
bool Type::isNothrowT | ( | ) | const |
Definition at line 3041 of file Type.cpp.
References getAsCXXRecordDecl(), clang::NamedDecl::getIdentifier(), clang::Decl::isInStdNamespace(), and clang::IdentifierInfo::isStr().
Referenced by HandleOperatorNewCall(), and clang::FunctionDecl::isReplaceableGlobalAllocationFunction().
|
inline |
Definition at line 7693 of file Type.h.
Referenced by clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), CheckConvertedConstantConversions(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), checkPointerAuthValue(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::interp::Context::classify(), clang::ento::SValBuilder::conjureSymbolVal(), clang::ImplicitCastExpr::Create(), clang::Sema::DefaultLvalueConversion(), DetermineNoUndef(), DiagnoseNullConversion(), clang::Sema::diagnoseZeroToNullptrConversion(), clang::ento::SMTConv::doTypeConversion(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getRegionValueSymbolVal(), clang::ASTContext::getTargetNullPointerValue(), HandleDestructionImpl(), clang::Sema::handlerCanCatch(), clang::InitializationSequence::InitializeFrom(), clang::ento::Loc::isLocType(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::ASTContext::isSentinelNullExpr(), clang::analyze_format_string::ArgType::matchesType(), TryContextuallyConvertToBool(), and TryReinterpretCast().
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 4867 of file Type.cpp.
References isBlockPointerType(), and isObjCObjectPointerType().
Referenced by clang::Sema::BuildObjCBridgedCast().
bool Type::isObjCARCImplicitlyUnretainedType | ( | ) | const |
Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong.
Definition at line 4807 of file Type.cpp.
References getCanonicalTypeInternal(), clang::QualType::getTypePtr(), and isObjCLifetimeType().
Referenced by checkARCPropertyImpl(), clang::Sema::CheckObjCPropertyAttributes(), getObjCARCImplicitLifetime(), inferARCWriteback(), and clang::Sema::MaybeBindToTemporary().
bool Type::isObjCBoxableRecordType | ( | ) | const |
Definition at line 634 of file Type.cpp.
Referenced by clang::Sema::BuildObjCBoxedExpr().
|
inline |
Definition at line 7550 of file Type.h.
Referenced by AuditedType(), clang::ASTContext::canAssignObjCInterfacesInBlockPointer(), checkObjCPointerTypesForAssignment(), clang::Sema::FindCompositeObjCPointerType(), clang::Sema::isObjCPointerConversion(), and TypeIsInnerPointer().
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 775 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage().
|
inline |
Definition at line 7538 of file Type.h.
Referenced by clang::Sema::BuildInstanceMessage(), clang::Sema::CheckAssignmentConstraints(), checkObjCPointerTypesForAssignment(), clang::Sema::CheckObjCPropertyAttributes(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::FindCompositeObjCPointerType(), findMethodDecl(), getBaseMessageSendResultType(), clang::Sema::getMessageSendResultType(), and clang::Sema::SelectorsForTypoCorrection().
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>.
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 749 of file Type.cpp.
References getAs(), and clang::ObjCObjectType::stripObjCKindOfTypeAndQuals().
Referenced by clang::Sema::BuildInstanceMessage().
|
inline |
Definition at line 7532 of file Type.h.
Referenced by clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCExceptionDecl(), BuildSimilarlyQualifiedPointerType(), clang::Sema::BuiltinRemovePointer(), clang::ento::RetainSummaryManager::canEval(), clang::Sema::CheckAssignmentConstraints(), CheckObjCBridgeNSCast(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::deduceVarTypeFromInitializer(), clang::Sema::FindCompositeObjCPointerType(), findMethodDecl(), clang::ObjCMethodDecl::getMethodFamily(), handleIBOutletCollection(), hasIsEqualMethod(), clang::ASTContext::mergeTypes(), and clang::Sema::SelectorsForTypoCorrection().
bool Type::isObjCIndependentClassType | ( | ) | const |
Definition at line 4832 of file Type.cpp.
References clang::ast_matchers::typedefType.
Referenced by clang::Sema::ActOnMethodDeclaration().
bool Type::isObjCIndirectLifetimeType | ( | ) | const |
Definition at line 4844 of file Type.cpp.
References isObjCLifetimeType().
|
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 2339 of file Type.h.
References hasAttr().
Referenced by computeCopyInfoForBlockCapture(), and computeDestroyInfoForBlockCapture().
bool Type::isObjCLifetimeType | ( | ) | const |
Returns true if objects of this type have lifetime semantics under ARC.
Definition at line 4858 of file Type.cpp.
References clang::ast_matchers::type.
Referenced by clang::Sema::AdjustParameterTypeForObjCAutoRefCount(), clang::Sema::BuildCXXNew(), clang::Sema::BuildVAArgExpr(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckParameter(), clang::Sema::CheckTemplateTypeArgument(), createObjCPropertyGetter(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseRetainableFlexibleArrayMember(), EvaluateUnaryTypeTrait(), handleObjCPreciseLifetimeAttr(), isObjCARCImplicitlyUnretainedType(), isObjCIndirectLifetimeType(), clang::Sema::isObjCWritebackConversion(), clang::Sema::isValidVarArgType(), and clang::TreeTransform< Derived >::RebuildQualifiedType().
bool Type::isObjCNSObjectType | ( | ) | const |
Definition at line 4826 of file Type.cpp.
References clang::ast_matchers::typedefType.
Referenced by applyObjCTypeArgs(), clang::ASTContext::isObjCNSObjectType(), isObjCRetainableType(), and isValidSubjectOfNSAttribute().
|
inline |
Definition at line 7507 of file Type.h.
Referenced by clang::Sema::CodeCompleteDeclSpec(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CompareReferenceRelationship(), and clang::Sema::LookupTemplateName().
|
inline |
Definition at line 7499 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::actOnObjCTypeParam(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), AddObjCKeyValueCompletions(), AdjustFunctionParmAndArgTypesForDeduction(), adjustReturnValue(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildQualifiedType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAdditionOperands(), checkArithmeticOnObjCPointer(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompareOperands(), checkFormatStringExpr(), clang::Sema::CheckFunctionDeclaration(), CheckIncrementDecrementOperand(), clang::Sema::CheckMessageArgumentTypes(), checkMethodFamilyMismatch(), CheckNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), checkObjCPointerIntrospection(), clang::Sema::CheckObjCPropertyAttributes(), clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::DiagnoseAssignmentResult(), clang::ento::SMTConv::doTypeConversion(), emitBadConversionNotes(), EmitPointerWithAlignment(), clang::Sema::FindCompositeObjCPointerType(), clang::Sema::FindCompositePointerType(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::ASTContext::getByrefLifetime(), GetGCAttrTypeForType(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), handleObjCIndependentClass(), hasIsEqualMethod(), clang::ento::cocoa::isCocoaObjectRef(), isIndirectPointerType(), isObjCARCBridgableType(), isObjCPointer(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), isValidSubjectOfNSAttribute(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclTypes(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), clang::Sema::PerformImplicitConversion(), clang::ento::ConditionBRVisitor::printValue(), clang::TreeTransform< Derived >::RebuildCXXForRangeStmt(), clang::Sema::SelectorsForTypoCorrection(), clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec(), TryConstCast(), tryEmitSpecializedAllocInit(), tryGenerateSpecializedMessageSend(), TryReinterpretCast(), TryStaticCast(), TypeIsInnerPointer(), and validateBoxingMethod().
|
inline |
Definition at line 7503 of file Type.h.
Referenced by clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnFields(), clang::Sema::ActOnForwardClassDeclaration(), clang::Sema::actOnObjCTypeParam(), clang::Sema::ActOnSuperClassOfClassInterface(), clang::Sema::ActOnTypedefedProtocols(), clang::Sema::BuildArrayType(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildPointerType(), CastsAwayConstness(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckFunctionReturnType(), CheckObjCTraitOperandConstraints(), clang::Sema::CheckParameter(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::checkVariadicArgument(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CreatePropertyDecl(), GetFullTypeForDeclarator(), handleIBOutletCollection(), inferARCWriteback(), clang::Sema::isValidVarArgType(), transferARCOwnership(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
|
inline |
|
inline |
Definition at line 7520 of file Type.h.
Referenced by clang::Sema::BuildObjCExceptionDecl(), BuildSimilarlyQualifiedPointerType(), checkObjCPointerTypesForAssignment(), clang::Sema::DiagnoseAssignmentResult(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), and clang::Sema::SelectorsForTypoCorrection().
bool Type::isObjCQualifiedInterfaceType | ( | ) | const |
Definition at line 1807 of file Type.cpp.
References getAsObjCQualifiedInterfaceType().
bool Type::isObjCRetainableType | ( | ) | const |
Definition at line 4838 of file Type.cpp.
References isBlockPointerType(), isObjCNSObjectType(), and isObjCObjectPointerType().
Referenced by clang::Sema::ActOnPropertyImplDecl(), AdjustObjCObjectType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildInstanceMessage(), checkAllAtProps(), clang::Sema::CheckObjCPropertyAttributes(), clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::Sema::checkUnsafeExprAssigns(), computeCopyInfoForBlockCapture(), computeDestroyInfoForBlockCapture(), clang::Sema::CreatePropertyDecl(), findWeakLValue(), clang::analyze_printf::PrintfSpecifier::fixType(), handleObjCOwnershipTypeAttr(), handleObjCReturnsInnerPointerAttr(), inferARCWriteback(), isSynthesizedRetainableProperty(), isValidSubjectOfNSReturnsRetainedAttribute(), clang::Sema::MaybeBindToTemporary(), MaybeProduceObjCObject(), PropertyMemoryAttribute(), transferARCOwnership(), transferARCOwnershipToDeclSpec(), and tryMakeVariablePseudoStrong().
|
inline |
Definition at line 7544 of file Type.h.
Referenced by clang::ObjCMethodDecl::getMethodFamily(), isCallback(), and LookupMemberExpr().
|
inline |
Definition at line 7395 of file Type.h.
Referenced by clang::getComparisonCategoryForBuiltinCmp().
|
inline |
Determine whether this type is an object type.
Definition at line 2195 of file Type.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), EvaluateBinaryTypeTrait(), EvaluateBooleanTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), GetFullTypeForDeclarator(), clang::Sema::getNamedReturnInfo(), clang::Sema::handlerCanCatch(), clang::QualType::isTriviallyRelocatableType(), SemaBuiltinLaunder(), and clang::Value::Value().
|
inline |
Definition at line 7605 of file Type.h.
Referenced by clang::InitializationSequence::Perform(), and TryOCLZeroOpaqueTypeInitialization().
|
inline |
Definition at line 7620 of file Type.h.
Referenced by clang::CodeGen::CGOpenCLRuntime::convertOpenCLSpecificType(), getOpenCLKernelParameterType(), and isTypeSubstitutable().
|
inline |
Determines whether this is a type for which one can define an overloaded operator.
Definition at line 7801 of file Type.h.
References isRecordType().
Referenced by clang::Sema::BuildBinOp(), buildCounterUpdate(), clang::Sema::BuildUnaryOp(), checkOpenMPIterationSpace(), and clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr().
|
inline |
Definition at line 7591 of file Type.h.
Referenced by clang::Sema::BuildArrayType(), checkOpenCLPipeArg(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), diagnoseOpenCLTypes(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), GetFullTypeForDeclarator(), and HandleOpenCLAccessAttr().
|
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 7636 of file Type.h.
Referenced by clang::Sema::BuildExprRequirement(), CheckIncrementDecrementOperand(), DeduceTemplateArgumentsByTypeMatch(), clang::ASTContext::getLValueReferenceType(), clang::ASTContext::getRValueReferenceType(), and clang::Expr::hasPlaceholderType().
|
inline |
Definition at line 7371 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnOMPArrayShapingExpr(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::Sema::ActOnOpenMPUseDevicePtrClause(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnVariableDeclarator(), addCastTransition(), clang::Sema::AddFunctionCandidates(), addInstanceOfTransition(), AddOrdinaryNameResults(), AdjustFunctionParmAndArgTypesForDeduction(), argTypeIsABIEquivalent(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildCallExpr(), buildCapture(), BuildCXXCastArgument(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildPseudoDestructorExpr(), clang::ento::RetainSummaryManager::canEval(), castToBase(), clang::Sema::CheckAdditionOperands(), checkArrayExpressionDoesNotReferToWholeSize(), CheckArrow(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckExtVectorCast(), clang::Sema::CheckFunctionCall(), CheckImplicitConversion(), CheckIncrementDecrementOperand(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckNonTypeTemplateParameterType(), checkOpenMPIterationSpace(), checkPointerAuthValue(), checkPointerIntegerMismatch(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::interp::Context::classify(), ClassifyDiagnostic(), CompareDerivedToBaseConversions(), clang::interp::ByteCodeEmitter::compileFunc(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), convertPointersToCompositeType(), clang::Sema::CreateBuiltinUnaryOp(), createSpanTypeForVarDecl(), clang::CStyleCastPtrExpr(), decomposeTypeForEH(), clang::Sema::DeduceAutoType(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DiagnoseAlwaysNonNullPointer(), DiagnoseDivisionSizeofPointerOrArray(), diagnoseObjCARCConversion(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseSwiftName(), clang::Sema::DiscardMisalignedMemberAddress(), EmitAtomicCmpXchgForMSIntrin(), EmitAtomicDecrementValue(), EmitAtomicIncrementValue(), EmitBinaryAtomicPost(), EmitCompare(), EmitDynamicCastToNull(), emitOutlinedFunctionPrologue(), emitParallelOrTeamsOutlinedFunction(), EmitPointerWithAlignment(), clang::CodeGen::CGOpenMPRuntime::emitTaskOutlinedFunction(), clang::ento::ExprEngine::evalCall(), EvaluateBuiltinConstantP(), EvaluateComparisonBinaryOperator(), ExprLooksBoolean(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), fixVariable(), GeneralizeType(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), getAArch64LS(), getAArch64PBV(), getAsArrayToPointerDecayedDecl(), clang::QualType::getBaseTypeIdentifier(), getBuiltinAlignArguments(), getCanonicalParamType(), clang::CodeGen::CodeGenModule::GetConstantArrayFromStringLiteral(), getCoreType(), clang::ASTContext::getCountAttributedType(), clang::CXXDeleteExpr::getDestroyedType(), GetExplicitObjectExpr(), GetExplicitObjectType(), clang::ento::CXXInstanceCall::getExtraInvalidatedValues(), clang::dataflow::getImplicitObjectLocation(), clang::UserDefinedLiteral::getLiteralOperatorKind(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::CXXMemberCallExpr::getObjectType(), getOpenCLKernelParameterType(), getPointeeTypeText(), getPreferredTypeOfBinaryRHS(), getScalarZeroExpressionForType(), getUuidAttrOfType(), handleAllocSizeAttr(), handleAnyX86InterruptAttr(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleMSAllocatorAttr(), handleObjCOwnershipTypeAttr(), handleObjCReturnsInnerPointerAttr(), clang::Sema::handlerCanCatch(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::Expr::IgnoreParenNoopCasts(), clang::ASTNodeImporter::ImportDeclParts(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::ExtVectorElementExpr::isArrow(), isAutoCastType(), isConsumableType(), isIntegerLikeType(), clang::ento::iterator::isIteratorType(), isLibstdcxxPointerReturnFalseHack(), clang::CXXTypeidExpr::isMostDerived(), clang::BinaryOperator::isNullPointerArithmeticExtension(), clang::Expr::isOBJCGCCandidate(), clang::Sema::isObjCPointerConversion(), clang::Sema::isOpenMPCapturedByRef(), clang::Sema::IsPointerConversion(), isPointerOrRef(), IsTypeModifiable(), clang::isUncountedPtr(), isValidSubjectOfCFAttribute(), IsVoidStarType(), loadToBegin(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeTypedefNameDecl(), needsAmpersandOnTemplateArg(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), peelOffPointerArithmetic(), clang::Sema::PerformImplicitConversion(), clang::ento::ConditionBRVisitor::printValue(), clang::TreeTransform< Derived >::RebuildMemberExpr(), ResolveOverloadForDeduction(), rewriteBuiltinFunctionDecl(), SemaBuiltinAlignment(), SemaBuiltinCallWithStaticChain(), SemaBuiltinDumpStruct(), SemaBuiltinLaunder(), SemaOpenCLBuiltinEnqueueKernel(), setObjCGCLValueClass(), shouldTrackFirstArgument(), TryConstCast(), TryDeconstructFunctionLike(), TryReinterpretCast(), TypeIsInnerPointer(), clang::Value::Value(), clang::interp::ByteCodeExprGen< Emitter >::VisitCompoundAssignOperator(), clang::interp::ByteCodeExprGen< Emitter >::VisitPointerArithBinOp(), and clang::interp::ByteCodeExprGen< Emitter >::VisitSourceLocExpr().
|
inline |
Definition at line 7576 of file Type.h.
Referenced by clang::Sema::CheckCompareOperands(), clang::Sema::CheckSingleAssignmentConstraints(), IsStandardConversion(), clang::InitializationSequence::Perform(), SemaOpenCLBuiltinEnqueueKernel(), and TryOCLZeroOpaqueTypeInitialization().
bool Type::isRealFloatingType | ( | ) | const |
Floating point categories.
Definition at line 2246 of file Type.cpp.
Referenced by clang::Sema::ActOnGCCAsmStmt(), actOnOMPReductionKindClause(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildVectorType(), clang::ento::SMTConstraintManager::canReasonAbout(), checkFPMathBuiltinElementType(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::checkTypeSupport(), DiagnoseBadFunctionCast(), clang::ento::SMTConv::doFloatTypeConversion(), clang::ento::SMTConv::doTypeConversion(), emitReplacement(), Evaluate(), EvaluateComparisonBinaryOperator(), EvaluateFloat(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ento::SMTConv::fromCast(), getAbsoluteValueKind(), clang::ento::SMTConv::getBinExpr(), clang::getComparisonCategoryForBuiltinCmp(), clang::StandardConversionSequence::getNarrowingKind(), getScalarZeroExpressionForType(), clang::ento::SMTConv::getSymExpr(), clang::ento::SMTConstraintManager::getSymVal(), clang::ento::SMTConv::getZeroExpr(), handleComplexIntegerToFloatConversion(), handleFloatConversion(), IsFloatingPointConversion(), isIntegerLikeType(), IsStandardConversion(), IsVectorElementConversion(), clang::ento::SMTConv::mkSort(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), tryGCCVectorConvertAndSplat(), TryStaticCast(), tryVectorConvertAndSplat(), and clang::Sema::UsualArithmeticConversions().
bool Type::isRealType | ( | ) | const |
Definition at line 2252 of file Type.cpp.
References isBitIntType().
Referenced by CheckIncrementDecrementOperand(), clang::Sema::CheckSizelessVectorOperands(), clang::Sema::CheckVectorOperands(), clang::MatrixType::isValidElementType(), and rewriteToObjCProperty().
|
inline |
Definition at line 7461 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnConditionalOp(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), actOnOMPReductionKindClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallExpr(), BuildConvertedConstantExpression(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildImplicitMemberInitializer(), buildMemcpyForAssignmentOp(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildVAArgExpr(), clang::ento::SymbolManager::canSymbolicate(), clang::interp::CheckArrayInitialized(), clang::Sema::CheckBaseSpecifier(), CheckC23ConstexprVarType(), CheckConditionalOperand(), clang::interp::CheckFieldsInitialized(), checkIsValidOpenCLKernelParameter(), checkLiteralOperatorTemplateParameterList(), clang::Sema::CheckMemberPointerConversion(), CheckMoveOnConstruction(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckTemplateArgument(), clang::Sema::checkVariadicArgument(), ClassifyTemporary(), clang::Sema::CollectIvarsToConstructOrDestruct(), clang::dataflow::copySyntheticField(), clang::CXXBindTemporaryExpr::Create(), clang::Sema::CreateGenericSelectionExpr(), clang::dataflow::DataflowAnalysisContext::createRecordStorageLocation(), createReferenceTemporary(), clang::dataflow::DataflowAnalysisContext::createStorageLocation(), clang::Sema::CXXCheckConditionalOperands(), DeduceTemplateArgumentsByTypeMatch(), DeduceTemplateBases(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), DiagnoseRecursiveConstFields(), Evaluate(), clang::interp::Context::evaluateAsInitializer(), evaluateCDTSize(), clang::Sema::EvaluateConvertedConstantExpression(), EvaluateInPlace(), EvaluateRecord(), EvaluateTemporary(), clang::Sema::FindAllocationFunctions(), FindConversionForRefInit(), findSubobject(), clang::interp::Record::getBase(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::getByrefLifetime(), clang::CallExpr::getCallReturnType(), clang::Sema::getCopyElisionCandidate(), clang::CXXMethodDecl::getDevirtualizedMethod(), getFieldsFromClassHierarchy(), GetFullTypeForDeclarator(), clang::ASTContext::getInjectedTemplateArg(), getOpenCLKernelParameterType(), clang::dataflow::Environment::getResultObjectLocation(), getSelfInitExpr(), clang::dataflow::DataflowAnalysisContext::getSyntheticFields(), clang::ASTContext::getTemplateParamObjectDecl(), clang::Sema::getTypeName(), clang::Sema::handlerCanCatch(), clang::ASTContext::hasUniqueObjectRepresentations(), clang::ASTNodeImporter::ImportAPValue(), InitCatchParam(), clang::InitializationSequence::InitializeFrom(), IsAcceptableNonMemberOperatorCandidate(), clang::Sema::IsBlockPointerConversion(), isCARCBridgableType(), clang::ento::NonLoc::isCompoundType(), clang::Expr::isConstantInitializer(), clang::CodeGen::CodeGenModule::isInNoSanitizeList(), isObjCReceiverType(), clang::Sema::IsPointerConversion(), isRecordType(), IsStandardConversion(), LookupMemberExpr(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectMemberConversion(), clang::APValue::printPretty(), clang::dataflow::RecordStorageLocation::RecordStorageLocation(), clang::dataflow::refreshRecordValue(), clang::Sema::RequireStructuralType(), ResolveOverloadedFunctionForReferenceBinding(), SemaBuiltinDumpStruct(), setObjCGCLValueClass(), clang::Expr::skipRValueSubobjectAdjustments(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryConstCast(), TryDefaultInitialization(), tryDiagnoseOverloadedCast(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), TryListConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::Value::Value(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXConstructExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXParenListInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitImplicitValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::visitInitList(), clang::interp::ByteCodeExprGen< Emitter >::VisitInitListExpr(), clang::ento::ExprEngine::VisitInitListExpr(), warnAboutAmbiguousFunction(), and warnAboutRedundantParens().
|
inline |
Definition at line 7383 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPDeclareReductionType(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignValueAttr(), addCastTransition(), clang::Sema::AddInitializerToDecl(), addInstanceOfTransition(), clang::CodeGen::CGOpenMPRuntimeGPU::adjustTargetSpecificDataForLambdas(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), buildCoawaitCalls(), BuildConvertedConstantExpression(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildExpressionFromNonTypeTemplateArgumentValue(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::BuildQualifiedType(), clang::Sema::BuiltinChangeCVRQualifiers(), clang::canDynamicCastThrow(), captureInBlock(), captureInLambda(), CastsAwayConstness(), castToBase(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitSharedLastprivateConditional(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFieldDecl(), CheckForReference(), clang::Sema::CheckFunctionCall(), CheckICE(), clang::Sema::checkInitializerLifetime(), CheckLValueConstantExpression(), clang::Sema::CheckOMPThreadPrivateDecl(), clang::Sema::CheckOpenMPLinearDecl(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::interp::Context::classify(), ClassifyDiagnostic(), ClassifyMemberExpr(), CompareQualificationConversions(), clang::Sema::CompareReferenceRelationship(), clang::interp::ByteCodeEmitter::compileFunc(), create_call_once(), createObjCPropertyGetter(), DeduceNonTypeTemplateArgument(), clang::Sema::DeduceTemplateArguments(), clang::Sema::deepTypeCheckForSYCLDevice(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DetermineNoUndef(), clang::InitializationSequence::Diagnose(), DiagnoseBadConversion(), DiagnoseDivisionSizeofPointerOrArray(), DiagnoseForRangeReferenceVariableCopies(), DiagnoseForRangeVariableCopies(), diagnoseListInit(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseSwiftName(), DiagnoseUninitializedReference(), DoMarkPotentialCapture(), clang::ento::SMTConv::doTypeConversion(), clang::CodeGen::CGDebugInfo::EmitDeclareOfAutoVariable(), EmitDeclInit(), EmitGlobalVarDeclLValue(), clang::ento::ExprEngine::evalCall(), EvaluateBooleanTypeTrait(), EvaluateUnaryTypeTrait(), clang::ento::SMTConv::fromCast(), getAArch64MTV(), getBaseAlignmentAndOffsetFromLValue(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), clang::CFGImplicitDtor::getDestructorDecl(), getFuchsiaHandleSymbols(), getLocationRegionIfReference(), clang::OverloadCandidate::getNumParams(), getOpenCLKernelParameterType(), clang::CodeGen::CGOpenMPRuntimeGPU::getParameterAddress(), getUuidAttrOfType(), clang::ento::SMTConv::getZeroExpr(), handleLifetimeCategoryAttr(), handleMSAllocatorAttr(), handleObjCReturnsInnerPointerAttr(), handleSwiftError(), clang::Expr::HasSideEffects(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), isAutoCastType(), isCallback(), clang::ento::isCapturedByReference(), isCapturingReferenceToHostVarInCUDADeviceLambda(), isConsumableType(), clang::ento::isDereferencableType(), isLiteralType(), clang::ento::Loc::isLocType(), clang::CXXTypeidExpr::isMostDerived(), clang::Sema::isOpenMPCapturedByRef(), isPointerOrRef(), clang::ento::isPossiblyEscaped(), isRelevantAttr(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::isUncountedPtr(), clang::Expr::isUnusedResultAWarning(), isValidBaseType(), clang::Sema::isValidPointerAttrType(), lifetimeStartedInEvaluation(), loadToBegin(), maybeTailCall(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), PerformReturnAdjustment(), print(), print_elem(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::TreeTransform< Derived >::RebuildQualifiedType(), clang::ReferenceType::ReferenceType(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::dataflow::RecordStorageLocation::setChild(), clang::Expr::setType(), clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr(), shouldTrackFirstArgument(), clang::dataflow::StorageLocation::StorageLocation(), clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter(), TryCopyInitialization(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), TryListConversion(), TryListInitialization(), TryOrBuildParenListInitialization(), TryReferenceInit(), TryStaticImplicitCast(), TryUserDefinedConversion(), unwrapCastAwayConstnessLevel(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::Value::Value(), clang::ento::ExprEngine::VisitCast(), clang::interp::ByteCodeExprGen< Emitter >::VisitDeclRefExpr(), visitLocalsRetainedByInitializer(), visitLocalsRetainedByReferenceBinding(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl(), warnAboutAmbiguousFunction(), and writeShouldKill().
|
inline |
Definition at line 7580 of file Type.h.
Referenced by diagnoseOpenCLTypes(), and getOpenCLKernelParameterType().
|
inline |
Definition at line 7391 of file Type.h.
Referenced by clang::Sema::AddConversionCandidate(), alignReferenceTypes(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::CheckTemplateArgument(), create_call_once_funcptr_call(), DiagnoseForRangeReferenceVariableCopies(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), GetExplicitObjectExpr(), clang::Sema::getMoreSpecializedTemplate(), clang::Sema::getNamedReturnInfo(), clang::ento::ExprEngine::handleLValueBitCast(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::CXXConstructorDecl::isMoveConstructor(), isRelevantAttr(), isRValueRef(), NoteFunctionCandidate(), RefersToRValueRef(), clang::Sema::RequireStructuralType(), TryListConversion(), TryReferenceInit(), TryReferenceListInitialization(), TryStaticReferenceDowncast(), unwrapRValueReferenceIndirection(), and VerifyInitializationSequenceCXX98().
bool Type::isRVVSizelessBuiltinType | ( | ) | const |
Returns true for RVV scalable vector types.
Definition at line 2466 of file Type.cpp.
Referenced by clang::ASTContext::areCompatibleRVVTypes(), clang::ASTContext::areLaxCompatibleRVVTypes(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::checkTypeSupport(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVectorOperands(), isSizelessVectorType(), isTrackedVar(), clang::Sema::isValidRVVBitcast(), and IsVectorConversion().
bool Type::isRVVVLSBuiltinType | ( | ) | const |
Determines if this is a sizeless type supported by the 'riscv_rvv_vector_bits' type attribute, which can be applied to a single RVV vector or mask.
Definition at line 2518 of file Type.cpp.
Referenced by clang::ASTContext::areCompatibleRVVTypes(), getRVVEltType(), getRVVTypeSize(), and HandleRISCVRVVVectorBitsTypeAttr().
|
inline |
Definition at line 7564 of file Type.h.
Referenced by clang::Sema::BuildArrayType(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckVariableDeclarationType(), clang::CodeGen::CGOpenCLRuntime::convertOpenCLSpecificType(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::deduceOpenCLAddressSpace(), deduceOpenCLPointeeAddrSpace(), diagnoseOpenCLTypes(), GetFullTypeForDeclarator(), IsStandardConversion(), clang::InitializationSequence::Perform(), and TryOCLSamplerInitialization().
|
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 7729 of file Type.h.
Referenced by clang::ASTContext::getCorrespondingSaturatedType(), clang::ASTContext::getFixedPointSemantics(), handleFixedPointConversion(), and clang::analyze_format_string::ArgType::matchesType().
|
inline |
Definition at line 7759 of file Type.h.
References clang::IsEnumDeclComplete().
Referenced by clang::Sema::ActOnFunctionDeclarator(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPAtomicDirective(), clang::Sema::ActOnOpenMPLastprivateClause(), clang::Sema::areLaxCompatibleVectorTypes(), breakDownVectorType(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildPseudoDestructorExpr(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBooleanCondition(), checkCondition(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckVectorOperands(), clang::Sema::CreateBuiltinUnaryOp(), DetermineNoUndef(), DiagnoseNullConversion(), EvaluateUnaryTypeTrait(), getDerivedSymbolForBinding(), clang::Sema::getFixItZeroInitializerForType(), getScalarTypeKind(), getScalarZeroExpressionForType(), getVariableCategoryFromDecl(), clang::ento::BasicValueFactory::getZeroWithTypeSize(), hasIsEqualMethod(), clang::QualType::isCXX11PODType(), isLiteralType(), clang::Sema::isOpenMPCapturedByRef(), clang::ento::isPrimitiveType(), isStandardLayoutType(), isStructuralType(), isTrackedVar(), isTriviallyCopyableTypeImpl(), clang::QualType::isTrivialType(), LookupMemberExpr(), matchTypes(), clang::Sema::RequireStructuralType(), TryListInitialization(), and updateOutParameters().
bool Type::isScopedEnumeralType | ( | ) | const |
Determine whether this type is a scoped enumeration type.
Definition at line 677 of file Type.cpp.
Referenced by EvaluateUnaryTypeTrait().
|
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 7741 of file Type.h.
Referenced by clang::ASTContext::getCorrespondingSignedType(), clang::ASTContext::getFixedPointSemantics(), and handleFixedPointConversion().
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 2147 of file Type.cpp.
References isSignedIntegerType().
Referenced by clang::Sema::ActOnEnumBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::ento::iterator::assumeNoOverflow(), clang::ento::SMTConv::castAPSInt(), clang::interp::CheckConstant(), clang::Sema::CheckEnumConstant(), CheckICE(), clang::Sema::CheckTemplateArgument(), clang::interp::Context::classify(), clang::Sema::DiagnoseAssignmentEnum(), clang::ento::SMTConv::doIntTypeConversion(), EmitIntegerSignChangeCheckHelper(), EmitIntegerTruncationCheckHelper(), emitPointerArithmetic(), clang::ento::SMTConv::fromCast(), clang::ento::BasicValueFactory::getAPSIntType(), clang::ento::SMTConv::getBinExpr(), clang::StandardConversionSequence::getNarrowingKind(), getNextLargerIntegralType(), clang::ento::SMTConv::getRangeExpr(), clang::ento::SMTConstraintManager::getSymVal(), clang::ento::SMTConv::getZeroExpr(), HandleFloatToIntCast(), hasSignedIntegerRepresentation(), clang::interp::interp__builtin_overflowop(), isRepresentableIntegerValue(), isWithinConstantOverflowBounds(), clang::CodeGen::CGBitFieldInfo::MakeInfo(), clang::ASTContext::MakeIntValue(), clang::interp::pushInteger(), and tryRearrange().
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 2126 of file Type.cpp.
References isSignedIntegerType().
Referenced by clang::Sema::AddModeAttr(), AnalyzeBitFieldAssignment(), calculateElementType(), clang::Sema::CheckCompatibleReinterpretCast(), CheckImplicitConversion(), clang::InitializationSequence::Diagnose(), DiagnoseIntInBoolContext(), EmitAtomicOp(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalUpdate(), EvaluateUnaryTypeTrait(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getFixedPointSemantics(), getIntegerWidthAndSignedness(), clang::ASTContext::getPromotedIntegerType(), clang::Sema::IsIntegralPromotion(), isKnownToHaveUnsignedValue(), clang::ASTContext::isPromotableBitField(), isSignedIntegerOrEnumerationType(), isSignedIntegerType(), rewriteToNumericBoxedExpression(), clang::JSONNodeDumper::VisitIntegerLiteral(), and clang::ento::ExprEngine::VisitOffsetOfExpr().
bool Type::isSizelessBuiltinType | ( | ) | const |
Definition at line 2413 of file Type.cpp.
References isSizelessVectorType().
Referenced by clang::Sema::CheckVectorOperands(), clang::Sema::GetSignedSizelessVectorType(), clang::QualType::isCXX11PODType(), isSizelessType(), isTriviallyCopyableTypeImpl(), and warnBracedScalarInit().
bool Type::isSizelessType | ( | ) | const |
As an extension, we classify types as one of "sized" or "sizeless"; every type is one or the other.
Standard types are all sized; sizeless types are purely an extension.
Sizeless types contain data with no specified size, alignment, or layout.
Definition at line 2446 of file Type.cpp.
References isSizelessBuiltinType().
Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::CheckAlignasUnderalignment(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckVariableDeclarationType(), and clang::Sema::SizelessTypeDiagnoser< Ts >::diagnose().
bool Type::isSizelessVectorType | ( | ) | const |
Returns true for all scalable vector types.
Definition at line 2448 of file Type.cpp.
References isRVVSizelessBuiltinType(), and isSVESizelessBuiltinType().
Referenced by CheckVectorElementsTraitOperandType(), and isSizelessBuiltinType().
Test for a particular builtin type.
Definition at line 7629 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPDependClause(), clang::Sema::ActOnOpenMPMapClause(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildVAArgExpr(), calculateElementType(), clang::ento::SMTConstraintManager::canReasonAbout(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckOverloadedOperatorDeclaration(), CheckTautologicalComparison(), clang::interp::Context::classify(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseFloatingImpCast(), clang::OverloadExpr::find(), clang::Sema::getCopyElisionCandidate(), clang::ASTContext::getPreferredTypeAlign(), clang::dataflow::Environment::getStorageLocation(), IsImplicitBoolFloatConversion(), isObjCSignedCharBool(), isTypeSubstitutable(), LookupMemberExpr(), printIntegral(), processImplicitMapsWithDefaultMappers(), SemaBuiltinCountZeroBitsGeneric(), and clang::dataflow::Environment::setStorageLocation().
Test for a specific placeholder type.
Definition at line 7649 of file Type.h.
Referenced by clang::Sema::canCalleeThrow(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getLValueReferenceType(), clang::ASTContext::getRValueReferenceType(), and clang::ObjCPropertyRefExpr::ObjCPropertyRefExpr().
bool Type::isSpecifierType | ( | ) | const |
Returns true if this type can be represented by some set of type specifiers.
Definition at line 3068 of file Type.cpp.
References Complex, clang::Enum, and getTypeClass().
Referenced by GetBaseType().
bool Type::isStandardLayoutType | ( | ) | const |
Test if this type is a standard-layout type.
(C++0x [basic.type]p9)
Definition at line 2953 of file Type.cpp.
References getAs(), getBaseElementTypeUnsafe(), isDependentType(), isIncompleteType(), isScalarType(), and isVectorType().
Referenced by EvaluateUnaryTypeTrait(), and isLayoutCompatible().
bool Type::isStdByteType | ( | ) | const |
Definition at line 3059 of file Type.cpp.
References clang::IdentifierInfo::isStr().
bool Type::isStructuralType | ( | ) | const |
Determine if this type is a structural type, per C++20 [temp.param]p7.
Definition at line 2937 of file Type.cpp.
References getAsCXXRecordDecl(), isLValueReferenceType(), isScalarType(), and isVectorType().
Referenced by clang::Sema::RequireStructuralType().
bool Type::isStructureOrClassType | ( | ) | const |
Definition at line 646 of file Type.cpp.
References clang::TagDecl::isClass(), clang::TagDecl::isInterface(), and clang::TagDecl::isStruct().
Referenced by clang::Sema::ActOnOpenMPDeclareMapperType(), buildUserDefinedMapperRef(), isLayoutCompatible(), markEscapingByrefs(), and processImplicitMapsWithDefaultMappers().
bool Type::isStructureType | ( | ) | const |
Definition at line 628 of file Type.cpp.
Referenced by clang::Sema::ActOnGCCAsmStmt(), addFlexibleArrayMemberInitSize(), clang::Sema::CheckCompleteVariableDeclaration(), EvaluateUnaryTypeTrait(), getFuchsiaHandleSymbols(), MaybePrintTagKeywordIfSupressingScopes(), maybeTailCall(), and clang::Sema::MergeTypedefNameDecl().
bool Type::isSVESizelessBuiltinType | ( | ) | const |
Returns true for SVE scalable vector types.
Definition at line 2452 of file Type.cpp.
Referenced by clang::ASTContext::areCompatibleSveTypes(), clang::ASTContext::areLaxCompatibleSveTypes(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::checkTypeSupport(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVectorOperands(), isSizelessVectorType(), isTypeSubstitutable(), clang::Sema::isValidSveBitcast(), and IsVectorConversion().
bool Type::isSveVLSBuiltinType | ( | ) | const |
Determines if this is a sizeless type supported by the 'arm_sve_vector_bits' type attribute, which can be applied to a single SVE vector or predicate, excluding tuple types such as svint32x4_t.
Definition at line 2479 of file Type.cpp.
Referenced by clang::Sema::CheckAdditionOperands(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckCompareOperands(), CheckImplicitConversion(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSizelessVectorConditionalTypes(), clang::Sema::CheckSizelessVectorOperands(), checkSizelessVectorShift(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), getSveEltType(), getSVETypeSize(), HandleArmSveVectorBitsTypeAttr(), isValidSizelessVectorForConditionalCondition(), and tryGCCVectorConvertAndSplat().
|
inline |
Definition at line 7625 of file Type.h.
Referenced by clang::Sema::CodeCompleteMemberReferenceExpr().
|
inline |
Determines whether this type is written as a typedef-name.
Definition at line 7806 of file Type.h.
Referenced by clang::extractapi::TypedefUnderlyingTypeResolver::getUnderlyingTypeDecl(), and handlePreferredName().
|
inline |
Definition at line 7516 of file Type.h.
Referenced by clang::Sema::ActOnConversionDeclarator(), clang::Sema::BuildAtomicType(), clang::Sema::CheckExplicitlyDefaultedComparison(), and deduceOpenCLPointeeAddrSpace().
|
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 7794 of file Type.h.
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddConversionCandidate(), clang::Sema::AddInitializerToDecl(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::BuildArrayType(), clang::Sema::BuildOverloadedCallExpr(), clang::Sema::BuildVariableInstantiation(), clang::Sema::canDelayFunctionBody(), clang::Sema::checkArrayElementAlignment(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckVariableDeclarationType(), completeFunctionType(), clang::Sema::CreateRecoveryExpr(), clang::Sema::deduceClosureReturnType(), clang::Sema::DeduceReturnType(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), GetTypeOfFunction(), hasDeducedReturnType(), clang::VarDecl::hasDependentAlignment(), clang::Sema::MergeVarDeclTypes(), clang::Sema::RebuildTemplateParamsInCurrentInstantiation(), and TryToFixInvalidVariablyModifiedType().
bool Type::isUnionType | ( | ) | const |
Definition at line 660 of file Type.cpp.
Referenced by clang::Sema::ActOnOpenMPDeclareMapperType(), appendRecordType(), buildUserDefinedMapperRef(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckBaseSpecifier(), checkIsValidOpenCLKernelParameter(), checkMemberDecomposition(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), EvaluateBuiltinClassifyType(), evaluateCDTSize(), EvaluateUnaryTypeTrait(), clang::dataflow::getFieldsForInitListExpr(), isLayoutCompatible(), MaybePrintTagKeywordIfSupressingScopes(), processImplicitMapsWithDefaultMappers(), and TryOrBuildParenListInitialization().
|
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 7737 of file Type.h.
Referenced by clang::ASTContext::getCorrespondingUnsaturatedType().
bool Type::isUnscopedEnumerationType | ( | ) | const |
Definition at line 2062 of file Type.cpp.
Referenced by checkEnumArithmeticConversions(), and isIntegralOrUnscopedEnumerationType().
|
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 7755 of file Type.h.
Referenced by clang::ento::BasicValueFactory::getAPSIntType(), clang::ASTContext::getCorrespondingSignedFixedPointType(), clang::ASTContext::getCorrespondingUnsignedType(), and handleFixedPointConversion().
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 2197 of file Type.cpp.
References isUnsignedIntegerType().
Referenced by clang::interp::CheckConstant(), clang::Sema::CheckTemplateArgument(), clang::interp::Context::classify(), GetExprRange(), clang::ento::BasicValueFactory::getTruthValue(), GetValueRange(), HandleIntToIntCast(), hasUnsignedIntegerRepresentation(), isValidStructGUID(), clang::ento::SValBuilder::makeIntVal(), and clang::interp::pushInteger().
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 2176 of file Type.cpp.
References isUnsignedIntegerType().
Referenced by clang::Sema::ActOnStringLiteral(), clang::Sema::BuildVAArgExpr(), calculateElementType(), CheckC23ConstexprInitStringLiteral(), clang::Sema::CheckCompatibleReinterpretCast(), CheckImplicitConversion(), clang::Sema::DefaultArgumentPromotion(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalUpdate(), clang::ento::SValBuilder::evalIntegralCast(), EvaluateUnaryTypeTrait(), expandStringLiteral(), extractStringLiteralCharacter(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getIntegerTypeOrder(), clang::ASTContext::getPromotedIntegerType(), handleVectorUnaryOperator(), handleVectorVectorBinOp(), clang::Sema::IsIntegralPromotion(), isNonNegativeIntegerExpr(), isUnsigned(), isUnsignedIntegerOrEnumerationType(), isUnsignedIntegerType(), SemaBuiltinCountZeroBitsGeneric(), SemaBuiltinPopcountg(), and SemaBuiltinRWPipe().
|
inline |
Definition at line 7449 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildArrayType(), clang::Sema::BuildCompoundLiteralExpr(), CheckICE(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), emitOMPArraySectionBase(), EquivalentArrayTypes(), EvaluateUnaryTypeTrait(), isConstantSizeArrayWithMoreThanOneElement(), isLiteralType(), isSimpleArrayDecayOperand(), clang::Sema::RequireLiteralType(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Whether this type is a variably-modified type (C99 6.7.5).
Definition at line 2460 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), actOnOMPReductionKindClause(), clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildExceptionDeclaration(), captureVariablyModifiedType(), clang::Sema::CheckAllocatedType(), CheckC23ConstexprVarType(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), diagnoseArrayStarInParamType(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::CodeGenModule::EmitExplicitCastExprType(), emitOutlinedFunctionPrologue(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntimeGPU::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable(), clang::Sema::HandleExprEvaluationContextForTypeof(), hasSizedVLAType(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::QualType::isCanonicalAsParam(), clang::Sema::isIncompatibleTypedef(), isVariableCapturable(), NeedsInstantiationAsFunctionType(), clang::Sema::SubstType(), clang::Sema::tryCaptureVariable(), TryToFixInvalidVariablyModifiedType(), clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
inline |
Definition at line 7473 of file Type.h.
Referenced by clang::Sema::ActOnCastExpr(), clang::Sema::AddAlignedAttr(), clang::Sema::anyAltivecTypes(), clang::ASTContext::areCompatibleRVVTypes(), clang::ASTContext::areCompatibleSveTypes(), clang::ASTContext::areCompatibleVectorTypes(), clang::ASTContext::areLaxCompatibleRVVTypes(), clang::ASTContext::areLaxCompatibleSveTypes(), clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::areVectorTypesSameSize(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildVectorLiteral(), canRecoverDotPseudoDestructorCallsOnPointerObjects(), clang::Sema::CheckAdditionOperands(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckExtVectorCast(), CheckFloatOrHalfRepresentations(), CheckIncrementDecrementOperand(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckMultiplyDivideOperands(), checkObjCMethodX86VectorTypes(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSubtractionOperands(), CheckVecStepTraitOperandType(), clang::Sema::CheckVectorCast(), CheckVectorElementsTraitOperandType(), clang::Sema::CheckVectorOperands(), checkVectorShift(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CXXCheckConditionalOperands(), Evaluate(), EvaluateUnaryTypeTrait(), EvaluateVector(), handleTransparentUnionAttr(), clang::Sema::InvalidLogicalVectorOperands(), clang::ento::NonLoc::isCompoundType(), clang::QualType::isCXX11PODType(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), isIntegerLikeType(), clang::Sema::isLaxVectorConversion(), isLiteralType(), clang::Sema::IsPointerConversion(), clang::ento::isPrimitiveType(), isStandardLayoutType(), isStructuralType(), isTrackedVar(), isTriviallyCopyableTypeImpl(), clang::QualType::isTrivialType(), clang::Sema::isValidRVVBitcast(), clang::Sema::isValidSveBitcast(), isValidVectorForConditionalCondition(), IsVectorConversion(), clang::Sema::LookupTemplateName(), OpenCLCheckVectorConditional(), clang::Sema::PerformImplicitConversion(), clang::Expr::refersToVectorElement(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), TryReinterpretCast(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
inline |
bool Type::isVoidPointerType | ( | ) | const |
Definition at line 654 of file Type.cpp.
Referenced by clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), checkConditionalBlockPointerCompatibility(), checkIntToPointerCast(), clang::Sema::CheckSubscriptingKind(), clang::ento::SMTConv::doTypeConversion(), EvaluateComparisonBinaryOperator(), clang::Sema::FindCompositeObjCPointerType(), clang::Sema::FindCompositePointerType(), getExistingLazyBinding(), HandleDynamicCast(), handleObjCBridgeAttr(), clang::CXXDynamicCastExpr::isAlwaysNull(), isVoidPointer(), clang::analyze_format_string::ArgType::matchesType(), maybeTailCall(), clang::Sema::MergeTypedefNameDecl(), SemaBuiltinLaunder(), and TryReinterpretCast().
|
inline |
Definition at line 7660 of file Type.h.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCastExpr(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::CodeGen::CGDebugInfo::addHeapAllocSiteMetadata(), AddObjCKeyValueCompletions(), AddObjCProperties(), AddOrdinaryNameResults(), AnalyzeImplicitConversions(), clang::Sema::BuildArrayType(), clang::Sema::BuildClassMessage(), buildCoawaitCalls(), clang::Sema::BuildCoreturnStmt(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildFunctionType(), clang::Sema::BuildInstanceMessage(), buildLambdaScopeReturnType(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuiltinAddPointer(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCallReturnType(), CheckCommaOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), CheckConstantExpression(), CheckConstexprFunctionBody(), CheckConstPureAttributesUsage(), clang::Sema::CheckCXXThrowOperand(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionDeclaration(), checkPointerTypesForAssignment(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTransparentUnionArgumentConstraints(), CheckUnaryTypeTraitTypeCompleteness(), clang::Sema::CheckVariableDeclarationType(), CheckVecStepTraitOperandType(), ClassifyConditional(), clang::CodeGen::DefaultABIInfo::classifyReturnType(), PNaClABIInfo::classifyReturnType(), clang::Sema::CodeCompleteObjCMethodDecl(), clang::interp::ByteCodeEmitter::compileFunc(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::deduceOpenCLAddressSpace(), clang::Sema::DefaultLvalueConversion(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), clang::Sema::DiagnoseUnusedExprResult(), emitPointerArithmetic(), clang::ento::StoreManager::evalBaseToDerived(), clang::ento::ExprEngine::evalCall(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateBooleanTypeTrait(), evaluateCDTSize(), EvaluateLValue(), EvaluateUnaryTypeTrait(), EvaluateVoid(), clang::Sema::FindCompositePointerType(), formatBlockPlaceholder(), generateDiagnosticsForCallLike(), getAArch64MTV(), GetExprRange(), GetFullTypeForDeclarator(), getNDSWDS(), getOpenCLKernelParameterType(), clang::ento::SMTConstraintManager::getSymVal(), handleGlobalAttr(), clang::Sema::handlerCanCatch(), HandleSizeof(), handleSwiftAsyncAttr(), handleSYCLKernelAttr(), handleWarnUnusedResult(), IgnoreCommaOperand(), clang::Sema::IgnoredValueConversions(), isCARCBridgableType(), isDispatchBlock(), isIncompleteType(), isLiteralType(), clang::Expr::isNullPointerConstant(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), clang::ento::cocoa::isRefType(), isUnitTest(), clang::Expr::isUnusedResultAWarning(), clang::ento::SymExpr::isValidTypeForSymbol(), clang::Sema::isValidVarArgType(), isVoidPointerToNonConst(), IsVoidStarType(), clang::analyze_format_string::ArgType::matchesType(), clang::APValue::printPretty(), clang::Sema::RequireLiteralType(), clang::consumed::ConsumedAnalyzer::run(), shouldBeModeledWithNoOp(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::Sema::SubstParmVarDecl(), clang::CodeGen::ConstantEmitter::tryEmitPrivate(), tryGenerateSpecializedMessageSend(), TryStaticCast(), clang::interp::ByteCodeExprGen< Emitter >::visit(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitBinaryOperator(), clang::interp::ByteCodeExprGen< Emitter >::VisitBuiltinCallExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitCallExpr(), clang::interp::ByteCodeExprGen< Emitter >::VisitCXXScalarValueInitExpr(), clang::interp::ByteCodeExprGen< Emitter >::visitExpr(), clang::interp::ByteCodeStmtGen< Emitter >::visitFunc(), clang::interp::ByteCodeExprGen< Emitter >::VisitUnaryExprOrTypeTraitExpr(), and warnAboutAmbiguousFunction().
bool Type::isWebAssemblyExternrefType | ( | ) | const |
Check if this is a WebAssembly Externref Type.
Definition at line 2430 of file Type.cpp.
Referenced by clang::QualType::isWebAssemblyExternrefType().
bool Type::isWebAssemblyTableType | ( | ) | const |
Returns true if this is a WebAssembly table type: either an array of reference types, or a pointer to a reference type (which can only be created by array to pointer decay).
Definition at line 2436 of file Type.cpp.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildFunctionType(), clang::Sema::BuildPointerType(), clang::Sema::BuildReferenceType(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckParmsForFunctionDef(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CXXCheckConditionalOperands(), and diagnoseTautologicalComparison().
bool Type::isWideCharType | ( | ) | const |
Definition at line 2078 of file Type.cpp.
Referenced by BuildExpressionFromIntegralTemplateArgumentValue(), clang::Sema::BuiltinChangeSignedness(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), getScalarZeroExpressionForType(), printIntegral(), and TryPrintAsStringLiteral().
|
inlineprotected |
|
friend |
|
friend |
|
friend |
|
friend |
union { ... } clang::Type::@120 |
ArrayTypeBitfields clang::Type::ArrayTypeBits |
Definition at line 2024 of file Type.h.
Referenced by clang::ArrayType::ArrayType().
AttributedTypeBitfields clang::Type::AttributedTypeBits |
AutoTypeBitfields clang::Type::AutoTypeBits |
BuiltinTypeBitfields clang::Type::BuiltinTypeBits |
ConstantArrayTypeBitfields clang::Type::ConstantArrayTypeBits |
CountAttributedTypeBitfields clang::Type::CountAttributedTypeBits |
DependentTemplateSpecializationTypeBitfields clang::Type::DependentTemplateSpecializationTypeBits |
ElaboratedTypeBitfields clang::Type::ElaboratedTypeBits |
FunctionTypeBitfields clang::Type::FunctionTypeBits |
ObjCObjectTypeBitfields clang::Type::ObjCObjectTypeBits |
Definition at line 2033 of file Type.h.
Referenced by clang::ObjCObjectType::isSpecialized(), and clang::ObjCObjectType::ObjCObjectType().
PackExpansionTypeBitfields clang::Type::PackExpansionTypeBits |
ReferenceTypeBitfields clang::Type::ReferenceTypeBits |
SubstTemplateTypeParmPackTypeBitfields clang::Type::SubstTemplateTypeParmPackTypeBits |
SubstTemplateTypeParmTypeBitfields clang::Type::SubstTemplateTypeParmTypeBits |
TemplateSpecializationTypeBitfields clang::Type::TemplateSpecializationTypeBits |
TypeBitfields clang::Type::TypeBits |
Definition at line 2023 of file Type.h.
Referenced by clang::TypePropertyCache< Private >::ensure(), clang::TypePropertyCache< Private >::get(), getLinkage(), getTypeClassName(), hasUnnamedOrLocalType(), and isLinkageValid().
TypedefBitfields clang::Type::TypedefBits |
TypeOfBitfields clang::Type::TypeOfBits |
Definition at line 2028 of file Type.h.
Referenced by clang::TypeOfExprType::desugar(), and clang::TypeOfExprType::TypeOfExprType().
TypeWithKeywordBitfields clang::Type::TypeWithKeywordBits |
UsingBitfields clang::Type::UsingBits |
VectorTypeBitfields clang::Type::VectorTypeBits |
Definition at line 2037 of file Type.h.
Referenced by clang::VectorType::VectorType().