clang
3.9.0
|
The base class of the type hierarchy. More...
#include <Type.h>
Classes | |
class | ArrayTypeBitfields |
class | AttributedTypeBitfields |
class | AutoTypeBitfields |
class | BuiltinTypeBitfields |
class | FunctionTypeBitfields |
class | ObjCObjectTypeBitfields |
class | ReferenceTypeBitfields |
class | TypeWithKeywordBitfields |
class | VectorTypeBitfields |
Public Types | |
enum | TypeClass { TagFirst = Record, TagLast = Enum } |
enum | ScalarTypeKind { STK_CPointer, STK_BlockPointer, STK_ObjCObjectPointer, STK_MemberPointer, STK_Bool, STK_Integral, STK_Floating, STK_IntegralComplex, STK_FloatingComplex } |
Public Member Functions | |
TypeClass | getTypeClass () const |
bool | isFromAST () const |
Whether this type comes from an AST file. More... | |
bool | containsUnexpandedParameterPack () const |
Whether this type is or contains an unexpanded parameter pack, used to support C++0x variadic templates. More... | |
bool | isCanonicalUnqualified () const |
Determines if this type would be canonical if it had no further qualification. More... | |
QualType | getLocallyUnqualifiedSingleStepDesugaredType () const |
Pull a single level of sugar off of this locally-unqualified type. More... | |
bool | isIncompleteType (NamedDecl **Def=nullptr) const |
Types are partitioned into 3 broad categories (C99 6.2.5p1): object types, function types, and incomplete types. More... | |
bool | isIncompleteOrObjectType () const |
Return true if this is an incomplete or object type, in other words, not a function type. More... | |
bool | isObjectType () const |
Determine whether this type is an object type. More... | |
bool | isLiteralType (const ASTContext &Ctx) const |
Return true if this is a literal type (C++11 [basic.types]p10) More... | |
bool | isStandardLayoutType () const |
Test if this type is a standard-layout type. More... | |
bool | isBuiltinType () const |
Helper methods to distinguish type categories. More... | |
bool | isSpecificBuiltinType (unsigned K) const |
Test for a particular builtin type. More... | |
bool | isPlaceholderType () const |
Test for a type which does not represent an actual type-system type but is instead used as a placeholder for various convenient purposes within Clang. More... | |
const BuiltinType * | getAsPlaceholderType () const |
bool | isSpecificPlaceholderType (unsigned K) const |
Test for a specific placeholder type. More... | |
bool | isNonOverloadPlaceholderType () const |
Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType. More... | |
bool | isIntegerType () const |
isIntegerType() does not include complex integers (a GCC extension). More... | |
bool | isEnumeralType () const |
bool | isBooleanType () const |
bool | isCharType () const |
bool | isWideCharType () const |
bool | isChar16Type () const |
bool | isChar32Type () const |
bool | isAnyCharacterType () const |
Determine whether this type is any of the built-in character types. More... | |
bool | isIntegralType (const ASTContext &Ctx) const |
Determine whether this type is an integral type. More... | |
bool | isIntegralOrEnumerationType () const |
Determine whether this type is an integral or enumeration type. More... | |
bool | isIntegralOrUnscopedEnumerationType () const |
Determine whether this type is an integral or unscoped enumeration type. More... | |
bool | isRealFloatingType () const |
Floating point categories. More... | |
bool | isComplexType () const |
isComplexType() does not include complex integers (a GCC extension). More... | |
bool | isAnyComplexType () const |
bool | isFloatingType () const |
bool | isHalfType () const |
bool | isRealType () const |
bool | isArithmeticType () const |
bool | isVoidType () const |
bool | isScalarType () const |
bool | isAggregateType () const |
Determines whether the type is a C++ aggregate type or C aggregate or union type. More... | |
bool | isFundamentalType () const |
Tests whether the type is categorized as a fundamental type. More... | |
bool | isCompoundType () const |
Tests whether the type is categorized as a compound type. More... | |
bool | isFunctionType () const |
bool | isFunctionNoProtoType () const |
bool | isFunctionProtoType () const |
bool | isPointerType () const |
bool | isAnyPointerType () const |
bool | isBlockPointerType () const |
bool | isVoidPointerType () const |
bool | isReferenceType () const |
bool | isLValueReferenceType () const |
bool | isRValueReferenceType () const |
bool | isFunctionPointerType () const |
bool | isMemberPointerType () const |
bool | isMemberFunctionPointerType () const |
bool | isMemberDataPointerType () const |
bool | isArrayType () const |
bool | isConstantArrayType () const |
bool | isIncompleteArrayType () const |
bool | isVariableArrayType () const |
bool | isDependentSizedArrayType () const |
bool | isRecordType () const |
bool | isClassType () const |
bool | isStructureType () const |
bool | isObjCBoxableRecordType () const |
bool | isInterfaceType () const |
bool | isStructureOrClassType () const |
bool | isUnionType () const |
bool | isComplexIntegerType () const |
bool | isVectorType () const |
bool | isExtVectorType () const |
bool | isObjCObjectPointerType () const |
bool | isObjCRetainableType () const |
bool | isObjCLifetimeType () const |
Returns true if objects of this type have lifetime semantics under ARC. More... | |
bool | isObjCIndirectLifetimeType () const |
bool | isObjCNSObjectType () const |
bool | isObjCIndependentClassType () const |
bool | isObjCObjectType () const |
bool | isObjCQualifiedInterfaceType () const |
bool | isObjCQualifiedIdType () const |
bool | isObjCQualifiedClassType () const |
bool | isObjCObjectOrInterfaceType () const |
bool | isObjCIdType () const |
bool | isObjCInertUnsafeUnretainedType () const |
Was this type written with the special inert-in-MRC __unsafe_unretained qualifier? More... | |
bool | isObjCIdOrObjectKindOfType (const ASTContext &ctx, const ObjCObjectType *&bound) const |
Whether the type is Objective-C 'id' or a __kindof type of an object type, e.g., __kindof NSView * or __kindof id <NSCopying>. More... | |
bool | isObjCClassType () const |
bool | isObjCClassOrClassKindOfType () const |
Whether the type is Objective-C 'Class' or a __kindof type of an Class type, e.g., __kindof Class <NSCopying>. More... | |
bool | isBlockCompatibleObjCPointerType (ASTContext &ctx) const |
bool | isObjCSelType () const |
bool | isObjCBuiltinType () const |
bool | isObjCARCBridgableType () const |
Determine whether the given type T is a "bridgable" Objective-C type, which is either an Objective-C object pointer type or an. More... | |
bool | isCARCBridgableType () const |
Determine whether the given type T is a "bridgeable" C type. More... | |
bool | isTemplateTypeParmType () const |
bool | isNullPtrType () const |
bool | isAtomicType () const |
bool | isImageType () const |
bool | isSamplerT () const |
bool | isEventT () const |
bool | isClkEventT () const |
bool | isQueueT () const |
bool | isNDRangeT () const |
bool | isReserveIDT () const |
bool | isPipeType () const |
bool | isOpenCLSpecificType () const |
bool | isObjCARCImplicitlyUnretainedType () const |
Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong. More... | |
Qualifiers::ObjCLifetime | getObjCARCImplicitLifetime () const |
Return the implicit lifetime for this type, which must not be dependent. More... | |
ScalarTypeKind | getScalarTypeKind () const |
Given that this is a scalar type, classify it. More... | |
bool | isDependentType () const |
Whether this type is a dependent type, meaning that its definition somehow depends on a template parameter (C++ [temp.dep.type]). More... | |
bool | isInstantiationDependentType () const |
Determine whether this type is an instantiation-dependent type, meaning that the type involves a template parameter (even if the definition does not actually depend on the type substituted for that template parameter). More... | |
bool | isUndeducedType () const |
Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type which has not yet been deduced. More... | |
bool | isVariablyModifiedType () const |
Whether this type is a variably-modified type (C99 6.7.5). More... | |
bool | hasSizedVLAType () const |
Whether this type involves a variable-length array type with a definite size. More... | |
bool | hasUnnamedOrLocalType () const |
Whether this type is or contains a local or unnamed type. More... | |
bool | isOverloadableType () const |
Determines whether this is a type for which one can define an overloaded operator. More... | |
bool | isElaboratedTypeSpecifier () const |
Determine wither this type is a C++ elaborated-type-specifier. More... | |
bool | canDecayToPointerType () const |
Determines whether this type can decay to a pointer type. More... | |
bool | hasPointerRepresentation () const |
Whether this type is represented natively as a pointer. More... | |
bool | hasObjCPointerRepresentation () const |
Whether this type can represent an objective pointer type for the purpose of GC'ability. More... | |
bool | hasIntegerRepresentation () const |
Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector. More... | |
bool | hasSignedIntegerRepresentation () const |
Determine whether this type has an signed integer representation of some sort, e.g., it is an signed integer type or a vector. More... | |
bool | hasUnsignedIntegerRepresentation () const |
Determine whether this type has an unsigned integer representation of some sort, e.g., it is an unsigned integer type or a vector. More... | |
bool | hasFloatingRepresentation () const |
Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof. More... | |
const RecordType * | getAsStructureType () const |
const RecordType * | getAsUnionType () const |
NOTE: getAs*ArrayType are methods on ASTContext. More... | |
const ComplexType * | getAsComplexIntegerType () const |
const ObjCObjectType * | getAsObjCInterfaceType () const |
const ObjCObjectPointerType * | getAsObjCInterfacePointerType () const |
const ObjCObjectPointerType * | getAsObjCQualifiedIdType () const |
const ObjCObjectPointerType * | getAsObjCQualifiedClassType () const |
const ObjCObjectType * | getAsObjCQualifiedInterfaceType () const |
CXXRecordDecl * | getAsCXXRecordDecl () const |
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization. More... | |
TagDecl * | getAsTagDecl () const |
Retrieves the TagDecl that this type refers to, either because the type is a TagType or because it is the injected-class-name type of a class template or class template partial specialization. More... | |
const CXXRecordDecl * | getPointeeCXXRecordDecl () const |
If this is a pointer or reference to a RecordType, return the CXXRecordDecl that that type refers to. More... | |
AutoType * | getContainedAutoType () const |
Get the AutoType whose type will be deduced for a variable with an initializer of this type. More... | |
template<typename T > | |
const T * | getAs () const |
Member-template getAs<specific type>'. More... | |
const ArrayType * | getAsArrayTypeUnsafe () const |
A variant of getAs<> for array types which silently discards qualifiers from the outermost type. More... | |
template<typename T > | |
const T * | castAs () const |
Member-template castAs<specific type>. More... | |
const ArrayType * | castAsArrayTypeUnsafe () const |
A variant of castAs<> for array type which silently discards qualifiers from the outermost type. More... | |
const Type * | getBaseElementTypeUnsafe () const |
Get the base element type of this type, potentially discarding type qualifiers. More... | |
const Type * | getArrayElementTypeNoTypeQual () const |
If this is an array type, return the element type of the array, potentially with type qualifiers missing. More... | |
const Type * | getPointeeOrArrayElementType () const |
If this is a pointer type, return the pointee type. More... | |
QualType | getPointeeType () const |
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee. More... | |
const Type * | getUnqualifiedDesugaredType () const |
Return the specified type with any "sugar" removed from the type, removing any typedefs, typeofs, etc., as well as any qualifiers. More... | |
bool | isPromotableIntegerType () const |
More type predicates useful for type checking/promotion. More... | |
bool | isSignedIntegerType () const |
Return true if this is an integer type that is signed, according to C99 6.2.5p4 [char, signed char, short, int, long..], or an enum decl which has a signed representation. More... | |
bool | isUnsignedIntegerType () const |
Return true if this is an integer type that is unsigned, according to C99 6.2.5p6 [which returns true for _Bool], or an enum decl which has an unsigned representation. More... | |
bool | isSignedIntegerOrEnumerationType () const |
Determines whether this is an integer type that is signed or an enumeration types whose underlying type is a signed integer type. More... | |
bool | isUnsignedIntegerOrEnumerationType () const |
Determines whether this is an integer type that is unsigned or an enumeration types whose underlying type is a unsigned integer type. More... | |
bool | isConstantSizeType () const |
Return true if this is not a variable sized type, according to the rules of C99 6.7.5p3. More... | |
bool | isSpecifierType () const |
Returns true if this type can be represented by some set of type specifiers. More... | |
Linkage | getLinkage () const |
Determine the linkage of this type. More... | |
Visibility | getVisibility () const |
Determine the visibility of this type. More... | |
bool | isVisibilityExplicit () const |
Return true if the visibility was explicitly set is the code. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determine the linkage and visibility of this type. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. More... | |
Optional< NullabilityKind > | getNullability (const ASTContext &context) const |
Determine the nullability of the given type. More... | |
bool | canHaveNullability () const |
Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type or a dependent type that could instantiate to any kind of pointer type. More... | |
Optional< ArrayRef< QualType > > | getObjCSubstitutions (const DeclContext *dc) const |
Retrieve the set of substitutions required when accessing a member of the Objective-C receiver type that is declared in the given context. More... | |
bool | acceptsObjCTypeParams () const |
Determines if this is an ObjC interface type that may accept type parameters. More... | |
const char * | getTypeClassName () const |
QualType | getCanonicalTypeInternal () const |
CanQualType | getCanonicalTypeUnqualified () const |
void | dump () const |
template<> | |
const TypedefType * | getAs () const |
This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type. More... | |
template<> | |
const TemplateSpecializationType * | getAs () const |
This will check for a TemplateSpecializationType by removing any existing sugar until it reaches a TemplateSpecializationType or a non-sugared type. More... | |
template<> | |
const AttributedType * | getAs () const |
This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type. More... | |
Protected Member Functions | |
Type * | this_ () |
Type (TypeClass tc, QualType canon, bool Dependent, bool InstantiationDependent, bool VariablyModified, bool ContainsUnexpandedParameterPack) | |
void | setDependent (bool D=true) |
void | setInstantiationDependent (bool D=true) |
void | setVariablyModified (bool VM=true) |
void | setContainsUnexpandedParameterPack (bool PP=true) |
Friends | |
template<class T > | |
class | TypePropertyCache |
class | ASTContext |
class | ASTReader |
class | ASTWriter |
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 1502 of file Type.h.
References clang::NoLinkage, and TypeBits.
Referenced by fillInlineAsmTypeInfo().
bool Type::acceptsObjCTypeParams | ( | ) | const |
Determines if this is an ObjC interface type that may accept type parameters.
Definition at line 1365 of file Type.cpp.
References getAsObjCInterfaceType(), and ID.
|
inline |
Determines whether this type can decay to a pointer type.
Definition at line 5761 of file Type.h.
References isArrayType(), and isFunctionType().
bool Type::canHaveNullability | ( | ) | const |
Determine whether the given type can have a nullability specifier applied to it, i.e., if it is any kind of pointer type or a dependent type that could instantiate to any kind of pointer type.
Definition at line 3499 of file Type.cpp.
References clang::Auto, clang::TemplateName::getAsTemplateDecl(), getCanonicalTypeInternal(), getKind(), clang::getTemplateName(), getTypeClass(), and clang::QualType::getTypePtr().
Referenced by clang::Sema::checkNullabilityTypeSpecifier(), GetFullTypeForDeclarator(), and processTypeAttrs().
const T * clang::Type::castAs | ( | ) | const |
Member-template castAs<specific type>.
Look through sugar for the underlying instance of <specific type>.
This method has the same relationship to getAs<T> as cast<T> has to dyn_cast<T>; which is to say, the underlying type must have the intended type, and this method will never return null.
Definition at line 5849 of file Type.h.
References getUnqualifiedDesugaredType().
Referenced by clang::Sema::ActOnClassPropertyRefExpr(), clang::Sema::ActOnFunctionDeclarator(), addInstantiatedParametersToScope(), clang::Sema::adjustCCAndNoReturn(), clang::ASTContext::adjustDeducedFunctionResultType(), adjustFunctionTypeForInstantiation(), applyObjCProtocolQualifiers(), clang::ASTContext::areCommonBaseCompatible(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildResolvedCallExpr(), clang::ASTContext::canAssignObjCInterfaces(), clang::CapturedStmt::Capture::Capture(), checkArithmeticOnObjCPointer(), clang::Sema::CheckCompareOperands(), checkConditionalPointerCompatibility(), CheckConstantExpression(), CheckConstexprCtorInitializer(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExplicitlyDefaultedMemberExceptionSpec(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::checkInitMethod(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckMain(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMSVCRTEntryPoint(), checkOpenCLVectorShift(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CodeCompleteCase(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CGDebugInfo::completeClassData(), clang::CodeGen::CGDebugInfo::completeType(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::PredefinedExpr::ComputeName(), clang::ObjCObjectType::computeSuperClassTypeSlow(), convertToComplexValue(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitCopyConstructor(), clang::Sema::DefineImplicitDefaultConstructor(), clang::Sema::DefineImplicitDestructor(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineImplicitMoveConstructor(), clang::Sema::DefineInheritingConstructor(), DiagnoseCallingConvCast(), clang::Sema::DiagnoseSentinelCalls(), clang::CodeGen::CodeGenFunction::emitAddrOfImagComponent(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), emitCombinerOrInitializer(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), emitDestructorsFunction(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CodeGenModule::EmitNullConstant(), emitPointerArithmetic(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitTaskDupFunction(), clang::CodeGen::emitTaskOutlinedFunction(), emitWritebackArg(), EncodeBitField(), EvalAndBitcastToAPInt(), clang::Sema::EvaluateImplicitExceptionSpec(), clang::CXXRecordDecl::FindBaseClass(), clang::Expr::findBoundMemberType(), clang::Sema::FindCompositeObjCPointerType(), FindDesignatorMismatch(), clang::Sema::findInheritingConstructor(), clang::CXXRecordDecl::FindNestedNameSpecifierMember(), clang::CXXRecordDecl::FindOMPReductionMember(), clang::CXXRecordDecl::FindOrdinaryMember(), findSubobject(), clang::CXXRecordDecl::FindTagMember(), clang::CXXRecordDecl::FindVirtualBaseClass(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::Expr::getBestDynamicClassType(), getCallingConvMangling(), clang::CallExpr::getCallReturnType(), getCXXRecord(), GetFullTypeForDeclarator(), clang::BlockExpr::getFunctionType(), clang::ObjCObjectPointerType::getInterfaceType(), clang::ObjCObjectPointerType::getObjectType(), clang::ReferenceType::getPointeeType(), clang::ObjCInterfaceDecl::getSuperClassType(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), handleSentinelAttr(), hasDeducedReturnType(), clang::Sema::InstantiateExceptionSpec(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::CXXMethodDecl::isConst(), isDesignatorAtObjectEnd(), clang::Sema::IsOpenMPCapturedByRef(), clang::CodeGen::CodeGenModule::isPaddedAtomicType(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), IsStructurallyEquivalent(), clang::CXXMethodDecl::isVolatile(), loadToBegin(), clang::Sema::LookupMethodInObjectType(), LookupMethodInReceiverType(), clang::Sema::LookupTemplateName(), clang::MangleContext::mangleName(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::Sema::MergeFunctionDecl(), ObjCEncodingForEnumType(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareScalarCast(), clang::Sema::prepareVectorSplat(), clang::Sema::ResolveExceptionSpec(), clang::CXXNewExpr::shouldNullCheckAllocation(), clang::Sema::startLambdaDefinition(), and clang::ObjCObjectPointerType::stripObjCKindOfTypeAndQuals().
|
inline |
A variant of castAs<> for array type which silently discards qualifiers from the outermost type.
Definition at line 5858 of file Type.h.
References getUnqualifiedDesugaredType().
Referenced by CheckConstantExpression(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), FindDesignatorMismatch(), getArrayIndexingBound(), clang::OMPArraySectionExpr::getBaseOriginalType(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), and isFlexibleArrayMemberExpr().
|
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 1553 of file Type.h.
References TypeBits.
Referenced by clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::BuildBaseInitializer(), buildDeclareReductionRef(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckPackExpansion(), clang::NestedNameSpecifier::containsUnexpandedParameterPack(), clang::DeclarationNameInfo::containsUnexpandedParameterPack(), clang::Sema::containsUnexpandedParameterPacks(), clang::Sema::DiagnoseUnexpandedParameterPack(), GetFullTypeForDeclarator(), clang::ASTContext::getPackExpansionType(), clang::Sema::SubstParmVarDecl(), and clang::TreeTransform< Derived >::TransformFunctionTypeParams().
LLVM_DUMP_METHOD void Type::dump | ( | ) | const |
Definition at line 2459 of file ASTDumper.cpp.
References clang::QualType::dump().
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 191 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by evenFlexibleArraySize().
const T * clang::Type::getAs | ( | ) | const |
Member-template getAs<specific type>'.
Look through sugar for an instance of <specific type>. This scheme will eventually replace the specific getAsXXXX methods above.
There are some specializations of this member template listed immediately following this class.
Definition at line 5818 of file Type.h.
References getUnqualifiedDesugaredType().
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::actOnObjCTypeArgsOrProtocolQualifiers(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnSuperClassOfClassInterface(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTypedefedProtocols(), clang::Sema::ActOnUninitializedDecl(), addBlockPointerConversion(), AddClassMessageCompletions(), clang::Sema::AddConversionCandidate(), AddFunctionParameterChunks(), addFunctionPointerConversion(), AddFunctionTypeQualsToCompletionString(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddMemberOperatorCandidates(), clang::Sema::AddMethodCandidate(), clang::Sema::AddModeAttr(), AddObjCKeyValueCompletions(), clang::Sema::AddOverloadCandidate(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), AddTypedNameChunk(), clang::Sema::adjustCCAndNoReturn(), AdjustFunctionParmAndArgTypesForDeduction(), appendFunctionType(), appendType(), applyObjCTypeArgs(), clang::ASTContext::areComparableObjCPointerTypes(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::AttachBaseSpecifiers(), clang::ASTDeclReader::attachPreviousDeclImpl(), BitsContainNoUserData(), breakDownVectorType(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::Sema::BuildArrayType(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildExpressionFromIntegralTemplateArgument(), BuildFieldReferenceExpr(), clang::Sema::BuildMemberReferenceExpr(), buildMemcpyForAssignmentOp(), clang::Sema::BuildObjCArrayLiteral(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), buildSingleCopyAssignRecursively(), clang::Sema::BuildTypeofExprType(), clang::Sema::BuildUnaryTransformType(), clang::Sema::BuildVectorLiteral(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::arcmt::trans::canApplyWeak(), canAssignObjCObjectTypes(), clang::canCalleeThrow(), clang::Sema::canThrow(), clang::canTypeidThrow(), CanUseSingleInheritance(), captureInBlock(), captureInLambda(), clang::ento::StoreManager::CastRetrievedVal(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBaseClassAccess(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), CheckConstantExpression(), CheckConstexprParameterTypes(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckDistantExceptionSpec(), checkEnumComparison(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), CheckExtVectorComponent(), CheckFallThroughForBody(), clang::Sema::CheckFieldDecl(), checkFormatStringExpr(), clang::Sema::CheckFriendTypeDecl(), CheckIncrementDecrementOperand(), CheckIndirectionOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), checkLiteralOperatorTemplateParameterList(), clang::Sema::CheckMain(), CheckMapClauseExpressionBase(), clang::Sema::CheckMemberPointerConversion(), clang::Sema::CheckMessageArgumentTypes(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckNonNullArguments(), clang::Sema::CheckNontrivialField(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCConversion(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), clang::Sema::CheckObjCForCollectionOperand(), clang::Sema::checkObjCKindOfType(), checkObjCPointerTypesForAssignment(), checkOpenCLBlockArgs(), checkOpenCLConditionVector(), checkOpenCLEnqueueVariadicArgs(), checkOpenCLPipePacketType(), checkOpenCLVectorShift(), CheckOperatorNewDeleteTypes(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckParmsForFunctionDef(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), checkQualifiedFunction(), checkRecordTypeForCapability(), CheckRelatedResultTypeCompatibility(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), checkTypedefTypeForCapability(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckUnresolvedMemberAccess(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorOperands(), checkVectorResult(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyTypeForARCConversion(), ClassifyUnnamed(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CodeCompleteObjCSuperMessage(), CollectVRQualifiers(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), clang::Sema::CompleteConstructorCall(), CompleteNonViableCandidate(), clang::Sema::computeDeclContext(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::Sema::ComputeDefaultedDefaultCtorExceptionSpec(), clang::Sema::ComputeDefaultedDtorExceptionSpec(), clang::Sema::ComputeDefaultedMoveAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedMoveCtorExceptionSpec(), clang::PredefinedExpr::ComputeName(), clang::CodeGen::CodeGenModule::computeNonVirtualBaseClassOffset(), ComputeVMIClassTypeInfoFlags(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::ConversionToObjCStringLiteralCheck(), ConvertDeclSpecToType(), clang::CodeGen::CodeGenTypes::ConvertFunctionType(), ConvertTypeToDiagnosticString(), CopyObject(), create_dispatch_once(), create_OSAtomicCompareAndSwap(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), CreateNewFunctionDecl(), clang::Sema::CreatePropertyDecl(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), CXXRecordMembersNamed(), clang::Sema::DeclClonePragmaWeak(), decomposeTypeForEH(), clang::Sema::DeduceAutoType(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultArgumentPromotion(), defaultedSpecialMemberIsConstexpr(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), Desugar(), clang::InitializationSequence::Diagnose(), DiagnoseArityMismatch(), clang::Sema::DiagnoseAssignmentEnum(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseAvailabilityOfDecl(), diagnoseBadCast(), DiagnoseBadConversion(), DiagnoseBadTarget(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), diagnoseListInit(), DiagnoseNarrowingInInitList(), clang::Sema::DiagnosePropertyAccessorMismatch(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSentinelCalls(), doesUsualArrayDeleteWantSize(), doRewriteToUTF8StringBoxedExpressionHelper(), dumpBasePath(), DumpRecordLayout(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenModule::EmitConstantValue(), clang::CodeGen::CodeGenFunction::EmitCUDADevicePrintfCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitEndEHSpec(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), EmitFunctionDeclLValue(), EmitGlobalVarDeclLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenModule::EmitNullConstant(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), EmitObjectDelete(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CGDebugInfo::EmitUsingDecl(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheckForCast(), EncodeBitField(), clang::ento::ExprEngine::evalLoad(), EvaluateBinaryTypeTrait(), EvaluateBuiltinClassifyType(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), EvaluateUnaryTypeTrait(), evenFlexibleArraySize(), clang::Sema::ExtractUnqualifiedFunctionType(), FieldHasTrivialDestructorBody(), clang::Sema::FindAllocationFunctions(), clang::Sema::FindCompositeObjCPointerType(), clang::Sema::FindCompositePointerType(), FindConversionForRefInit(), findEnumForBlockReturn(), clang::Sema::FindInstantiatedDecl(), findMethodDecl(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), GenOpenCLArgMetadata(), getAbsoluteValueArgumentType(), clang::CodeGen::CodeGenFunction::GetAddrOfBlockDecl(), GetAlignOfType(), clang::CXXNewExpr::getAllocatedType(), getArrayIndexingBound(), GetAssumedMessageSendExprType(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), clang::Sema::getCallingConvAttributedType(), clang::FunctionDecl::getCallResultType(), clang::CallExpr::getCallReturnType(), clang::ASTContext::getCanonicalNestedNameSpecifier(), clang::ASTContext::getCommentForDecl(), clang::CXXConversionDecl::getConversionType(), clang::ASTContext::getCorrespondingUnsignedType(), getCXXRecord(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ASTContext::getDeclAlign(), clang::ento::CallEvent::getDeclaredResultType(), clang::getDeclUsageType(), clang::TemplateTypeParmDecl::getDepth(), clang::CXXDeleteExpr::getDestroyedType(), clang::CFGImplicitDtor::getDestructorDecl(), clang::Sema::getDestructorName(), getFloatingRank(), clang::ASTContext::getFloatTypeSemantics(), GetFullTypeForDeclarator(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::getFunctionExtInfo(), clang::CodeCompleteConsumer::OverloadCandidate::getFunctionType(), clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable(), GetGCAttrTypeForType(), clang::TemplateTypeParmDecl::getIndex(), clang::ASTContext::getInnerObjCOwnership(), clang::ObjCObjectType::getInterface(), clang::ASTContext::getIntWidth(), clang::ASTContext::getLegacyIntegralTypeEncoding(), clang::ento::TypedValueRegion::getLocationType(), clang::ASTContext::getLValueReferenceType(), getMostInformativeDerivedClassImpl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::StandardConversionSequence::getNarrowingKind(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), clang::QualType::getNonReferenceType(), clang::NSAPI::GetNSIntegralKind(), clang::NSAPI::getNSNumberFactoryMethodKind(), getNullabilityAnnotation(), GetNumNonZeroBytesInInit(), clang::OverloadCandidate::getNumParams(), clang::FunctionDecl::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), clang::ASTContext::getObjCObjectType(), clang::TemplateArgument::getPackExpansionPattern(), getPointeeCXXRecordDecl(), clang::ASTContext::getPreferredTypeAlign(), clang::ASTContext::getPromotedIntegerType(), getRangeForType(), clang::ObjCMessageExpr::getReceiverInterface(), getRecordArgABI(), getRecordType(), clang::CXXMethodDecl::getRefQualifier(), clang::FunctionDecl::getReturnType(), GetReturnType(), clang::ASTContext::getRValueReferenceType(), clang::Sema::GetSignedVectorType(), clang::CodeGen::CodeGenTBAA::getTBAAStructTypeInfo(), getTypeExpansion(), clang::ASTContext::getTypeInfoDataSizeInChars(), clang::CXXMethodDecl::getTypeQualifiers(), clang::GetUnderlyingFunction(), clang::FunctionDecl::getUnusedResultAttr(), clang::Expr::getValueKindForType(), clang::ento::MemRegionManager::getVarRegion(), HandleBaseToDerivedCast(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleInitPriorityAttr(), HandleMemberPointerAccess(), handleObjCOwnershipTypeAttr(), HandleOpenCLAccessAttr(), clang::Sema::HandlePropertyInClassExtension(), handleSentinelAttr(), hasBooleanRepresentation(), hasDefaultCXXMethodCC(), HasExplicitOwnershipAttr(), clang::hasImplicitExceptionSpec(), hasIsEqualMethod(), HasNoThrowOperator(), clang::CodeGen::CodeGenFunction::hasVolatileMember(), hasWeakMember(), clang::Sema::IgnoredValueConversions(), clang::Sema::inferCUDATargetForImplicitSpecialMember(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::ASTReader::InitializeContext(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), is32Or64BitBasicType(), IsAcceptableNonMemberOperatorCandidate(), clang::CXXDynamicCastExpr::isAlwaysNull(), isAtLeastAsSpecializedAs(), clang::Sema::IsBlockPointerConversion(), isBooleanType(), IsCFError(), isCFStringType(), isCharSpecialization(), clang::ento::cocoa::isCocoaObjectRef(), clang::Sema::IsComplexPromotion(), clang::Expr::isConstantInitializer(), IsConstructorDelegationValid(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::QualType::isCXX11PODType(), IsDerivedFromInclusive(), isDispatchBlock(), isEmptyField(), isEmptyRecord(), isFirstArgumentCompatibleWithType(), clang::Sema::IsFloatingPointPromotion(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), isInitializerOfDynamicClass(), clang::Sema::isInitListConstructor(), isIntegerLikeType(), clang::Sema::IsIntegralPromotion(), isKnownNonNilCollectionType(), isLiteralType(), IsLLVMStringRef(), clang::Sema::IsMemberPointerConversion(), clang::FunctionDecl::isNoReturn(), IsNSError(), isNSStringType(), clang::Expr::isNullPointerConstant(), isObjCIdOrObjectKindOfType(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::TemplateTypeParmDecl::isParameterPack(), IsPartOfAST(), isPermittedNeonBaseType(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToRecordType(), isRecordWithSSEVectorType(), clang::ento::cocoa::isRefType(), isSafeForCXXConstantCapture(), isSafeToConvert(), isScopedEnumerationType(), isSimpleTemplateIdType(), isSingleElementStruct(), IsSmallVector(), isSSEVectorType(), IsStandardConversion(), isStandardLayoutType(), clang::Sema::isStdInitializerList(), IsStdString(), IsStdVector(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), isTBAAPathStruct(), isTemplateArgumentTemplateParameter(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), IsUserDefinedConversion(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), isVarDeclStrongDefinition(), isVariableCapturable(), isVoidPointerToNonConst(), IsVoidStarType(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), loadToBegin(), LookupAnyMember(), LookupDirect(), clang::Sema::LookupInlineAsmField(), clang::Sema::LookupInlineAsmVarDeclField(), LookupMemberExpr(), LookupMethodInReceiverType(), LookupVisibleDecls(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::Sema::MarkFunctionReferenced(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), maybeAdjustInterfaceForSubscriptingCheck(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::MergeTypedefNameDecl(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclExceptionSpecs(), NoteIndirectBases(), NoteSurrogateCandidate(), ObjCEnumerationCollection(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), clang::ASTContext::ObjCQualifiedClassTypesAreCompatible(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), OpenCLConvertScalarsToVectors(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformMoveOrCopyInitialization(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), PopulateKeysForFields(), clang::DeclarationName::print(), print_elem(), clang::printCXXConstructorDestructorName(), PrintFloatingLiteral(), printIntegral(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::processSwitch(), PropertyMemoryAttribute(), pushTemporaryCleanup(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), clang::Sema::RequireCompleteDeclContext(), clang::Sema::RequireCompleteType(), clang::Sema::RequireLiteralType(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFP2Ret(), clang::CodeGen::CodeGenModule::ReturnTypeUsesFPRet(), rewriteToNumericBoxedExpression(), SemaBuiltinOverflow(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), SemaOpenCLBuiltinEnqueueKernel(), clang::CXXRecordDecl::setBases(), clang::ASTContext::setCFConstantStringType(), clang::Sema::SetCtorInitializers(), setObjCGCLValueClass(), ShouldDiagnoseUnusedDecl(), shouldNotPrintDirectly(), ShouldTryAgainWithRedefinitionType(), clang::Expr::skipRValueSubobjectAdjustments(), clang::Sema::SpecialMemberIsTrivial(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::CodeGen::CodeGenFunction::StartThunk(), clang::QualType::stripObjCKindOfType(), clang::ObjCObjectType::stripObjCKindOfTypeAndQuals(), clang::Sema::SubstituteExplicitTemplateArguments(), threadSafetyCheckIsPointer(), clang::TreeTransform< Derived >::TransformExceptionSpec(), clang::TreeTransform< Derived >::TransformReferenceType(), tryAtomicConversion(), TryClassUnification(), TryConstCast(), TryConstructorInitialization(), clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(), clang::Sema::tryExprAsCall(), tryGetFunctionProtoType(), TryImplicitConversion(), TryListConversion(), TryListInitialization(), TryLValueToRValueCast(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitialization(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), TryReinterpretCast(), TryStaticCast(), TryStaticMemberPointerUpcast(), TryStaticPointerDowncast(), TryStaticReferenceDowncast(), TryUserDefinedConversion(), TryValueInitialization(), TypeIsInnerPointer(), unsupportedTypeConversion(), UnwrapDissimilarPointerTypes(), clang::ASTContext::UnwrapSimilarPointerTypes(), clang::Sema::UsualArithmeticConversions(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ento::ExprEngine::VisitOffsetOfExpr(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
const TypedefType * Type::getAs | ( | ) | const |
This will check for a TypedefType by removing any existing sugar until it reaches a TypedefType or a non-sugared type.
const TemplateSpecializationType * Type::getAs | ( | ) | const |
const AttributedType * Type::getAs | ( | ) | const |
This will check for an AttributedType by removing any existing sugar until it reaches an AttributedType or a non-sugared type.
|
inline |
A variant of getAs<> for array types which silently discards qualifiers from the outermost type.
Definition at line 5835 of file Type.h.
References getUnqualifiedDesugaredType().
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), appendType(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildObjCEncodeExpression(), CheckStringInit(), classifyTypeForARCConversion(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::ASTContext::getBaseElementType(), getBaseElementTypeUnsafe(), clang::ASTContext::getConstantArrayElementCount(), getTypeString(), hasSizedVLAType(), isObjCLifetimeType(), and clang::InitListExpr::isStringLiteralInit().
const ComplexType * Type::getAsComplexIntegerType | ( | ) | const |
Definition at line 408 of file Type.cpp.
Referenced by handleComplexIntConversion(), and isComplexIntegerType().
CXXRecordDecl * Type::getAsCXXRecordDecl | ( | ) | const |
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or because it is the injected-class-name type of a class template or class template partial specialization.
Definition at line 1528 of file Type.cpp.
References getAsTagDecl().
Referenced by clang::Sema::ActOnCXXTryBlock(), clang::Sema::ActOnDecltypeExpression(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildCXXConstructExpr(), BuildNonArrayForRange(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCompleteVariableDeclaration(), CheckConstexprCtorInitializer(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckEquivalentExceptionSpec(), checkForConsumableClass(), checkMoveAssignmentForRepeatedMove(), checkTrivialClassMembers(), checkTrivialSubobjectCall(), CheckUnaryTypeTraitTypeCompleteness(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteConstructor(), computeBlockInfo(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::Sema::ComputeDefaultedMoveAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedMoveCtorExceptionSpec(), clang::TypeName::createNestedNameSpecifierForScopeOf(), diagnoseBadCast(), clang::Sema::DiagnoseEmptyLookup(), DiagnoseReinterpretUpDownCast(), DiagnoseUninitializedReference(), diagnoseUnreadableFields(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXConstructLValue(), clang::CodeGen::CodeGenFunction::EmitCXXMemberDataPointerAddress(), EmitDeclDestroy(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::emitTargetGlobalVariable(), clang::ento::StoreManager::evalDerivedToBase(), clang::ento::StoreManager::evalDynamicCast(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Sema::FinalizeDeclaration(), findSubobject(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::ento::MemRegion::getAsOffset(), clang::NestedNameSpecifier::getAsRecordDecl(), clang::ASTContext::getCommentForDecl(), getContainedDynamicClass(), clang::CFGImplicitDtor::getDestructorDecl(), clang::CXXInstanceCall::getExtraInvalidatedValues(), clang::Sema::getFixItZeroInitializerForType(), clang::TypeName::getFullyQualifiedNestedNameSpecifier(), clang::LambdaExpr::getLambdaClass(), clang::CodeGen::CGCXXABI::getMemberPointerAdjustment(), clang::MemberPointerType::getMostRecentCXXRecordDecl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), getOffsetOfFullPath(), clang::CXXMemberCallExpr::getRecordDecl(), clang::BlockCall::getRuntimeDefinition(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::FunctionDecl::getUnusedResultAttr(), getUuidAttrOfType(), HandleBaseToDerivedCast(), HandleLValueBase(), HandleLValueBasePath(), HandleMemberPointerAccess(), hasNontrivialDestruction(), InitializationHasSideEffects(), clang::Sema::isAbstractType(), isAutoCastType(), isConsumableType(), clang::Sema::IsDerivedFrom(), isInAllocaArgument(), clang::CXXTypeidExpr::isPotentiallyEvaluated(), isReadByLvalueToRvalueConversion(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::isThisOutsideMemberFunctionBody(), clang::CodeGen::CodeGenModule::isTypeConstant(), isTypeValid(), clang::Expr::isUnusedResultAWarning(), isValidBaseClass(), clang::Sema::isValidVarArgType(), LeastDerivedClassWithSameLayout(), lookupPromiseType(), mapConsumableAttrState(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), PerformReturnAdjustment(), print_elem(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::CodeGen::CodeGenFunction::PushDestructorCleanup(), recoverFromMSUnqualifiedLookup(), regionMatchesCXXRecordType(), clang::Sema::RequireNonAbstractType(), clang::CXXRecordDecl::setBases(), treatUnusedNewEscaped(), TryListInitialization(), usesMultipleInheritanceModel(), clang::ento::ExprEngine::VisitCXXDestructor(), and warnAboutAmbiguousFunction().
const ObjCObjectPointerType * Type::getAsObjCInterfacePointerType | ( | ) | const |
Definition at line 1505 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::Sema::HandleExprPropertyRefExpr(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), and clang::Sema::SelectorsForTypoCorrection().
const ObjCObjectType * Type::getAsObjCInterfaceType | ( | ) | const |
Definition at line 1498 of file Type.cpp.
Referenced by acceptsObjCTypeParams(), and getBaseMessageSendResultType().
const ObjCObjectPointerType * Type::getAsObjCQualifiedClassType | ( | ) | const |
Definition at line 1488 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage().
const ObjCObjectPointerType * Type::getAsObjCQualifiedIdType | ( | ) | const |
Definition at line 1478 of file Type.cpp.
Referenced by clang::Sema::BuildInstanceMessage(), clang::Sema::CodeCompleteObjCInstanceMessage(), and clang::ASTContext::ObjCQualifiedIdTypesAreCompatible().
const ObjCObjectType * Type::getAsObjCQualifiedInterfaceType | ( | ) | const |
Definition at line 1464 of file Type.cpp.
Referenced by isObjCQualifiedInterfaceType().
|
inline |
Definition at line 5660 of file Type.h.
Referenced by clang::Sema::BuildBinOp(), clang::Sema::BuildUnaryOp(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckPlaceholderExpr(), checkPlaceholderForOverload(), and clang::Sema::DefaultVariadicArgumentPromotion().
const RecordType * Type::getAsStructureType | ( | ) | const |
Definition at line 431 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by appendType(), clang::CodeGen::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 1532 of file Type.cpp.
Referenced by clang::Sema::ActOnTag(), emitDestructorsFunction(), clang::CodeGen::emitDoacrossInit(), EmitNullConstant(), emitProxyTaskFunction(), clang::CodeGen::emitTaskCall(), clang::CodeGen::emitTaskInit(), emitTaskPrivateMappingFunction(), and getAsCXXRecordDecl().
const RecordType * Type::getAsUnionType | ( | ) | const |
NOTE: getAs*ArrayType are methods on ASTContext.
Definition at line 450 of file Type.cpp.
References getUnqualifiedDesugaredType().
Referenced by appendType(), CheckNonNullExpr(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::CodeGen::CodeGenFunction::EnterDtorCleanups(), handleTransparentUnionAttr(), IsTransparentUnionStandardConversion(), clang::Sema::isValidPointerAttrType(), clang::ASTContext::mergeTransparentUnionType(), clang::Sema::ParsedFreeStandingDeclSpec(), and 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 5774 of file Type.h.
References getAsArrayTypeUnsafe(), and clang::ast_matchers::type.
Referenced by clang::Sema::ActOnDecltypeExpression(), clang::Sema::BuildCXXConstructExpr(), buildMemcpyForAssignmentOp(), DiagnoseUninitializedReference(), diagnoseUnreadableFields(), doesUsualArrayDeleteWantSize(), clang::CodeGen::emitTargetGlobalVariable(), getContainedDynamicClass(), getPointeeOrArrayElementType(), clang::ASTContext::getPreferredTypeAlign(), getUuidAttrOfType(), hasNontrivialDestruction(), InitializationHasSideEffects(), clang::QualType::isCXX11PODType(), isLiteralType(), isReadByLvalueToRvalueConversion(), isSafeForCXXConstantCapture(), isStandardLayoutType(), print_elem(), and pushTemporaryCleanup().
|
inline |
Definition at line 2001 of file Type.h.
Referenced by addAssociatedClassesAndNamespaces(), canHaveNullability(), checkOpenCLPipePacketType(), clang::Sema::CheckTemplateIdType(), clang::AutoType::desugar(), clang::desugar(), clang::TypePropertyCache< Private >::ensure(), clang::ASTContext::getCanonicalType(), getCanonicalTypeUnqualified(), getCurrentInstantiationOf(), clang::AutoType::getDeducedType(), getLinkageAndVisibility(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), clang::ASTContext::getObjCGCAttrKind(), clang::SubstTemplateTypeParmType::getReplacementType(), clang::QualType::getSplitUnqualifiedType(), GetThisType(), clang::LocInfoType::getType(), clang::QualType::getUnqualifiedType(), clang::isCurrentInstantiation(), isLinkageValid(), isLiteralType(), isObjCARCImplicitlyUnretainedType(), and isSameQualifier().
|
inline |
Definition at line 200 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(), and GetReturnType().
AutoType * Type::getContainedAutoType | ( | ) | const |
Get the AutoType whose type will be deduced for a variable with an initializer of this type.
This looks through declarators like pointer types, but not through decltype or typedefs.
Definition at line 1595 of file Type.cpp.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::BuildReturnStmt(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DiagnoseUseOfDecl(), GetFullTypeForDeclarator(), clang::Sema::InstantiateFunctionDefinition(), isUndeducedType(), clang::Sema::MergeFunctionDecl(), SpecializeCorrespondingLambdaCallOperatorAndInvoker(), and SubstAutoWithinFunctionReturnType().
Linkage Type::getLinkage | ( | ) | const |
Determine the linkage of this type.
Definition at line 3376 of file Type.cpp.
References clang::TypePropertyCache< Private >::ensure(), and TypeBits.
Referenced by clang::CodeGen::CodeGenModule::CreateMetadataIdentifierForType(), getLinkageAndVisibility(), getLVForClassMember(), getLVForNamespaceScopeDecl(), getLVForType(), and getTypeInfoLinkage().
LinkageInfo Type::getLinkageAndVisibility | ( | ) | const |
Determine the linkage and visibility of this type.
Definition at line 3471 of file Type.cpp.
References computeLinkageInfo(), getCanonicalTypeInternal(), clang::LinkageInfo::getLinkage(), getLinkage(), and isCanonicalUnqualified().
Referenced by getLVForTemplateParameterList(), getLVForType(), getVisibility(), and isVisibilityExplicit().
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 224 of file Type.cpp.
References getTypeClass().
Referenced by clang::SplitQualType::getSingleStepDesugaredType(), and isObjCInertUnsafeUnretainedType().
Optional< NullabilityKind > Type::getNullability | ( | const ASTContext & | context | ) | const |
Determine the nullability of the given type.
Note that nullability is only captured as sugar within the type system, not as part of the canonical type, so nullability will be lost by canonicalization and desugaring.
Definition at line 3480 of file Type.cpp.
References clang::QualType::getSingleStepDesugaredType(), clang::QualType::getTypePtr(), clang::None, and clang::ast_matchers::type.
Referenced by CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckNonNullExpr(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::checkObjCKindOfType(), clang::Sema::diagnoseNullableToNonnullConversion(), getBaseMessageSendResultType(), GetFullTypeForDeclarator(), clang::Sema::getMessageSendResultType(), clang::ASTContext::hasSameNullabilityTypeQualifier(), isNonNullType(), mergeParamDeclTypes(), and mergeTypeNullabilityForRedecl().
Qualifiers::ObjCLifetime Type::getObjCARCImplicitLifetime | ( | ) | const |
Return the implicit lifetime for this type, which must not be dependent.
Definition at line 3663 of file Type.cpp.
References isObjCARCImplicitlyUnretainedType(), clang::Qualifiers::OCL_ExplicitNone, and clang::Qualifiers::OCL_Strong.
Referenced by clang::Sema::BuildCXXNew(), clang::Sema::CheckParameter(), and clang::Sema::inferObjCARCLifetime().
Optional< ArrayRef< QualType > > Type::getObjCSubstitutions | ( | const DeclContext * | dc | ) | const |
Retrieve the set of substitutions required when accessing a member of the Objective-C receiver type that is declared in the given context.
*this
is the type of the object we're operating on, e.g., the receiver for a message send or the base of a property access, and is expected to be of some object or object pointer type.
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 1283 of file Type.cpp.
References clang::ASTContext::getObjCObjectType(), clang::DeclContext::getParentASTContext(), clang::ObjCInterfaceDecl::getTypeParamList(), clang::None, and clang::ASTContext::ObjCBuiltinIdTy.
Referenced by clang::Sema::CheckMessageArgumentTypes(), clang::CodeCompletionResult::CreateCodeCompletionString(), and clang::QualType::substObjCMemberType().
const CXXRecordDecl * Type::getPointeeCXXRecordDecl | ( | ) | const |
If this is a pointer or reference to a RecordType, return the CXXRecordDecl that that type refers to.
If this is not a pointer or reference, or the type being pointed to does not refer to a CXXRecordDecl, returns NULL.
Definition at line 1513 of file Type.cpp.
References getAs(), and getPointeeType().
Referenced by adjustReturnValue(), DiagnoseReinterpretUpDownCast(), clang::ento::StoreManager::evalDerivedToBase(), isSetOnReadPtrType(), and regionMatchesCXXRecordType().
|
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 5781 of file Type.h.
References getBaseElementTypeUnsafe(), getPointeeType(), clang::QualType::getTypePtr(), isAnyPointerType(), isArrayType(), and clang::ast_matchers::type.
Referenced by SemaOpenCLBuiltinEnqueueKernel().
QualType Type::getPointeeType | ( | ) | const |
If this is a pointer, ObjC object pointer, or block pointer, this returns the respective pointee.
Definition at line 415 of file Type.cpp.
References getPointeeType(), and clang::ExtQualsTypeCommonBase::QualType.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddConversionCandidate(), adjustCVQualifiersForCXXThisWithinLambda(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildFieldReferenceExpr(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildResolvedCallExpr(), BuildSimilarlyQualifiedPointerType(), clang::arcmt::trans::canApplyWeak(), clang::canCalleeThrow(), captureInLambda(), captureThis(), clang::ento::StoreManager::castRegion(), castToBase(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), CheckArrow(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalPointerCompatibility(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckDistantExceptionSpec(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), CheckFallThroughForBody(), checkForConsumableClass(), CheckIndirectionOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckMapClauseExpressionBase(), CheckNonNullArguments(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCConversion(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVirtualDtorCall(), ClassifyDiagnostic(), classifyPointerDeclarator(), classifyTypeForARCConversion(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteMemberReferenceExpr(), CollectVRQualifiers(), CompareStandardConversionSequences(), CompleteNonViableCandidate(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CreateBuiltinArraySubscriptExpr(), decomposeTypeForEH(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefineImplicitCopyAssignment(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), clang::Sema::DiagnoseAssignmentResult(), diagnoseBadCast(), DiagnoseCastOfObjCSEL(), DiagnoseDirectIsaAccess(), clang::Sema::DiagnoseSentinelCalls(), diagnoseStringPlusChar(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMemberExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::ento::StoreManager::evalDynamicCast(), clang::Sema::ExtractUnqualifiedFunctionType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), GenOpenCLArgMetadata(), GetAlignOfType(), clang::ento::MemRegion::getAsOffset(), clang::OMPArraySectionExpr::getBaseOriginalType(), GetBaseType(), clang::QualType::getBaseTypeIdentifier(), clang::Expr::getBestDynamicClassType(), clang::CallExpr::getCallReturnType(), getCoreType(), getCXXRecord(), clang::ASTContext::getDeclAlign(), clang::getDeclUsageType(), getDeepPointeeType(), clang::TypeName::getFullyQualifiedType(), clang::getFunctionExtInfo(), clang::ASTContext::getInnerObjCOwnership(), clang::PointerLikeTypeLoc< ObjCObjectPointerTypeLoc, ObjCObjectPointerType >::getInnerType(), clang::CodeGen::CodeGenFunction::getNaturalPointeeTypeAlignment(), clang::QualType::getNonLValueExprType(), clang::QualType::getNonReferenceType(), clang::OverloadCandidate::getNumParams(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCQualType(), getOpenCLKernelParameterType(), getPointeeCXXRecordDecl(), getPointeeOrArrayElementType(), getPointeeType(), clang::CXXMemberCallExpr::getRecordDecl(), getRecordType(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::GetUnderlyingFunction(), getUuidAttrOfType(), HandleBaseToDerivedCast(), clang::consumed::ConsumedStmtVisitor::handleCall(), clang::Sema::HandleFunctionTypeMismatch(), HandleMemberPointerAccess(), handleNSReturnsRetainedAttr(), handleObjCOwnershipTypeAttr(), HasExplicitOwnershipAttr(), InitCatchParam(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::Sema::IsBlockPointerConversion(), isCallback(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::Sema::isInitListConstructor(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::Expr::isNullPointerConstant(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::Sema::IsStringLiteralToNonConstPointerConversion(), IsStructurallyEquivalent(), IsTypeModifiable(), isValidSwiftContextType(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), isVoidPointerToNonConst(), clang::AtomicExpr::isVolatile(), loadToBegin(), LookupMemberExpr(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeVarDeclExceptionSpecs(), NoteSurrogateCandidate(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), PerformReturnAdjustment(), clang::Sema::PrepareScalarCast(), print_elem(), clang::APValue::printPretty(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ObjCObjectPointerType::Profile(), recoverFromMSUnqualifiedLookup(), rewriteBuiltinFunctionDecl(), SemaOpenCLBuiltinEnqueueKernel(), treatUnusedNewEscaped(), clang::Sema::tryExprAsCall(), tryGetFunctionProtoType(), TryObjectArgumentInitialization(), TryStaticCast(), TryToFixInvalidVariablyModifiedType(), UnwrapDissimilarPointerTypes(), clang::ASTContext::UnwrapSimilarPointerTypes(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::consumed::ConsumedStmtVisitor::VisitCXXConstructExpr(), clang::ento::UndefOrNullArgVisitor::VisitNode(), and clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl().
Type::ScalarTypeKind Type::getScalarTypeKind | ( | ) | const |
Given that this is a scalar type, classify it.
Definition at line 1829 of file Type.cpp.
References isScalarType(), STK_BlockPointer, STK_Bool, STK_CPointer, STK_Floating, STK_FloatingComplex, STK_Integral, STK_IntegralComplex, STK_MemberPointer, and STK_ObjCObjectPointer.
Referenced by matchTypes(), clang::Sema::PrepareScalarCast(), and clang::Sema::ScalarTypeToBooleanCastKind().
|
inline |
Definition at line 1533 of file Type.h.
References TypeBits.
Referenced by addAssociatedClassesAndNamespaces(), BuildSimilarlyQualifiedPointerType(), canHaveNullability(), captureVariablyModifiedType(), clang::LocInfoType::classof(), clang::BuiltinType::classof(), clang::ComplexType::classof(), clang::ParenType::classof(), clang::PointerType::classof(), clang::AdjustedType::classof(), clang::DecayedType::classof(), clang::BlockPointerType::classof(), clang::ReferenceType::classof(), clang::LValueReferenceType::classof(), clang::RValueReferenceType::classof(), clang::MemberPointerType::classof(), clang::ArrayType::classof(), clang::ConstantArrayType::classof(), clang::IncompleteArrayType::classof(), clang::VariableArrayType::classof(), clang::DependentSizedArrayType::classof(), clang::DependentSizedExtVectorType::classof(), clang::VectorType::classof(), clang::ExtVectorType::classof(), clang::FunctionType::classof(), clang::FunctionNoProtoType::classof(), clang::FunctionProtoType::classof(), clang::UnresolvedUsingType::classof(), clang::TypedefType::classof(), clang::TypeOfExprType::classof(), clang::TypeOfType::classof(), clang::DecltypeType::classof(), clang::UnaryTransformType::classof(), clang::TagType::classof(), clang::RecordType::classof(), clang::EnumType::classof(), clang::AttributedType::classof(), clang::TemplateTypeParmType::classof(), clang::SubstTemplateTypeParmType::classof(), clang::SubstTemplateTypeParmPackType::classof(), clang::AutoType::classof(), clang::classof(), clang::InjectedClassNameType::classof(), clang::ElaboratedType::classof(), clang::DependentNameType::classof(), clang::PackExpansionType::classof(), clang::ObjCObjectType::classof(), clang::ObjCInterfaceType::classof(), clang::ObjCObjectPointerType::classof(), clang::AtomicType::classof(), clang::PipeType::classof(), computeCachedProperties(), computeLinkageInfo(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::Sema::CreateParsedType(), DeduceTemplateArgumentsByTypeMatch(), Desugar(), EvaluateBuiltinClassifyType(), getAsSugar(), clang::QualType::getBaseTypeIdentifier(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::ast_type_traits::ASTNodeKind::getFromNode(), getLocallyUnqualifiedSingleStepDesugaredType(), clang::TypeLoc::getTypeLocClass(), clang::UnqualTypeLoc::getTypeLocClass(), getUnqualifiedDesugaredType(), clang::ASTContext::getVariableArrayDecayedType(), clang::QualType::isCXX98PODType(), isObjCReceiverType(), IsPossiblyOpaquelyQualifiedType(), isSpecifierType(), IsStructurallyEquivalent(), MarkUsedTemplateParameters(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeTypes(), clang::ASTContext::PrintStats(), clang::VectorType::Profile(), clang::RecursiveASTVisitor< Derived >::TraverseType(), UnwrapTypeForDebugInfo(), clang::TypeVisitor< ASTNodeImporter, QualType >::Visit(), and clang::ASTTypeWriter::Visit().
const char * Type::getTypeClassName | ( | ) | const |
Definition at line 2509 of file Type.cpp.
References TypeBits.
Referenced by 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 341 of file Type.cpp.
References getTypeClass().
Referenced by castAs(), castAsArrayTypeUnsafe(), getArrayElementTypeNoTypeQual(), getAs(), getAsArrayTypeUnsafe(), getAsStructureType(), getAsUnionType(), and clang::ASTContext::getUnqualifiedArrayType().
|
inline |
Determine the visibility of this type.
Definition at line 1948 of file Type.h.
References getLinkageAndVisibility(), and clang::LinkageInfo::getVisibility().
bool Type::hasFloatingRepresentation | ( | ) | const |
Determine whether this type has a floating-point representation of some sort, e.g., it is a floating-point type or a vector thereof.
Definition at line 1792 of file Type.cpp.
References isFloatingType().
Referenced by clang::Sema::CheckCompareOperands(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorLogicalOperands(), and handleTransparentUnionAttr().
bool Type::hasIntegerRepresentation | ( | ) | const |
Determine whether this type has an integer representation of some sort, e.g., it is an integer type or a vector.
Definition at line 1599 of file Type.cpp.
References isIntegerType().
Referenced by clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CreateBuiltinUnaryOp(), and clang::Sema::SemaBuiltinShuffleVector().
|
inline |
Whether this type can represent an objective pointer type for the purpose of GC'ability.
Definition at line 5770 of file Type.h.
References isObjCObjectPointerType().
|
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 5765 of file Type.h.
References isBlockPointerType(), isNullPtrType(), isObjCObjectPointerType(), isPointerType(), and isReferenceType().
Referenced by Evaluate(), EvaluatePointer(), 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 1736 of file Type.cpp.
References isSignedIntegerOrEnumerationType().
Referenced by clang::Sema::ActOnOpenMPReductionClause(), CheckOpenMPLoop(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::ASTContext::getCorrespondingUnsignedType(), handleIntegerConversion(), and clang::analyze_format_string::ArgType::matchesType().
bool Type::hasSizedVLAType | ( | ) | const |
Whether this type involves a variable-length array type with a definite size.
Definition at line 3741 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 3381 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 1776 of file Type.cpp.
References isUnsignedIntegerOrEnumerationType().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and DiagnoseBadShiftValues().
bool Type::isAggregateType | ( | ) | const |
Determines whether the type is a C++ aggregate type or C aggregate or union type.
An aggregate type is an array or a class type (struct, union, or class) that has no user-declared constructors, no private or protected non-static data members, no base classes, and no virtual functions (C++ [dcl.init.aggr]p1). The notion of an aggregate type subsumes the notion of C aggregates (C99 6.2.5p21) because it also includes union types.
Definition at line 1868 of file Type.cpp.
Referenced by clang::Sema::AddInitializerToDecl(), TryListConversion(), and TryListInitialization().
bool Type::isAnyCharacterType | ( | ) | const |
Determine whether this type is any of the built-in character types.
Definition at line 1686 of file Type.cpp.
References clang::BuiltinType::getKind().
Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::Sema::CheckCompatibleReinterpretCast(), diagnoseStringPlusChar(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::UserDefinedLiteral::getLiteralOperatorKind(), and clang::Sema::IsIntegralPromotion().
|
inline |
Definition at line 5545 of file Type.h.
Referenced by clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitComplexToScalarConversion(), clang::CodeGen::CodeGenFunction::EmitLValue(), emitReplacement(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), Evaluate(), EvaluateBuiltinConstantP(), EvaluateComplex(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), FindDesignatorMismatch(), findSubobject(), getAbsoluteValueKind(), isDesignatorAtObjectEnd(), isLiteralType(), IsStandardConversion(), TryListInitialization(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
|
inline |
Definition at line 5485 of file Type.h.
References isObjCObjectPointerType(), and isPointerType().
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::AddAlignValueAttr(), AreTypesCompatible(), AuditedType(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), clang::Sema::CheckAdditionOperands(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCompareOperands(), checkConditionalNullPointer(), CheckMapClauseExpressionBase(), CheckMapConflicts(), clang::Sema::checkNullabilityTypeSpecifier(), CheckOriginalCallArgDeduction(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CodeCompleteExpression(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), DiagnoseBadFunctionCast(), diagnosePointerIncompatibility(), diagnoseStringPlusChar(), EvalAddr(), clang::Sema::FindCompositePointerType(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), getPointeeOrArrayElementType(), clang::CXXMemberCallExpr::getRecordDecl(), handleOwnershipAttr(), handleRestrictAttr(), isCallback(), clang::ento::Loc::isLocType(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), isPointerToConst(), clang::ASTContext::isSentinelNullExpr(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), TryReinterpretCast(), TypeIsInnerPointer(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), and clang::ento::UndefOrNullArgVisitor::VisitNode().
bool Type::isArithmeticType | ( | ) | const |
Definition at line 1814 of file Type.cpp.
Referenced by clang::Sema::ActOnPropertyImplDecl(), clang::Sema::CheckAdditionOperands(), 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::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), EvaluateUnaryTypeTrait(), clang::ento::MemRegionManager::getVarRegion(), isFundamentalType(), IsStandardConversion(), IsVectorConversion(), and clang::Sema::UsualArithmeticConversions().
|
inline |
Definition at line 5521 of file Type.h.
Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildAtomicType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssign(), clang::Sema::BuildVAArgExpr(), canDecayToPointerType(), captureInBlock(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckFunctionReturnType(), CheckMapClauseExpressionBase(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckParameter(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyTemporary(), clang::CXXBindTemporaryExpr::Create(), clang::Sema::CreateBuiltinArraySubscriptExpr(), createReferenceTemporary(), DecodeTypeFromStr(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentResult(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::emitArrayDestroy(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::emitAutoVarTypeCleanup(), clang::CodeGen::CodeGenModule::EmitConstantInit(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), emitPrivatesInit(), emitSingleReductionCombiner(), Evaluate(), EvaluateArray(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateInPlace(), EvaluateUnaryTypeTrait(), FastEvaluateAsRValue(), fillInlineAsmTypeInfo(), FindDesignatorMismatch(), findSubobject(), clang::ASTContext::getAdjustedParameterType(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::GetBuiltinType(), getCoreType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getExceptionObjectType(), clang::ASTContext::getInnerObjCOwnership(), clang::ASTContext::getObjCEncodingTypeSize(), getPointeeOrArrayElementType(), getUuidAttrOfType(), clang::InitializationSequence::InitializeFrom(), isCompoundType(), clang::Expr::isConstantInitializer(), isDesignatorAtObjectEnd(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), isMSPropertySubscriptExpr(), IsStandardConversion(), isZeroSized(), clang::Sema::MergeVarDeclTypes(), pushTemporaryCleanup(), setObjCGCLValueClass(), TryListConversion(), TryReferenceInit(), TryReferenceInitializationCore(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitInitListExpr(), and clang::ento::ExprEngine::VisitMemberExpr().
|
inline |
Definition at line 5564 of file Type.h.
Referenced by clang::Sema::BuildAtomicType(), clang::Sema::BuildQualifiedType(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), diagnoseRedundantReturnTypeQualifiers(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), Evaluate(), and EvaluateAtomic().
bool Type::isBlockCompatibleObjCPointerType | ( | ASTContext & | ctx | ) | const |
Definition at line 3630 of file Type.cpp.
References clang::ObjCObjectPointerType::getInterfaceDecl(), clang::ASTContext::getNSCopyingName(), clang::ASTContext::getNSObjectName(), clang::ObjCObjectPointerType::isObjCIdType(), clang::ObjCObjectPointerType::isObjCQualifiedIdType(), and clang::ObjCObjectPointerType::quals().
Referenced by applyObjCTypeArgs(), and clang::Sema::CheckAssignmentConstraints().
|
inline |
Definition at line 5488 of file Type.h.
Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnObjCForCollectionStmt(), applyObjCTypeArgs(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCBridgedCast(), clang::ento::StoreManager::castRegion(), CastsAwayConstness(), clang::Sema::CheckAssignmentConstraints(), checkBlockType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalBlockPointerCompatibility(), checkConditionalNullPointer(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckMessageArgumentTypes(), CheckObjCCollectionLiteralElement(), clang::Sema::CheckPointerConversion(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CodeCompleteExpression(), compareConversionFunctions(), clang::Sema::ConvertArgumentsForCall(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CodeCompletionResult::CreateCodeCompletionString(), DiagnoseBadFunctionCast(), diagnoseObjCARCConversion(), DiagnoseUninitializedUse(), clang::CodeGen::CodeGenFunction::EmitARCRetain(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutorelease(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), EvalAddr(), clang::ento::SValBuilder::evalCast(), FormatFunctionParameter(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::ASTContext::getByrefLifetime(), GetFullTypeForDeclarator(), GetGCAttrTypeForType(), getNonNullAttr(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), clang::ObjCPropertyDecl::getSetterKind(), clang::CallEventManager::getSimpleCall(), clang::Sema::getVariadicCallType(), handleAnalyzerNoReturnAttr(), clang::Sema::HandleField(), handleObjCGCTypeAttr(), handleOwnershipAttr(), handleRestrictAttr(), handleSentinelAttr(), hasPointerRepresentation(), is32Or64BitBasicType(), isBlockPointer(), isCallback(), clang::CXXConversionDecl::isLambdaToBlockPointerConversion(), clang::ento::Loc::isLocType(), isObjCARCBridgableType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), IsStandardConversion(), clang::Sema::isValidPointerAttrType(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::maybeExtendBlockObject(), clang::ASTContext::mergeTypes(), clang::Sema::PrepareCastToObjCObjectPointer(), PropertyMemoryAttribute(), rewriteToObjCProperty(), shouldEmitSeparateBlockRetain(), SuggestInitializationFixit(), TryReinterpretCast(), TryStaticCast(), and TypeIsInnerPointer().
|
inline |
Definition at line 5743 of file Type.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), AddObjCKeyValueCompletions(), clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::Sema::BuildExtVectorType(), CheckConvertedConstantConversions(), clang::Sema::CheckEnumConstant(), checkIntToPointerCast(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckLoopHintExpr(), clang::Sema::CheckTemplateArgument(), create_OSAtomicCompareAndSwap(), DiagnoseBadFunctionCast(), clang::ento::SValBuilder::evalCast(), ExprLooksBoolean(), getIntegerWidthAndSignedness(), clang::ASTContext::getIntWidth(), getOpenCLKernelParameterType(), getScalarZeroExpressionForType(), HandleVectorSizeAttr(), handleVecTypeHint(), hasBooleanRepresentation(), isBooleanType(), clang::Sema::IsIntegralPromotion(), isIntOrBool(), clang::Expr::isKnownToHaveBooleanValue(), IsStandardConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::prepareVectorSplat(), clang::APValue::printPretty(), rewriteToNumericBoxedExpression(), TryReinterpretCast(), TryStaticCast(), clang::Sema::VerifyBitField(), and clang::ento::ConditionBRVisitor::VisitConditionVariable().
|
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 5536 of file Type.h.
Referenced by clang::ASTContext::getExtVectorType(), clang::ASTContext::getVectorType(), handleIBOutletCollection(), HandleVectorSizeAttr(), isTypeSubstitutable(), and clang::ento::ExprEngine::VisitOffsetOfExpr().
|
inline |
Determines if this type would be canonical if it had no further qualification.
Definition at line 1559 of file Type.h.
References clang::ExtQualsTypeCommonBase::QualType.
Referenced by areCompatVectorTypes(), clang::TypePropertyCache< Private >::ensure(), clang::TemplateTypeParmType::getDecl(), clang::AutoType::getDeducedType(), clang::TemplateTypeParmType::getIdentifier(), getLinkageAndVisibility(), clang::ASTContext::getMemberPointerType(), clang::ASTContext::getSubstTemplateTypeParmPackType(), clang::AutoType::isDeduced(), and clang::AutoType::isSugared().
bool Type::isCARCBridgableType | ( | ) | const |
Determine whether the given type T is a "bridgeable" C type.
Definition at line 3732 of file Type.cpp.
References clang::PointerType::getPointeeType(), isRecordType(), and isVoidType().
Referenced by clang::Sema::BuildObjCBridgedCast(), and handleObjCNSObject().
bool Type::isChar16Type | ( | ) | const |
Definition at line 1672 of file Type.cpp.
Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), and getScalarZeroExpressionForType().
bool Type::isChar32Type | ( | ) | const |
Definition at line 1678 of file Type.cpp.
Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), and getScalarZeroExpressionForType().
bool Type::isCharType | ( | ) | const |
Definition at line 1656 of file Type.cpp.
Referenced by clang::Sema::CheckLoopHintExpr(), clang::analyze_printf::PrintfSpecifier::fixType(), getScalarZeroExpressionForType(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::IsIntegralPromotion(), and IsStringInit().
bool Type::isClassType | ( | ) | const |
Definition at line 358 of file Type.cpp.
Referenced by EvaluateUnaryTypeTrait().
|
inline |
Definition at line 5611 of file Type.h.
References isSpecificBuiltinType().
Referenced by isOpenCLSpecificType(), and SemaOpenCLBuiltinEnqueueKernel().
bool Type::isComplexIntegerType | ( | ) | const |
Definition at line 403 of file Type.cpp.
References getAsComplexIntegerType().
Referenced by clang::Sema::CreateBuiltinUnaryOp(), DiagnoseBadFunctionCast(), handleIntegerToComplexFloatConversion(), 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 397 of file Type.cpp.
Referenced by clang::Sema::AddModeAttr(), clang::Sema::CreateBuiltinUnaryOp(), DiagnoseBadFunctionCast(), clang::ASTContext::getFloatingTypeOfSizeWithinDomain(), handleIntegerToComplexFloatConversion(), and clang::Sema::UsualArithmeticConversions().
|
inline |
Tests whether the type is categorized as a compound type.
Definition at line 5457 of file Type.h.
References isArrayType(), isEnumeralType(), isFunctionType(), isMemberPointerType(), isPointerType(), isRecordType(), isReferenceType(), and isUnionType().
Referenced by EvaluateUnaryTypeTrait().
|
inline |
Definition at line 5524 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), DeduceFromInitializerList(), clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), and hasCompatibleArrayTypes().
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 1882 of file Type.cpp.
References isDependentType(), and isIncompleteType().
Referenced by clang::Sema::BuildArrayType(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::ASTContext::getConstantArrayType(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), HandleSizeof(), and clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr().
|
inline |
Definition at line 5533 of file Type.h.
Referenced by DeduceFromInitializerList().
|
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 1774 of file Type.h.
References TypeBits.
Referenced by clang::Sema::ActOnChooseExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStmtExpr(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddInitializerToDecl(), addInstantiatedParametersToScope(), clang::Sema::AddModeAttr(), applyObjCTypeArgs(), clang::Sema::BuildArrayType(), clang::Sema::BuildArrayTypeTrait(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCoawaitExpr(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCoyieldExpr(), clang::Sema::BuildCXXNamedCast(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildCXXUuidof(), buildDeclareReductionRef(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExtVectorType(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemberInitializer(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBridgedCast(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildUnaryTransformType(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVariableInstantiation(), clang::Sema::canThrow(), captureInLambda(), checkAcquireOrderAttrCommon(), clang::Sema::CheckAllocatedType(), checkArithmeticIncompletePointerType(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCastAlign(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompletedCoroutineBody(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConstexprFunctionBody(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckConversionDeclarator(), checkCoroutineContext(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckEnumUnderlyingType(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckOMPThreadPrivateDecl(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckQualifiedMemberReference(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckVariableDeclarationType(), classifyPointerDeclarator(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::computeDeclContext(), computeDeclRefDependence(), ConvertDeducedTemplateArgument(), clang::CoroutineSuspendExpr::CoroutineSuspendExpr(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::CXXInheritedCtorInitExpr::CXXInheritedCtorInitExpr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceClosureReturnType(), DeduceFromInitializerList(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), clang::Sema::DiagnoseUnusedNestedTypedefs(), EvaluateArrayTypeTrait(), EvaluateBinaryTypeTrait(), EvaluateUnaryTypeTrait(), findTemplateParameter(), FormatFunctionParameter(), clang::Expr::getBestDynamicClassType(), clang::ASTContext::getConstantArrayType(), clang::ento::CallEvent::getDeclaredResultType(), clang::CXXDeleteExpr::getDestroyedType(), clang::Sema::getDestructorName(), clang::ASTContext::getExtVectorType(), getLVForTemplateParameterList(), clang::QualType::getNonLValueExprType(), clang::ASTContext::getUnaryTransformType(), handleNonNullAttr(), handleObjCOwnershipTypeAttr(), HandleSizeof(), hasDeducibleTemplateParameters(), hasDependentAlignment(), clang::InitializationSequence::InitializeFrom(), clang::Sema::isAcceptableNestedNameSpecifier(), IsAcceptableNonMemberOperatorCandidate(), isConstantSizeType(), clang::Sema::isCopyElisionCandidate(), clang::QualType::isCXX11PODType(), clang::AutoType::isDeduced(), clang::NestedNameSpecifier::isDependent(), clang::TemplateArgument::isDependent(), clang::DeclarationName::isDependentName(), IsDerivedFromInclusive(), clang::Sema::isIncompatibleTypedef(), isLiteralType(), clang::Sema::isNonTypeNestedNameSpecifier(), isObjCReceiverType(), isOverloadableType(), isPromotableIntegerType(), isStandardLayoutType(), clang::UnaryTransformType::isSugared(), clang::isSugared(), clang::PackExpansionType::isSugared(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), isValidSubjectOfCFAttribute(), isValidSubjectOfNSAttribute(), isValidSubjectOfNSReturnsRetainedAttribute(), isValidSwiftContextType(), isValidSwiftErrorResultType(), isValidSwiftIndirectResultType(), clang::Sema::isValidVarArgType(), IsVariableNonDependentAndAConstantExpression(), LookupDirect(), clang::Sema::LookupInlineAsmIdentifier(), clang::Sema::LookupInlineAsmVarDeclField(), LookupMemberExpr(), clang::Sema::LookupTemplateName(), LookupVisibleDecls(), MarkUsedTemplateParameters(), MatchTemplateParameterKind(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), clang::Sema::PerformObjectMemberConversion(), processTypeAttrs(), clang::AutoType::Profile(), RebuildDeclaratorInCurrentInstantiation(), clang::TreeTransform< Derived >::RebuildInitList(), clang::Sema::RebuildTypeInCurrentInstantiation(), clang::Sema::RequireLiteralType(), clang::Sema::SemaConvertVectorExpr(), clang::CXXRecordDecl::setBases(), ShouldDiagnoseUnusedDecl(), SubstDefaultTemplateArgument(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryToFixInvalidVariablyModifiedType(), clang::TypoExpr::TypoExpr(), VariableCanNeverBeAConstantExpression(), clang::Sema::VerifyBitField(), and clang::ASTTypeWriter::VisitTagType().
bool Type::isElaboratedTypeSpecifier | ( | ) | const |
Determine wither this type is a C++ elaborated-type-specifier.
Definition at line 2494 of file Type.cpp.
References clang::DependentTemplateSpecializationType(), and clang::TypeWithKeyword::KeywordIsTagTypeKind().
Referenced by clang::Sema::ActOnFriendTypeDecl(), and clang::Sema::CheckFriendTypeDecl().
|
inline |
Definition at line 5542 of file Type.h.
Referenced by clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildUnaryTransformType(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), checkIntToPointerCast(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckSwitchCondition(), clang::Sema::CheckTemplateArgument(), clang::Sema::CodeCompleteCase(), DiagnoseBadFunctionCast(), EvaluateUnaryTypeTrait(), clang::QualType::getBaseTypeIdentifier(), getScalarZeroExpressionForType(), is32Or64BitBasicType(), IsAcceptableNonMemberOperatorCandidate(), isCompoundType(), isFundamentalType(), clang::Sema::IsIntegralPromotion(), clang::Expr::isNullPointerConstant(), isNullPointerConstantForConversion(), isOverloadableType(), clang::Sema::PerformOpenMPImplicitIntegerConversion(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryStaticCast(), and clang::Sema::VerifyIntegerConstantExpression().
|
inline |
Definition at line 5607 of file Type.h.
References isSpecificBuiltinType().
Referenced by clang::Sema::ActOnVariableDeclarator(), getOpenCLKernelParameterType(), clang::Sema::HandleField(), isOpenCLSpecificType(), IsStandardConversion(), clang::InitializationSequence::Perform(), and TryOCLZeroEventInitialization().
|
inline |
Definition at line 5551 of file Type.h.
Referenced by clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckExtVectorCast(), clang::Sema::CreateBuiltinUnaryOp(), handleVecTypeHint(), IsVectorConversion(), LookupMemberExpr(), and clang::Sema::prepareVectorSplat().
bool Type::isFloatingType | ( | ) | const |
Definition at line 1783 of file Type.cpp.
Referenced by clang::Sema::AddInitializerToDecl(), clang::Sema::AddModeAttr(), checkCondition(), clang::Sema::CheckLogicalOperands(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), EvaluateBuiltinConstantP(), EvaluateUnaryTypeTrait(), findCompleteObject(), clang::UserDefinedLiteral::getLiteralOperatorKind(), handleVecTypeHint(), hasFloatingRepresentation(), clang::Sema::prepareVectorSplat(), rewriteToNumberLiteral(), TryListInitialization(), and unsupportedTypeConversion().
|
inline |
|
inline |
Definition at line 1661 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator().
|
inline |
Definition at line 5500 of file Type.h.
Referenced by clang::Sema::ActOnVariableDeclarator(), DiagnoseCallingConvCast(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::ento::SValBuilder::evalCast(), handleAnalyzerNoReturnAttr(), handleSentinelAttr(), handleX86ForceAlignArgPointerAttr(), isCallback(), clang::comments::Sema::isFunctionPointerVarDecl(), maybeDiagnoseAssignmentToFunction(), ResolveOverloadForDeduction(), rewriteToObjCProperty(), TryConstCast(), TryReinterpretCast(), and TypeIsInnerPointer().
|
inline |
Definition at line 1662 of file Type.h.
Referenced by CreateNewFunctionDecl(), GetFullTypeForDeclarator(), clang::MemberPointerType::isMemberDataPointer(), clang::MemberPointerType::isMemberFunctionPointer(), clang::Sema::LazilyCreateBuiltin(), and clang::Sema::MergeVarDeclExceptionSpecs().
|
inline |
Definition at line 5479 of file Type.h.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnOMPArraySectionExpr(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), clang::Sema::BuildBlockPointerType(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberPointerType(), clang::Sema::CallExprUnaryConversions(), canDecayToPointerType(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConversionDeclarator(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyBinaryOp(), ClassifyUnnamed(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateBinaryTypeTrait(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::Expr::findBoundMemberType(), FindConversionForRefInit(), clang::ASTContext::getAdjustedParameterType(), clang::ASTContext::getBlockPointerType(), clang::ASTContext::getDecayedType(), clang::ASTContext::getDeclAlign(), clang::ASTContext::getExceptionObjectType(), GetFullTypeForDeclarator(), clang::ASTContext::getObjCEncodingForBlock(), clang::ASTContext::getObjCEncodingForFunctionDecl(), clang::ASTContext::getObjCEncodingForMethodDecl(), HandleAddressSpaceTypeAttribute(), clang::Sema::HandleDeclarator(), HandleSizeof(), handleX86ForceAlignArgPointerAttr(), clang::Sema::IgnoredValueConversions(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::QualType::isCForbiddenLValueType(), isCompoundType(), clang::Declarator::isDeclarationOfFunction(), isIncompleteOrObjectType(), IsModifiable(), isObjectType(), clang::Sema::IsPointerConversion(), IsStandardConversion(), clang::Sema::LookupInlineAsmIdentifier(), LookupMemberExpr(), maybeDiagnoseAssignmentToFunction(), maybeSynthesizeBlockSignature(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::PerformMemberExprBaseConversion(), clang::Sema::resolveAndFixAddressOfOnlyViableOverloadCandidate(), ResolveOverloadForDeduction(), clang::CodeGen::CodeGenFunction::OpaqueValueMappingData::shouldBindAsLValue(), tryEvaluateBuiltinObjectSize(), TryReferenceInit(), TryReferenceInitializationCore(), and TryStaticCast().
|
inline |
Tests whether the type is categorized as a fundamental type.
Definition at line 5447 of file Type.h.
References isArithmeticType(), isEnumeralType(), and isVoidType().
Referenced by EvaluateUnaryTypeTrait().
|
inline |
Definition at line 5686 of file Type.h.
Referenced by clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildFunctionType(), clang::Sema::CheckFunctionReturnType(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::DefaultLvalueConversion(), getOpenCLKernelParameterType(), handleFloatConversion(), clang::Sema::PerformImplicitConversion(), and clang::Sema::UsualUnaryConversions().
|
inline |
Definition at line 5627 of file Type.h.
Referenced by clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildArrayType(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), GenOpenCLArgMetadata(), getOpenCLKernelParameterType(), clang::Sema::HandleField(), handleOpenCLAccessAttr(), HandleOpenCLAccessAttr(), and isOpenCLSpecificType().
|
inline |
Definition at line 5527 of file Type.h.
Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnUninitializedDecl(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildArrayType(), CheckUnaryTypeTraitTypeCompleteness(), computeDeclRefDependence(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), EvaluateBinaryTypeTrait(), evaluateTypeTrait(), GetNumNonZeroBytesInInit(), clang::ASTContext::getObjCEncodingTypeSize(), hasCompatibleArrayTypes(), isIncompleteOrZeroLengthArrayType(), isSameEntity(), clang::Sema::MergeVarDeclTypes(), clang::InitializationSequence::Perform(), and clang::Sema::RequireCompleteExprType().
|
inline |
Return true if this is an incomplete or object type, in other words, not a function type.
Definition at line 1583 of file Type.h.
References isFunctionType().
Referenced by clang::Sema::BuildQualifiedType(), checkConditionalObjectPointersCompatibility(), 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 1892 of file Type.cpp.
References clang::TargetInfo::getCXXABI(), clang::CXXRecordDecl::getMostRecentDecl(), clang::ASTContext::getTargetInfo(), clang::ObjCInterfaceDecl::hasDefinition(), clang::TagDecl::isCompleteDefinition(), clang::EnumDecl::isFixed(), clang::TargetCXXABI::isMicrosoft(), and isVoidType().
Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::BuildArrayType(), clang::Sema::BuildUnaryTransformType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::checkDeclIsAllowedInOpenMPTarget(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), checkRecordTypeForCapability(), clang::Sema::CheckSubscriptingKind(), CheckTypeMappable(), CheckVecStepTraitOperandType(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), DiagnoseBadConversion(), DiagnoseForRangeVariableCopies(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), clang::ento::ElementRegion::getAsArrayOffset(), clang::ento::MemRegion::getAsOffset(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getDeclAlign(), clang::Sema::getDestructorName(), clang::ento::TypedValueRegion::getExtent(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), clang::ASTContext::getObjCEncodingTypeSize(), isConstantSizeType(), clang::QualType::isCXX11PODType(), clang::CodeGen::CodeGenTypes::isFuncParamTypeConvertible(), isLiteralType(), isOnePastTheEndOfCompleteObject(), isPreferredLookupResult(), isStandardLayoutType(), clang::QualType::isTriviallyCopyableType(), clang::Sema::isValidVarArgType(), isZeroSized(), clang::Sema::LookupTemplateName(), matchTypes(), ShouldDiagnoseUnusedDecl(), tryEvaluateBuiltinObjectSize(), 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 1780 of file Type.h.
References TypeBits.
Referenced by buildDeclareReductionRef(), clang::Sema::CheckOMPThreadPrivateDecl(), computeCachedProperties(), computeDeclRefDependence(), computeLinkageInfo(), clang::Sema::HandleFunctionTypeMismatch(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::NestedNameSpecifier::isInstantiationDependent(), clang::TemplateArgument::isInstantiationDependent(), clang::DeclarationNameInfo::isInstantiationDependent(), NeedsInstantiationAsFunctionType(), and clang::Sema::SubstType().
|
inline |
isIntegerType() does not include complex integers (a GCC extension).
isComplexIntegerType() can be used to test for complex integers.
Definition at line 5702 of file Type.h.
References clang::IsEnumDeclComplete(), and clang::IsEnumDeclScoped().
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnSEHExceptBlock(), AddObjCKeyValueCompletions(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildObjCDictionaryLiteral(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckCompareOperands(), CheckIncrementDecrementOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckLoopHintExpr(), checkOpenCLConditionVector(), checkOpenCLEnqueueLocalSizeArgs(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckVectorOperands(), create_dispatch_once(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::DiagnoseAssignmentEnum(), DiagnoseBadFunctionCast(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), expandStringLiteral(), extractStringLiteralCharacter(), clang::ArraySubscriptExpr::getBase(), clang::ArraySubscriptExpr::getIdx(), getIntegerWidthAndSignedness(), clang::UserDefinedLiteral::getLiteralOperatorKind(), handleIntegerToComplexFloatConversion(), handleIntToFloatConversion(), handleOwnershipAttr(), HandleVectorSizeAttr(), hasIntegerRepresentation(), clang::IntegerLiteral::IntegerLiteral(), isAcceptableMethodMismatch(), clang::Sema::IsIntegralPromotion(), isIntOrBool(), isNullPointerConstantForConversion(), clang::InitListExpr::isStringLiteralInit(), mergeEnumWithInteger(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), SemaBuiltinAnnotation(), SemaBuiltinOverflow(), SemaBuiltinReserveRWPipe(), SemaBuiltinRWPipe(), and SemaOpenCLBuiltinEnqueueKernel().
|
inline |
Determine whether this type is an integral or enumeration type.
Definition at line 5730 of file Type.h.
References clang::IsEnumDeclComplete().
Referenced by clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddModeAttr(), clang::ento::SimpleConstraintManager::assumeAuxForSymbol(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckCaseExpression(), clang::Sema::CheckConvertedConstantExpression(), CheckICE(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckTemplateArgument(), DecodeTypeFromStr(), emitReplacement(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateBuiltinConstantP(), EvaluateCPlusPlus11IntegralConstantExpr(), EvaluateIntegerOrLValue(), clang::Sema::FinalizeDeclaration(), findCompleteObject(), getAbsoluteValueKind(), clang::ento::BasicValueFactory::getAPSIntType(), clang::ASTContext::getObjCEncodingTypeSize(), clang::ento::ProgramState::getSValAsScalarOrLoc(), clang::ento::SValBuilder::haveSameType(), clang::ObjCSubscriptRefExpr::isArraySubscriptRefExpr(), clang::Expr::isKnownToHaveBooleanValue(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), clang::ento::SValBuilder::makeZeroVal(), clang::Sema::ICEConvertDiagnoser::match(), clang::Sema::prepareVectorSplat(), clang::ento::ExprEngine::processBranch(), RecoverCastedSymbol(), TryListInitialization(), TryReinterpretCast(), TryStaticCast(), clang::Sema::VerifyBitField(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), and clang::ento::ExprEngine::VisitIncrementDecrementOperator().
bool Type::isIntegralOrUnscopedEnumerationType | ( | ) | const |
Determine whether this type is an integral or unscoped enumeration type.
Definition at line 1639 of file Type.cpp.
Referenced by adjustBlockReturnsToEnum(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), clang::Sema::CheckBitwiseOperands(), CheckConvertedConstantConversions(), diagnoseStringPlusInt(), clang::StandardConversionSequence::getNarrowingKind(), IsStandardConversion(), clang::Sema::ICEConvertDiagnoser::match(), 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 1625 of file Type.cpp.
References clang::ASTContext::getLangOpts().
Referenced by clang::Sema::ActOnVariableDeclarator(), checkIntToPointerCast(), clang::Sema::CheckObjCARCConversion(), clang::Sema::CheckVectorCast(), create_OSAtomicCompareAndSwap(), DiagnoseBinOpPrecedence(), EvaluateUnaryTypeTrait(), clang::StandardConversionSequence::getNarrowingKind(), getNextLargerIntegralType(), handleVecTypeHint(), clang::Expr::IgnoreParenNoopCasts(), clang::Sema::IsIntegralPromotion(), isRepresentableIntegerValue(), IsStandardConversion(), TryReinterpretCast(), TryStaticCast(), and tryVectorConvertAndSplat().
bool Type::isInterfaceType | ( | ) | const |
Definition at line 373 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 3463 of file Type.cpp.
References computeLinkageInfo(), getCanonicalTypeInternal(), clang::LinkageInfo::getLinkage(), and TypeBits.
bool Type::isLiteralType | ( | const ASTContext & | Ctx | ) | const |
Return true if this is a literal type (C++11 [basic.types]p10)
Definition at line 2155 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(), EvaluateObjectArgument(), EvaluateUnaryTypeTrait(), clang::Sema::RequireLiteralType(), and clang::CXXRecordDecl::setBases().
|
inline |
Definition at line 5494 of file Type.h.
Referenced by ClassifyUnnamed(), DeduceTemplateArgumentsByTypeMatch(), DiagnoseBadConversion(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), clang::CXXConstructorDecl::isCopyConstructor(), clang::InitializationSequence::Perform(), TryListConversion(), and TryReferenceInitializationCore().
|
inline |
Definition at line 5515 of file Type.h.
Referenced by clang::CodeGen::CodeGenModule::EmitNullConstant(), EvaluateBuiltinClassifyType(), and EvaluateUnaryTypeTrait().
|
inline |
Definition at line 5509 of file Type.h.
Referenced by EvaluateBuiltinClassifyType(), EvaluateUnaryTypeTrait(), isAggregateTypeForABI(), ResolveOverloadForDeduction(), and TryConstCast().
|
inline |
Definition at line 5506 of file Type.h.
Referenced by clang::Sema::AddAlignValueAttr(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildQualifiedType(), CastsAwayConstness(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::checkNullabilityTypeSpecifier(), CheckOriginalCallArgDeduction(), clang::Sema::CheckTemplateArgument(), clang::Sema::CodeCompleteExpression(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultLvalueConversion(), clang::ento::SValBuilder::evalCast(), Evaluate(), EvaluateMemberPointer(), EvaluateUnaryTypeTrait(), clang::Sema::FindCompositePointerType(), GetFullTypeForDeclarator(), clang::ASTContext::getPreferredTypeAlign(), getScalarZeroExpressionForType(), clang::Sema::HandleFunctionTypeMismatch(), handleMSPointerTypeQualifierAttr(), isCompoundType(), IsStandardConversion(), TryConstCast(), and TryReinterpretCast().
|
inline |
Definition at line 5619 of file Type.h.
References isSpecificBuiltinType().
Referenced by isOpenCLSpecificType(), and SemaOpenCLBuiltinEnqueueKernel().
|
inline |
Test for a placeholder type other than Overload; see BuiltinType::isNonOverloadPlaceholderType.
Definition at line 5674 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildCXXNew(), clang::Sema::checkPseudoObjectAssignment(), and clang::Sema::DeduceAutoType().
|
inline |
Definition at line 5693 of file Type.h.
Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::Sema::CheckCompareOperands(), CheckConvertedConstantConversions(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), clang::ento::SValBuilder::conjureSymbolVal(), clang::Sema::FindCompositePointerType(), clang::ento::SValBuilder::getConjuredHeapSymbolVal(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getRegionValueSymbolVal(), hasPointerRepresentation(), clang::ento::Loc::isLocType(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::ASTContext::isSentinelNullExpr(), IsStandardConversion(), clang::analyze_format_string::ArgType::matchesType(), 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 3727 of file Type.cpp.
References isBlockPointerType(), and isObjCObjectPointerType().
Referenced by clang::Sema::BuildObjCBridgedCast(), and classifyTypeForARCConversion().
bool Type::isObjCARCImplicitlyUnretainedType | ( | ) | const |
Determines if this type, which must satisfy isObjCLifetimeType(), is implicitly __unsafe_unretained rather than implicitly __strong.
Definition at line 3669 of file Type.cpp.
References getCanonicalTypeInternal(), clang::QualType::getTypePtr(), and isObjCLifetimeType().
Referenced by checkARCPropertyImpl(), getObjCARCImplicitLifetime(), inferARCLifetimeForPointee(), inferARCWriteback(), and clang::Sema::MaybeBindToTemporary().
|
inline |
Definition at line 5593 of file Type.h.
References isObjCClassType(), isObjCIdType(), and isObjCSelType().
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 496 of file Type.cpp.
References clang::ObjCObjectPointerType::isKindOfType(), clang::ObjCObjectPointerType::isObjCClassType(), and clang::ObjCObjectPointerType::isObjCQualifiedClassType().
Referenced by clang::Sema::BuildInstanceMessage().
|
inline |
Definition at line 5583 of file Type.h.
Referenced by clang::Sema::BuildInstanceMessage(), clang::Sema::CheckAssignmentConstraints(), checkObjCPointerTypesForAssignment(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::FindCompositeObjCPointerType(), findMethodDecl(), getBaseMessageSendResultType(), isObjCBuiltinType(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), 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 470 of file Type.cpp.
References getAs(), clang::ObjCObjectPointerType::getObjectType(), clang::ObjCObjectPointerType::isKindOfType(), clang::ObjCObjectPointerType::isObjCClassType(), clang::ObjCObjectPointerType::isObjCIdType(), clang::ObjCObjectPointerType::isObjCQualifiedClassType(), and clang::ObjCObjectType::stripObjCKindOfTypeAndQuals().
Referenced by clang::Sema::BuildInstanceMessage().
|
inline |
Definition at line 5578 of file Type.h.
Referenced by applyObjCProtocolQualifiers(), BuildSimilarlyQualifiedPointerType(), clang::Sema::CheckAssignmentConstraints(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::deduceVarTypeFromInitializer(), clang::Sema::FindCompositeObjCPointerType(), findMethodDecl(), clang::ObjCMethodDecl::getMethodFamily(), handleIBOutletCollection(), isObjCBuiltinType(), clang::ASTContext::mergeTypes(), clang::ASTContext::ObjCQualifiedIdTypesAreCompatible(), and clang::Sema::SelectorsForTypoCorrection().
bool Type::isObjCIndependentClassType | ( | ) | const |
Definition at line 3694 of file Type.cpp.
Referenced by clang::Sema::ActOnMethodDeclaration().
bool Type::isObjCIndirectLifetimeType | ( | ) | const |
Definition at line 3704 of file Type.cpp.
References isObjCLifetimeType().
bool Type::isObjCInertUnsafeUnretainedType | ( | ) | const |
Was this type written with the special inert-in-MRC __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 519 of file Type.cpp.
References clang::AttributedType::attr_objc_inert_unsafe_unretained, getLocallyUnqualifiedSingleStepDesugaredType(), and clang::QualType::getTypePtr().
Referenced by computeBlockInfo().
bool Type::isObjCLifetimeType | ( | ) | const |
Returns true if objects of this type have lifetime semantics under ARC.
Definition at line 3718 of file Type.cpp.
References getAsArrayTypeUnsafe(), and isObjCRetainableType().
Referenced by clang::Sema::BuildCXXNew(), clang::Sema::BuildVAArgExpr(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckParameter(), clang::Sema::CheckTemplateTypeArgument(), createObjCPropertyGetter(), DeduceTemplateArgumentsByTypeMatch(), EvaluateUnaryTypeTrait(), hasNontrivialObjCLifetime(), inferARCLifetimeForPointee(), clang::Sema::inferObjCARCLifetime(), isObjCARCImplicitlyUnretainedType(), isObjCIndirectLifetimeType(), clang::Sema::isObjCWritebackConversion(), clang::Sema::isValidVarArgType(), and clang::InitializationSequence::Perform().
bool Type::isObjCNSObjectType | ( | ) | const |
Definition at line 3689 of file Type.cpp.
Referenced by clang::ASTContext::isObjCNSObjectType(), and isObjCRetainableType().
|
inline |
Definition at line 5560 of file Type.h.
Referenced by clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::CodeCompleteDeclSpec(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::CompareReferenceRelationship(), and clang::Sema::LookupTemplateName().
|
inline |
Definition at line 5554 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::actOnObjCTypeParam(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), AddObjCKeyValueCompletions(), AdjustFunctionParmAndArgTypesForDeduction(), adjustReturnValue(), AuditedType(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildQualifiedType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckAdditionOperands(), checkArithmeticOnObjCPointer(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompareOperands(), checkFormatStringExpr(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckMessageArgumentTypes(), checkMethodFamilyMismatch(), clang::Sema::checkNullabilityTypeSpecifier(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), CheckObjCCollectionLiteralElement(), checkObjCPointerIntrospection(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubscriptingKind(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::Sema::DiagnoseAssignmentResult(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), emitBadConversionNotes(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::CodeGen::CodeGenFunction::EnterCXXTryStmt(), clang::Sema::FindCompositeObjCPointerType(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::ASTContext::getByrefLifetime(), GetGCAttrTypeForType(), clang::ASTContext::getObjCGCAttrKind(), getScalarZeroExpressionForType(), clang::ASTContext::getUnqualifiedObjCPointerType(), handleObjCGCTypeAttr(), handleObjCIndependentClass(), handleObjCMethodFamilyAttr(), hasIsEqualMethod(), hasObjCPointerRepresentation(), hasPointerRepresentation(), isAnyPointerType(), clang::ento::cocoa::isCocoaObjectRef(), isObjCARCBridgableType(), isObjCRetainableType(), clang::Sema::IsPointerConversion(), isValidSubjectOfNSAttribute(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclTypes(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), clang::Sema::PerformImplicitConversion(), clang::Sema::PrepareCastToObjCObjectPointer(), clang::TreeTransform< Derived >::RebuildCXXForRangeStmt(), clang::Sema::SelectorsForTypoCorrection(), clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec(), TryConstCast(), TryReinterpretCast(), TryStaticCast(), TypeIsInnerPointer(), validateBoxingMethod(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::ConditionBRVisitor::VisitTrueTest().
|
inline |
Definition at line 5557 of file Type.h.
Referenced by clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnFields(), clang::Sema::ActOnForwardClassDeclaration(), clang::Sema::actOnObjCTypeParam(), clang::Sema::ActOnSuperClassOfClassInterface(), clang::Sema::ActOnTypedefedProtocols(), applyObjCProtocolQualifiers(), clang::Sema::BuildArrayType(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildPipeType(), clang::Sema::BuildPointerType(), 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(), handleIBOutletCollection(), inferARCWriteback(), clang::Sema::isValidVarArgType(), transferARCOwnership(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
|
inline |
Definition at line 5573 of file Type.h.
Referenced by clang::Sema::BuildInstanceMessage(), checkObjCPointerTypesForAssignment(), clang::Sema::CodeCompleteObjCInstanceMessage(), getBaseMessageSendResultType(), and clang::Sema::SelectorsForTypoCorrection().
|
inline |
Definition at line 5568 of file Type.h.
Referenced by clang::Sema::BuildObjCExceptionDecl(), BuildSimilarlyQualifiedPointerType(), checkObjCPointerTypesForAssignment(), clang::Sema::DiagnoseAssignmentResult(), EvalAddr(), clang::Sema::FindCompositeObjCPointerType(), clang::ASTContext::ObjCObjectAdoptsQTypeProtocols(), clang::ASTContext::QIdProtocolsAdoptObjCObjectProtocols(), and clang::Sema::SelectorsForTypoCorrection().
bool Type::isObjCQualifiedInterfaceType | ( | ) | const |
Definition at line 1474 of file Type.cpp.
References getAsObjCQualifiedInterfaceType().
bool Type::isObjCRetainableType | ( | ) | const |
Definition at line 3699 of file Type.cpp.
References isBlockPointerType(), isObjCNSObjectType(), and isObjCObjectPointerType().
Referenced by clang::Sema::ActOnPropertyImplDecl(), AdjustObjCObjectType(), clang::ASTContext::BlockRequiresCopying(), BuildImplicitMemberInitializer(), clang::Sema::BuildInstanceMessage(), checkAllAtProps(), clang::Sema::checkUnsafeExprAssigns(), checkWeakGCAttrs(), computeBlockInfo(), clang::Sema::CreatePropertyDecl(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), errorForGCAttrsOnNonObjC(), findWeakLValue(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), getImpliedARCOwnership(), handleObjCOwnershipTypeAttr(), handleObjCReturnsInnerPointerAttr(), inferARCWriteback(), isObjCLifetimeType(), isSynthesizedRetainableProperty(), isValidSubjectOfNSReturnsRetainedAttribute(), clang::Sema::MaybeBindToTemporary(), MaybeProduceObjCObject(), PropertyMemoryAttribute(), clang::CodeGen::CodeGenFunction::StartFunction(), transferARCOwnership(), and transferARCOwnershipToDeclSpec().
|
inline |
Definition at line 5588 of file Type.h.
Referenced by clang::ObjCMethodDecl::getMethodFamily(), isCallback(), isObjCBuiltinType(), and LookupMemberExpr().
|
inline |
Determine whether this type is an object type.
Definition at line 1588 of file Type.h.
References isFunctionType(), isReferenceType(), and isVoidType().
Referenced by EvaluateBinaryTypeTrait(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), and GetFullTypeForDeclarator().
|
inline |
Definition at line 5638 of file Type.h.
References isClkEventT(), isEventT(), isImageType(), isNDRangeT(), isPipeType(), isQueueT(), isReserveIDT(), and isSamplerT().
Referenced by clang::CodeGen::CGOpenCLRuntime::convertOpenCLSpecificType(), and isTypeSubstitutable().
|
inline |
Determines whether this is a type for which one can define an overloaded operator.
Definition at line 5756 of file Type.h.
References isDependentType(), isEnumeralType(), and isRecordType().
Referenced by clang::Sema::BuildBinOp(), BuildCounterUpdate(), clang::Sema::BuildUnaryOp(), and clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr().
|
inline |
Definition at line 5634 of file Type.h.
Referenced by clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildArrayType(), checkOpenCLPipeArg(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), GenOpenCLArgMetadata(), handleOpenCLAccessAttr(), HandleOpenCLAccessAttr(), isOpenCLSpecificType(), and SemaBuiltinPipePackets().
|
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 5654 of file Type.h.
Referenced by clang::Sema::ActOnCoawaitExpr(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildCoawaitExpr(), clang::Sema::BuildCoreturnStmt(), clang::Sema::BuildCoyieldExpr(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildExpressionTrait(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckPointerToMemberOperands(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), and clang::Expr::hasPlaceholderType().
|
inline |
Definition at line 5482 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPIsDevicePtrClause(), clang::Sema::ActOnOpenMPUseDevicePtrClause(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnVariableDeclarator(), AdjustFunctionParmAndArgTypesForDeduction(), buildCapture(), BuildCXXCastArgument(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildOverloadedArrowExpr(), castToBase(), clang::Sema::CheckAdditionOperands(), CheckArrayExpressionDoesNotReferToWholeSize(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), CheckForDanglingReferenceOrPointer(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckNonTypeTemplateParameterType(), checkPointerIntegerMismatch(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), CompareDerivedToBaseConversions(), convertPointersToCompositeType(), clang::Sema::CreateBuiltinUnaryOp(), decomposeTypeForEH(), clang::Sema::DeduceTemplateArguments(), diagnoseObjCARCConversion(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), EmitDynamicCastToNull(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), clang::CodeGen::emitTaskOutlinedFunction(), EvalAddr(), clang::ento::SValBuilder::evalCast(), EvaluateBuiltinConstantP(), EvaluateObjectArgument(), EvaluateUnaryTypeTrait(), ExprLooksBoolean(), clang::Sema::FindCompositePointerType(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), GenOpenCLArgMetadata(), clang::QualType::getBaseTypeIdentifier(), clang::CodeGen::CodeGenModule::GetConstantArrayFromStringLiteral(), getCoreType(), clang::CXXDeleteExpr::getDestroyedType(), clang::UserDefinedLiteral::getLiteralOperatorKind(), getObjCBridgeAttr(), clang::ASTContext::getObjCGCAttrKind(), getOpenCLKernelParameterType(), getScalarZeroExpressionForType(), getUuidAttrOfType(), handleAnyX86InterruptAttr(), handleArgumentWithTypeTagAttr(), handleFormatArgAttr(), handleFormatAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), handleObjCReturnsInnerPointerAttr(), hasCppPointerType(), hasPointerRepresentation(), clang::Expr::IgnoreParenNoopCasts(), isAnyPointerType(), clang::ExtVectorElementExpr::isArrow(), isAutoCastType(), isCompoundType(), isConsumableType(), isIntegerLikeType(), isLibstdcxxPointerReturnFalseHack(), clang::Expr::isOBJCGCCandidate(), clang::Sema::isObjCPointerConversion(), clang::Sema::IsPointerConversion(), isPointerOrRef(), IsTypeModifiable(), isValidSubjectOfCFAttribute(), IsVoidStarType(), loadToBegin(), MakeBinaryAtomicValue(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeTypedefNameDecl(), objectifyExpr(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PrepareCastToObjCObjectPointer(), ResolveOverloadForDeduction(), rewriteBuiltinFunctionDecl(), SemaBuiltinCallWithStaticChain(), SemaOpenCLBuiltinEnqueueKernel(), setObjCGCLValueClass(), clang::CodeGen::CodeGenFunction::StartFunction(), TryConstCast(), TypeIsInnerPointer(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), and clang::ento::ConditionBRVisitor::VisitTrueTest().
bool Type::isPromotableIntegerType | ( | ) | const |
More type predicates useful for type checking/promotion.
Definition at line 2320 of file Type.cpp.
References isDependentType().
Referenced by clang::Sema::ActOnEnumBody(), clang::Sema::BuildVAArgExpr(), clang::Sema::CheckAdditionOperands(), clang::ASTContext::getPromotedIntegerType(), clang::Sema::IsIntegralPromotion(), clang::analyze_format_string::ArgType::matchesType(), clang::ASTContext::mergeFunctionTypes(), clang::Sema::UsualArithmeticConversions(), and clang::Sema::UsualUnaryConversions().
|
inline |
Definition at line 5615 of file Type.h.
References isSpecificBuiltinType().
Referenced by isOpenCLSpecificType(), and SemaOpenCLBuiltinEnqueueKernel().
bool Type::isRealFloatingType | ( | ) | const |
Floating point categories.
Definition at line 1799 of file Type.cpp.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::Sema::BuildExtVectorType(), clang::Sema::CheckLiteralOperatorDeclaration(), DiagnoseBadFunctionCast(), emitReplacement(), Evaluate(), EvaluateFloat(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), getAbsoluteValueKind(), clang::ASTContext::getFloatingTypeOfSizeWithinDomain(), clang::StandardConversionSequence::getNarrowingKind(), getScalarZeroExpressionForType(), handleFloatConversion(), handleIntegerToComplexFloatConversion(), HandleVectorSizeAttr(), isIntegerLikeType(), IsStandardConversion(), OpenCLArithmeticConversions(), clang::Sema::PerformImplicitConversion(), TryStaticCast(), tryVectorConvertAndSplat(), and clang::Sema::UsualArithmeticConversions().
bool Type::isRealType | ( | ) | const |
Definition at line 1805 of file Type.cpp.
Referenced by breakDownVectorType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckVectorOperands(), and rewriteToObjCProperty().
|
inline |
Definition at line 5539 of file Type.h.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCallExpr(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberPointerType(), buildMemcpyForAssignmentOp(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildVAArgExpr(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckExceptionSpecSubset(), clang::Sema::CheckMemberPointerConversion(), CheckMoveOnConstruction(), CheckObjCCollectionLiteralElement(), CheckOriginalCallArgDeduction(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckPointerConversion(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::checkVariadicArgument(), ClassifyTemporary(), classifyTypeForARCConversion(), clang::Sema::CollectIvarsToConstructOrDestruct(), clang::CXXBindTemporaryExpr::Create(), createReferenceTemporary(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenModule::EmitConstantInit(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), Evaluate(), evaluateCDTSize(), EvaluateInPlace(), EvaluateRecord(), EvaluateTemporary(), FastEvaluateAsRValue(), clang::Sema::FindAllocationFunctions(), FindConversionForRefInit(), findSubobject(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::QualType::getBaseTypeIdentifier(), clang::ASTContext::getByrefLifetime(), clang::QualType::getNonLValueExprType(), getOpenCLKernelParameterType(), getSelfInitExpr(), clang::Sema::getTypeName(), clang::FunctionDecl::getUnusedResultAttr(), InitCatchParam(), clang::InitializationSequence::InitializeFrom(), IsAcceptableNonMemberOperatorCandidate(), clang::Sema::IsBlockPointerConversion(), isCARCBridgableType(), isCompoundType(), clang::Expr::isConstantInitializer(), clang::Sema::isCopyElisionCandidate(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), isObjCReceiverType(), isOverloadableType(), clang::Sema::IsPointerConversion(), isRecordType(), IsStandardConversion(), isTrackedVar(), LookupMemberExpr(), clang::Sema::PerformObjectMemberConversion(), clang::TreeTransform< Derived >::RebuildMemberExpr(), ResolveOverloadedFunctionForReferenceBinding(), setObjCGCLValueClass(), clang::Expr::skipRValueSubobjectAdjustments(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryConstCast(), tryDiagnoseOverloadedCast(), TryListConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), TryReferenceInitializationCore(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitInitListExpr(), and warnAboutAmbiguousFunction().
|
inline |
Definition at line 5491 of file Type.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddInitializerToDecl(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::addPrivate(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicType(), BuildImplicitMemberInitializer(), clang::Sema::buildInitCaptureField(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildPointerType(), clang::Sema::BuildQualifiedType(), clang::canDynamicCastThrow(), clang::CapturedStmt::Capture::Capture(), captureInBlock(), captureInLambda(), castToBase(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), CheckConvertedConstantExpression(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFieldDecl(), CheckForDanglingReferenceOrPointer(), CheckForReference(), CheckLValueConstantExpression(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckOpenMPLinearDecl(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), ClassifyDiagnostic(), clang::Sema::CompareReferenceRelationship(), createObjCPropertyGetter(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), DiagnoseForRangeReferenceVariableCopies(), DiagnoseForRangeVariableCopies(), diagnoseListInit(), DiagnoseUninitializedReference(), DoMarkVarDeclReferenced(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenModule::EmitConstantExpr(), clang::CodeGen::CodeGenModule::EmitConstantInit(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::ento::SValBuilder::evalCast(), clang::Expr::EvaluateAsInitializer(), EvaluateUnaryTypeTrait(), EvalVal(), clang::Sema::FinalizeDeclaration(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::QualType::getBaseTypeIdentifier(), getCoreType(), clang::CFGImplicitDtor::getDestructorDecl(), GetNumNonZeroBytesInInit(), getUuidAttrOfType(), handleObjCReturnsInnerPointerAttr(), hasPointerRepresentation(), clang::Expr::HasSideEffects(), clang::InitializationSequence::InitializeFrom(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), isAutoCastType(), isCallback(), isCompoundType(), isConstantEmittableObjectType(), isConsumableType(), isLiteralType(), clang::ento::Loc::isLocType(), isObjectType(), isPointerOrRef(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::CodeGen::CodeGenModule::isTypeConstant(), clang::Expr::isUnusedResultAWarning(), clang::Sema::isValidPointerAttrType(), loadToBegin(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), PerformReturnAdjustment(), clang::APValue::printPretty(), clang::ReferenceType::ReferenceType(), clang::Expr::setType(), TryCopyInitialization(), TryListConversion(), TryListInitialization(), TryReferenceInit(), TryRefInitWithConversionFunction(), TryStaticImplicitCast(), TryUserDefinedConversion(), clang::FunctionCallFilterCCC::ValidateCandidate(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl(), and warnAboutAmbiguousFunction().
|
inline |
Definition at line 5623 of file Type.h.
References isSpecificBuiltinType().
Referenced by isOpenCLSpecificType(), SemaBuiltinCommitRWPipe(), and SemaBuiltinRWPipe().
|
inline |
Definition at line 5497 of file Type.h.
Referenced by clang::Sema::AddConversionCandidate(), AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::BuildExceptionDeclaration(), EvaluateUnaryTypeTrait(), FindConversionForRefInit(), clang::CXXConstructorDecl::isMoveConstructor(), isRValueRef(), RefersToRValueRef(), TryListConversion(), TryReferenceInit(), TryReferenceListInitialization(), and TryStaticReferenceDowncast().
|
inline |
Definition at line 5603 of file Type.h.
References isSpecificBuiltinType().
Referenced by clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildArrayType(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::HandleField(), isOpenCLSpecificType(), clang::InitializationSequence::Perform(), processTypeAttrs(), and TryOCLSamplerInitialization().
|
inline |
Definition at line 5715 of file Type.h.
References clang::IsEnumDeclComplete().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnOpenMPAtomicDirective(), clang::Sema::areLaxCompatibleVectorTypes(), breakDownVectorType(), clang::Sema::BuildPseudoDestructorExpr(), clang::CapturedStmt::Capture::Capture(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBooleanCondition(), checkCondition(), clang::Sema::CheckLogicalOperands(), clang::Sema::CreateBuiltinUnaryOp(), EvaluateUnaryTypeTrait(), clang::Sema::getFixItZeroInitializerForType(), getScalarTypeKind(), getScalarZeroExpressionForType(), hasIsEqualMethod(), clang::QualType::isCXX11PODType(), isLiteralType(), isStandardLayoutType(), isTrackedVar(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), matchTypes(), TryListInitialization(), and clang::ento::ConditionBRVisitor::VisitTrueTest().
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 1722 of file Type.cpp.
Referenced by clang::Sema::ActOnEnumBody(), clang::Sema::ActOnFinishSwitchStmt(), CheckICE(), clang::Sema::CheckTemplateArgument(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::DiagnoseAssignmentEnum(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitBoundsCheck(), EmitCXXNewAllocSize(), emitPointerArithmetic(), clang::ento::BasicValueFactory::getAPSIntType(), clang::StandardConversionSequence::getNarrowingKind(), getNextLargerIntegralType(), HandleFloatToIntCast(), hasSignedIntegerRepresentation(), isRepresentableIntegerValue(), clang::CodeGen::CGBitFieldInfo::MakeInfo(), and clang::ASTContext::MakeIntValue().
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 1706 of file Type.cpp.
Referenced by clang::Sema::AddModeAttr(), clang::Sema::CheckCompatibleReinterpretCast(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), EvaluateUnaryTypeTrait(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::CodeGen::CodeGenFunction::GenerateSEHFilterFunction(), getIntegerWidthAndSignedness(), clang::ASTContext::getPromotedIntegerType(), clang::Sema::IsIntegralPromotion(), isOverflowingIntegerType(), clang::ASTContext::isPromotableBitField(), rewriteToNumericBoxedExpression(), and clang::ento::ExprEngine::VisitOffsetOfExpr().
Test for a particular builtin type.
Definition at line 5647 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildVAArgExpr(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::OverloadExpr::find(), clang::ASTContext::getOpenMPDefaultSimdAlign(), clang::ASTContext::getPreferredTypeAlign(), isCharType(), isClkEventT(), isEventT(), isNDRangeT(), isQueueT(), isReserveIDT(), isSamplerT(), isTypeSubstitutable(), and LookupMemberExpr().
Test for a specific placeholder type.
Definition at line 5667 of file Type.h.
References clang::BuiltinType::isPlaceholderTypeKind().
Referenced by clang::Sema::ActOnArraySubscriptExpr(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildCoreturnStmt(), clang::CallExpr::getCallReturnType(), 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 2352 of file Type.cpp.
References getTypeClass().
Referenced by GetBaseType().
bool Type::isStandardLayoutType | ( | ) | const |
Test if this type is a standard-layout type.
(C++0x [basic.type]p9)
Definition at line 2221 of file Type.cpp.
References getAs(), getBaseElementTypeUnsafe(), isDependentType(), isIncompleteType(), isScalarType(), and isVectorType().
Referenced by EvaluateUnaryTypeTrait().
bool Type::isStructureOrClassType | ( | ) | const |
Definition at line 378 of file Type.cpp.
References clang::TagDecl::isClass(), clang::TagDecl::isInterface(), and clang::TagDecl::isStruct().
Referenced by clang::Sema::CheckCompleteVariableDeclaration().
bool Type::isStructureType | ( | ) | const |
Definition at line 363 of file Type.cpp.
Referenced by EvaluateUnaryTypeTrait(), and clang::Sema::MergeTypedefNameDecl().
|
inline |
Determine whether this type is an undeduced type, meaning that it somehow involves a C++11 'auto' type which has not yet been deduced.
Definition at line 5749 of file Type.h.
References getContainedAutoType(), and clang::AutoType::isDeduced().
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), clang::Sema::BuildVariableInstantiation(), clang::Sema::canDelayFunctionBody(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::deduceClosureReturnType(), clang::Sema::DeduceReturnType(), clang::Sema::DeduceTemplateArguments(), FinishForRangeVarDecl(), GetTypeOfFunction(), handleObjCOwnershipTypeAttr(), hasDeducedReturnType(), clang::Sema::MergeVarDeclTypes(), and SpecializeCorrespondingLambdaCallOperatorAndInvoker().
bool Type::isUnionType | ( | ) | const |
Definition at line 391 of file Type.cpp.
Referenced by appendRecordType(), clang::ento::SymbolManager::canSymbolicate(), clang::Sema::CheckBaseSpecifier(), CheckConstexprCtorInitializer(), checkIsValidOpenCLKernelParameter(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), evaluateCDTSize(), EvaluateUnaryTypeTrait(), handleTransparentUnionAttr(), and isCompoundType().
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 1762 of file Type.cpp.
Referenced by clang::Sema::CheckTemplateArgument(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), HandleIntToIntCast(), hasUnsignedIntegerRepresentation(), and clang::ento::SValBuilder::makeIntVal().
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 1746 of file Type.cpp.
Referenced by clang::Sema::ActOnStringLiteral(), clang::Sema::CheckCompatibleReinterpretCast(), clang::ento::SValBuilder::evalIntegralCast(), EvaluateUnaryTypeTrait(), expandStringLiteral(), extractStringLiteralCharacter(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), clang::ASTContext::getIntegerTypeOrder(), clang::ASTContext::getPromotedIntegerType(), clang::Sema::IsIntegralPromotion(), SemaBuiltinReserveRWPipe(), and SemaBuiltinRWPipe().
|
inline |
Definition at line 5530 of file Type.h.
Referenced by clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::BuildArrayType(), clang::Sema::BuildCompoundLiteralExpr(), CheckICE(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), emitOMPArraySectionBase(), clang::ento::SValBuilder::evalCast(), 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 1789 of file Type.h.
References TypeBits.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnOpenMPCopyprivateClause(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildExceptionDeclaration(), captureVariablyModifiedType(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), diagnoseArrayStarInParamType(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), clang::CodeGen::CodeGenFunction::EmitCompoundLiteralLValue(), clang::CodeGen::CodeGenModule::EmitExplicitCastExprType(), emitReductionFunction(), clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(), clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::ASTContext::getVariableArrayDecayedType(), clang::Sema::HandleExprEvaluationContextForTypeof(), hasSizedVLAType(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::QualType::isCanonicalAsParam(), clang::Sema::isIncompatibleTypedef(), isVariableCapturable(), NeedsInstantiationAsFunctionType(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstType(), clang::Sema::tryCaptureVariable(), and TryToFixInvalidVariablyModifiedType().
|
inline |
Definition at line 5548 of file Type.h.
Referenced by clang::Sema::ActOnCastExpr(), clang::ASTContext::areCompatibleVectorTypes(), clang::Sema::areLaxCompatibleVectorTypes(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildVectorLiteral(), clang::Sema::CheckAdditionOperands(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), clang::Sema::CheckLogicalOperands(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckShiftOperands(), clang::Sema::CheckSubtractionOperands(), CheckVecStepTraitOperandType(), clang::Sema::CheckVectorCast(), ConvertTypeToDiagnosticString(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CXXCheckConditionalOperands(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), Evaluate(), EvaluateVector(), handleTransparentUnionAttr(), clang::QualType::isCXX11PODType(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), isIntegerLikeType(), clang::Sema::isLaxVectorConversion(), isLiteralType(), clang::Sema::IsPointerConversion(), isStandardLayoutType(), isTrackedVar(), clang::QualType::isTriviallyCopyableType(), clang::QualType::isTrivialType(), IsVectorConversion(), clang::Expr::refersToVectorElement(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), TryReinterpretCast(), and clang::ento::ExprEngine::VisitInitListExpr().
|
inline |
Return true if the visibility was explicitly set is the code.
Definition at line 1953 of file Type.h.
References getLinkageAndVisibility(), and clang::LinkageInfo::isVisibilityExplicit().
bool Type::isVoidPointerType | ( | ) | const |
Definition at line 385 of file Type.cpp.
Referenced by clang::Sema::CheckAssignmentConstraints(), checkConditionalBlockPointerCompatibility(), checkIntToPointerCast(), clang::Sema::CheckSubscriptingKind(), clang::Sema::FindCompositeObjCPointerType(), getExistingLazyBinding(), handleObjCBridgeAttr(), clang::analyze_format_string::ArgType::matchesType(), clang::Sema::MergeTypedefNameDecl(), and clang::ASTContext::ObjCQualifiedIdTypesAreCompatible().
|
inline |
Definition at line 5680 of file Type.h.
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnStartOfFunctionDef(), AddObjCKeyValueCompletions(), AddOrdinaryNameResults(), clang::Sema::BuildArrayType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCoreturnStmt(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildFunctionType(), clang::Sema::BuildInstanceMessage(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildReferenceType(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), checkArithmeticBinOpPointerOperands(), checkArithmeticOpPointerOperand(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompatibleReinterpretCast(), checkConditionalObjectPointersCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalVoidType(), clang::Sema::CheckConstexprFunctionBody(), clang::Sema::CheckCXXThrowOperand(), CheckExtensionTraitOperandType(), clang::Sema::CheckFunctionDeclaration(), CheckIndirectionOperand(), clang::comments::Sema::checkReturnsCommand(), clang::Sema::CheckSpecifiedExceptionType(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTransparentUnionArgumentConstraints(), CheckUnaryTypeTraitTypeCompleteness(), clang::Sema::checkUnknownAnyCast(), clang::Sema::CheckVariableDeclarationType(), CheckVecStepTraitOperandType(), ClassifyConditional(), classifyTypeForARCConversion(), clang::Sema::CodeCompleteObjCMethodDecl(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefaultLvalueConversion(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), EvalAddr(), clang::ento::StoreManager::evalDynamicCast(), Evaluate(), EvaluateBinaryTypeTrait(), evaluateCDTSize(), EvaluateLValue(), evaluateTypeTrait(), EvaluateUnaryTypeTrait(), EvaluateVoid(), EvalVal(), FinishForRangeVarDecl(), FormatFunctionParameter(), clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), HandleFunctionCall(), handleGlobalAttr(), handleMipsInterruptAttr(), HandleSizeof(), clang::Sema::IgnoredValueConversions(), clang::CXXDynamicCastExpr::isAlwaysNull(), clang::QualType::isAtLeastAsQualifiedAs(), isCARCBridgableType(), clang::QualType::isCForbiddenLValueType(), isDispatchBlock(), isFundamentalType(), isIncompleteType(), isLiteralType(), clang::Expr::isNullPointerConstant(), isObjectType(), clang::Sema::IsPointerConversion(), clang::StandardConversionSequence::isPointerConversionToVoidPointer(), clang::Sema::IsQualificationConversion(), clang::ento::cocoa::isRefType(), isUnitTest(), clang::Expr::isUnusedResultAWarning(), clang::Sema::isValidVarArgType(), isVoidPointerToNonConst(), IsVoidStarType(), clang::analyze_format_string::ArgType::matchesType(), clang::consumed::ConsumedAnalyzer::run(), shouldBeModeledWithNoOp(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstParmVarDecl(), TryStaticCast(), and warnAboutAmbiguousFunction().
bool Type::isWideCharType | ( | ) | const |
Definition at line 1665 of file Type.cpp.
Referenced by clang::Sema::BuildExpressionFromIntegralTemplateArgument(), clang::analyze_printf::PrintfSpecifier::fixType(), clang::analyze_scanf::ScanfSpecifier::fixType(), and getScalarZeroExpressionForType().
Definition at line 1528 of file Type.h.
References TypeBits.
Referenced by clang::ObjCObjectType::ObjCObjectType().
Definition at line 1519 of file Type.h.
References TypeBits.
Referenced by clang::ObjCObjectType::ObjCObjectType().
Definition at line 1524 of file Type.h.
References TypeBits.
Referenced by clang::ObjCObjectType::ObjCObjectType().
|
friend |
|
friend |
union { ... } |
ArrayTypeBitfields clang::Type::ArrayTypeBits |
Definition at line 1480 of file Type.h.
Referenced by clang::ArrayType::ArrayType(), clang::ArrayType::getIndexTypeCVRQualifiers(), and clang::ArrayType::getSizeModifier().
AttributedTypeBitfields clang::Type::AttributedTypeBits |
Definition at line 1481 of file Type.h.
Referenced by clang::AttributedType::getAttrKind().
AutoTypeBitfields clang::Type::AutoTypeBits |
Definition at line 1482 of file Type.h.
Referenced by clang::AutoType::getKeyword().
BuiltinTypeBitfields clang::Type::BuiltinTypeBits |
Definition at line 1483 of file Type.h.
Referenced by clang::BuiltinType::BuiltinType(), and clang::BuiltinType::getKind().
FunctionTypeBitfields clang::Type::FunctionTypeBits |
Definition at line 1484 of file Type.h.
Referenced by clang::FunctionType::FunctionType(), clang::FunctionType::getExtInfo(), clang::FunctionProtoType::getRefQualifier(), and clang::FunctionType::getTypeQuals().
ObjCObjectTypeBitfields clang::Type::ObjCObjectTypeBits |
Definition at line 1485 of file Type.h.
Referenced by clang::ObjCObjectType::getNumProtocols(), clang::ObjCObjectType::getTypeArgsAsWritten(), clang::ObjCObjectType::isKindOfTypeAsWritten(), clang::ObjCObjectType::isSpecialized(), clang::ObjCObjectType::isSpecializedAsWritten(), and clang::ObjCObjectType::ObjCObjectType().
ReferenceTypeBitfields clang::Type::ReferenceTypeBits |
Definition at line 1486 of file Type.h.
Referenced by clang::ReferenceType::isInnerRef(), clang::ReferenceType::isSpelledAsLValue(), and clang::ReferenceType::ReferenceType().
TypeBitfields clang::Type::TypeBits |
Definition at line 1479 of file Type.h.
Referenced by containsUnexpandedParameterPack(), clang::TypePropertyCache< Private >::ensure(), getLinkage(), getTypeClass(), getTypeClassName(), hasUnnamedOrLocalType(), isDependentType(), isFromAST(), isInstantiationDependentType(), isLinkageValid(), isVariablyModifiedType(), setContainsUnexpandedParameterPack(), setDependent(), setInstantiationDependent(), setVariablyModified(), and Type().
TypeWithKeywordBitfields clang::Type::TypeWithKeywordBits |
Definition at line 1487 of file Type.h.
Referenced by clang::TypeWithKeyword::getKeyword(), and clang::TypeWithKeyword::TypeWithKeyword().
VectorTypeBitfields clang::Type::VectorTypeBits |
Definition at line 1488 of file Type.h.
Referenced by clang::VectorType::getNumElements(), clang::VectorType::getVectorKind(), and clang::VectorType::VectorType().