clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends
clang::QualType Class Reference

#include <Type.h>

List of all members.

Classes

class  StreamedQualTypeHelper

Public Types

enum  DestructionKind { DK_none, DK_cxx_destructor, DK_objc_strong_lifetime, DK_objc_weak_lifetime }

Public Member Functions

 QualType ()
 QualType (const Type *Ptr, unsigned Quals)
 QualType (const ExtQuals *Ptr, unsigned Quals)
unsigned getLocalFastQualifiers () const
void setLocalFastQualifiers (unsigned Quals)
const TypegetTypePtr () const
const TypegetTypePtrOrNull () const
const IdentifierInfogetBaseTypeIdentifier () const
 Retrieves a pointer to the name of the base type.
SplitQualType split () const
void * getAsOpaquePtr () const
const Typeoperator* () const
const Typeoperator-> () const
bool isCanonical () const
bool isCanonicalAsParam () const
bool isNull () const
 isNull - Return true if this QualType doesn't point to a type yet.
bool isLocalConstQualified () const
 Determine whether this particular QualType instance has the "const" qualifier set, without looking through typedefs that may have added "const" at a different level.
bool isConstQualified () const
 Determine whether this type is const-qualified.
bool isLocalRestrictQualified () const
 Determine whether this particular QualType instance has the "restrict" qualifier set, without looking through typedefs that may have added "restrict" at a different level.
bool isRestrictQualified () const
 Determine whether this type is restrict-qualified.
bool isLocalVolatileQualified () const
 Determine whether this particular QualType instance has the "volatile" qualifier set, without looking through typedefs that may have added "volatile" at a different level.
bool isVolatileQualified () const
 Determine whether this type is volatile-qualified.
bool hasLocalQualifiers () const
 Determine whether this particular QualType instance has any qualifiers, without looking through any typedefs that might add qualifiers at a different level.
bool hasQualifiers () const
 Determine whether this type has any qualifiers.
bool hasLocalNonFastQualifiers () const
 Determine whether this particular QualType instance has any "non-fast" qualifiers, e.g., those that are stored in an ExtQualType instance.
Qualifiers getLocalQualifiers () const
 Retrieve the set of qualifiers local to this particular QualType instance, not including any qualifiers acquired through typedefs or other sugar.
Qualifiers getQualifiers () const
 Retrieve the set of qualifiers applied to this type.
unsigned getLocalCVRQualifiers () const
 Retrieve the set of CVR (const-volatile-restrict) qualifiers local to this particular QualType instance, not including any qualifiers acquired through typedefs or other sugar.
unsigned getCVRQualifiers () const
 Retrieve the set of CVR (const-volatile-restrict) qualifiers applied to this type.
bool isConstant (ASTContext &Ctx) const
bool isPODType (ASTContext &Context) const
 Determine whether this is a Plain Old Data (POD) type (C++ 3.9p10).
bool isCXX98PODType (ASTContext &Context) const
bool isCXX11PODType (ASTContext &Context) const
bool isTrivialType (ASTContext &Context) const
bool isTriviallyCopyableType (ASTContext &Context) const
void addConst ()
 addConst - add the specified type qualifier to this QualType.
QualType withConst () const
void addVolatile ()
 addVolatile - add the specified type qualifier to this QualType.
QualType withVolatile () const
void addRestrict ()
 Add the restrict qualifier to this QualType.
QualType withRestrict () const
QualType withCVRQualifiers (unsigned CVR) const
void addFastQualifiers (unsigned TQs)
void removeLocalConst ()
void removeLocalVolatile ()
void removeLocalRestrict ()
void removeLocalCVRQualifiers (unsigned Mask)
void removeLocalFastQualifiers ()
void removeLocalFastQualifiers (unsigned Mask)
QualType withFastQualifiers (unsigned TQs) const
QualType withExactLocalFastQualifiers (unsigned TQs) const
QualType withoutLocalFastQualifiers () const
QualType getCanonicalType () const
QualType getLocalUnqualifiedType () const
 Return this type with all of the instance-specific qualifiers removed, but without removing any qualifiers that may have been applied through typedefs.
QualType getUnqualifiedType () const
 Retrieve the unqualified variant of the given type, removing as little sugar as possible.
SplitQualType getSplitUnqualifiedType () const
bool isMoreQualifiedThan (QualType Other) const
 Determine whether this type is more qualified than the other given type, requiring exact equality for non-CVR qualifiers.
bool isAtLeastAsQualifiedAs (QualType Other) const
 Determine whether this type is at least as qualified as the other given type, requiring exact equality for non-CVR qualifiers.
QualType getNonReferenceType () const
QualType getNonLValueExprType (const ASTContext &Context) const
 Determine the type of a (typically non-lvalue) expression with the specified result type.
QualType getDesugaredType (const ASTContext &Context) const
SplitQualType getSplitDesugaredType () const
QualType getSingleStepDesugaredType (const ASTContext &Context) const
 Return the specified type with one level of "sugar" removed from the type.
QualType IgnoreParens () const
std::string getAsString () const
std::string getAsString (const PrintingPolicy &Policy) const
void print (raw_ostream &OS, const PrintingPolicy &Policy, const Twine &PlaceHolder=Twine()) const
void getAsStringInternal (std::string &Str, const PrintingPolicy &Policy) const
StreamedQualTypeHelper stream (const PrintingPolicy &Policy, const Twine &PlaceHolder=Twine()) const
void dump (const char *s) const
void dump () const
void Profile (llvm::FoldingSetNodeID &ID) const
unsigned getAddressSpace () const
 getAddressSpace - Return the address space of this type.
Qualifiers::GC getObjCGCAttr () const
 getObjCGCAttr - Returns gc attribute of this type.
bool isObjCGCWeak () const
 isObjCGCWeak true when Type is objc's weak.
bool isObjCGCStrong () const
 isObjCGCStrong true when Type is objc's strong.
Qualifiers::ObjCLifetime getObjCLifetime () const
 getObjCLifetime - Returns lifetime attribute of this type.
bool hasNonTrivialObjCLifetime () const
bool hasStrongOrWeakObjCLifetime () const
DestructionKind isDestructedType () const
bool isCForbiddenLValueType () const
 Determine whether expressions of the given type are forbidden from being lvalues in C.

Static Public Member Functions

static QualType getFromOpaquePtr (const void *Ptr)
static std::string getAsString (SplitQualType split)
static std::string getAsString (const Type *ty, Qualifiers qs)
static void print (SplitQualType split, raw_ostream &OS, const PrintingPolicy &policy, const Twine &PlaceHolder)
static void print (const Type *ty, Qualifiers qs, raw_ostream &OS, const PrintingPolicy &policy, const Twine &PlaceHolder)
static void getAsStringInternal (SplitQualType split, std::string &out, const PrintingPolicy &policy)
static void getAsStringInternal (const Type *ty, Qualifiers qs, std::string &out, const PrintingPolicy &policy)

Friends

class QualifierCollector
bool operator== (const QualType &LHS, const QualType &RHS)
bool operator!= (const QualType &LHS, const QualType &RHS)

Detailed Description

QualType - For efficiency, we don't store CV-qualified types as nodes on their own: instead each reference to a type stores the qualifiers. This greatly reduces the number of nodes we need to allocate for types (for example we only need one for 'int', 'const int', 'volatile int', 'const volatile int', etc).

As an added efficiency bonus, instead of making this a pair, we just store the two bits we care about in the low bits of the pointer. To handle the packing/unpacking, we make QualType be a simple wrapper class that acts like a smart pointer. A third bit indicates whether there are extended qualifiers present, in which case the pointer points to a special structure.

Definition at line 532 of file Type.h.


Member Enumeration Documentation

Enumerator:
DK_none 
DK_cxx_destructor 
DK_objc_strong_lifetime 
DK_objc_weak_lifetime 

Definition at line 954 of file Type.h.


Constructor & Destructor Documentation

Definition at line 555 of file Type.h.

clang::QualType::QualType ( const Type Ptr,
unsigned  Quals 
) [inline]

Definition at line 557 of file Type.h.

clang::QualType::QualType ( const ExtQuals Ptr,
unsigned  Quals 
) [inline]

Definition at line 559 of file Type.h.


Member Function Documentation

void clang::QualType::addConst ( ) [inline]

Definition at line 726 of file Type.h.

References clang::Qualifiers::FastMask.

Referenced by withFastQualifiers().

void clang::QualType::addRestrict ( ) [inline]

Add the restrict qualifier to this QualType.

Definition at line 715 of file Type.h.

References clang::Qualifiers::addFastQualifiers(), and clang::Qualifiers::Restrict.

void clang::QualType::addVolatile ( ) [inline]

addVolatile - add the specified type qualifier to this QualType.

Definition at line 707 of file Type.h.

References clang::Qualifiers::addFastQualifiers(), and clang::Qualifiers::Volatile.

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

void QualType::dump ( const char *  s) const
LLVM_DUMP_METHOD void QualType::dump ( ) const

Definition at line 2202 of file ASTDumper.cpp.

void* clang::QualType::getAsOpaquePtr ( ) const [inline]

Definition at line 580 of file Type.h.

Referenced by clang::CodeGen::CGDebugInfo::completeClassData(), clang::CodeGen::CGDebugInfo::completeTemplateDefinition(), clang::CodeGen::CGDebugInfo::completeType(), clang::DependentDiagnostic::Create(), clang::CodeGen::CodeGenFunction::EmitCheckTypeDescriptor(), clang::CanQual< ObjCObjectType >::getAsOpaquePtr(), llvm::PointerLikeTypeTraits< clang::QualType >::getAsVoidPointer(), clang::CanQual< T >::getFromOpaquePtr(), llvm::DenseMapInfo< clang::QualType >::getHashValue(), clang::serialization::UnsafeQualTypeDenseMapInfo::getHashValue(), clang::CodeGen::CGDebugInfo::getOrCreateInterfaceType(), clang::sema::DelayedDiagnostic::makeForbiddenType(), clang::QualTypeOrdering::operator()(), clang::operator<<(), clang::ComplexType::Profile(), clang::PointerType::Profile(), clang::AdjustedType::Profile(), clang::BlockPointerType::Profile(), clang::ReferenceType::Profile(), clang::MemberPointerType::Profile(), clang::ConstantArrayType::Profile(), clang::IncompleteArrayType::Profile(), clang::DependentSizedArrayType::Profile(), clang::DependentSizedExtVectorType::Profile(), clang::VectorType::Profile(), clang::FunctionNoProtoType::Profile(), clang::AttributedType::Profile(), clang::SubstTemplateTypeParmType::Profile(), clang::AutoType::Profile(), clang::PackExpansionType::Profile(), clang::ObjCObjectTypeImpl::Profile(), clang::ObjCObjectPointerType::Profile(), clang::AtomicType::Profile(), clang::StandardConversionSequence::setAllToTypes(), clang::StandardConversionSequence::setFromType(), clang::AmbiguousConversionSequence::setFromType(), clang::BadConversionSequence::setFromType(), clang::TemplateArgument::setIntegralType(), clang::ObjCMessageExpr::setSuper(), clang::StandardConversionSequence::setToType(), clang::AmbiguousConversionSequence::setToType(), clang::BadConversionSequence::setToType(), clang::TemplateArgument::TemplateArgument(), TryReferenceInit(), and clang::InheritanceHierarchyWriter::WriteNodeReference().

std::string clang::QualType::getAsString ( ) const [inline]
static std::string clang::QualType::getAsString ( SplitQualType  split) [inline, static]
std::string QualType::getAsString ( const Type ty,
Qualifiers  qs 
) [static]

Definition at line 1538 of file TypePrinter.cpp.

std::string QualType::getAsString ( const PrintingPolicy Policy) const

Definition at line 1532 of file TypePrinter.cpp.

void clang::QualType::getAsStringInternal ( std::string &  Str,
const PrintingPolicy Policy 
) const [inline]
static void clang::QualType::getAsStringInternal ( SplitQualType  split,
std::string &  out,
const PrintingPolicy policy 
) [inline, static]

Definition at line 889 of file Type.h.

References clang::SplitQualType::Quals, and clang::SplitQualType::Ty.

void QualType::getAsStringInternal ( const Type ty,
Qualifiers  qs,
std::string &  out,
const PrintingPolicy policy 
) [static]

Definition at line 1554 of file TypePrinter.cpp.

QualType clang::QualType::getDesugaredType ( const ASTContext Context) const [inline]

getDesugaredType - Return the specified type with any "sugar" removed from the type. This takes off typedefs, typeof's etc. If the outer level of the type is already concrete, it returns it unmodified. This is similar to getting the canonical type, but it doesn't remove *all* typedefs. For example, it returns "T*" as "T*", (not as "int*"), because the pointer is concrete.

Qualifiers are left in place.

Definition at line 830 of file Type.h.

Referenced by clang::ento::TypedRegion::getDesugaredLocationType(), and clang::ento::TypedValueRegion::getDesugaredValueType().

static QualType clang::QualType::getFromOpaquePtr ( const void *  Ptr) [inline, static]

Retrieve the set of CVR (const-volatile-restrict) qualifiers local to this particular QualType instance, not including any qualifiers acquired through typedefs or other sugar.

Definition at line 661 of file Type.h.

Referenced by clang::Sema::CheckOverridingFunctionReturnType(), diagnoseRedundantReturnTypeQualifiers(), and clang::CanQual< ObjCObjectType >::getCVRQualifiers().

Return this type with all of the instance-specific qualifiers removed, but without removing any qualifiers that may have been applied through typedefs.

Definition at line 769 of file Type.h.

Referenced by clang::Sema::AttachBaseSpecifiers(), BuildSimilarlyQualifiedPointerType(), clang::ento::StoreManager::castRegion(), clang::Sema::CheckExceptionSpecSubset(), DiagnoseNarrowingInInitList(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), IsStandardConversion(), and TryObjectArgumentInitialization().

getNonReferenceType - If Type is a reference type (e.g., const int&), returns the type that the reference refers to ("const int"). Otherwise, returns the type itself. This routine is used throughout Sema to implement C++ 5p6:

If an expression initially has the type "reference to T" (8.3.2, 8.5.3), the type is adjusted to "T" prior to any further analysis, the expression designates the object or function denoted by the reference, and the expression is an lvalue.

Definition at line 4845 of file Type.h.

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

Referenced by clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPIdExpression(), clang::Sema::ActOnParamDefaultArgumentError(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::AddConversionCandidate(), AddObjCKeyValueCompletions(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXTypeId(), clang::Sema::BuildDeclarationNameExpr(), BuildImplicitBaseInitializer(), BuildImplicitMemberInitializer(), captureInBlock(), captureInLambda(), clang::Sema::CheckConditionVariable(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteExpression(), CompleteNonViableCandidate(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), createObjCPropertyGetter(), DeduceTemplateArgumentByListElement(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::InitializationSequence::Diagnose(), diagnoseAmbiguousConversion(), clang::Sema::diagnoseARCUnbridgedCast(), DiagnoseBadConversion(), diagnoseNoViableConversion(), clang::Sema::DiagnosePropertyAccessorMismatch(), DiagnoseUninitializedReference(), emitBadConversionNotes(), clang::CodeGen::CodeGenFunction::EmitCallArgs(), emitCPPObjectAtomicSetterCall(), clang::Sema::EmitRelatedResultTypeNote(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EnterCXXTryStmt(), EvaluateBinaryTypeTrait(), FindConversionForRefInit(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CFGImplicitDtor::getDestructorDecl(), clang::UnresolvedMemberExpr::getNamingClass(), clang::CXXTypeidExpr::getTypeOperand(), clang::CXXUuidofExpr::getTypeOperand(), clang::Sema::HandleFunctionTypeMismatch(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), IsAcceptableNonMemberOperatorCandidate(), isAllowableExplicitConversion(), isFirstArgumentCompatibleWithType(), clang::Sema::isValidPointerAttrType(), isVariableAlreadyCapturedInScopeInfo(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::APValue::printPretty(), recordConversion(), clang::Sema::tryCaptureVariable(), and TryRefInitWithConversionFunction().

getObjCGCAttr - Returns gc attribute of this type.

getObjCGCAttr - Return the gc attribute of this type.

Definition at line 4799 of file Type.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::ASTContext::getObjCGCAttrKind(), clang::ASTContext::getObjCGCQualType(), and handleObjCGCTypeAttr().

getObjCLifetime - Returns lifetime attribute of this type.

Definition at line 942 of file Type.h.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclRefExpr(), BuildImplicitMemberInitializer(), clang::Sema::BuildPseudoDestructorExpr(), captureInBlock(), captureInLambda(), checkAllAtProps(), clang::Sema::CheckAllocatedType(), checkARCPropertyImpl(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckObjCARCConversion(), clang::Sema::CheckObjCARCUnavailableWeakConversion(), clang::Sema::CheckParameter(), clang::Sema::CheckTemplateTypeArgument(), checkTrivialClassMembers(), clang::Sema::checkUnsafeAssigns(), clang::Sema::checkUnsafeExprAssigns(), computeBlockInfo(), considerVariable(), deduceWeakPropertyFromType(), clang::Sema::DefaultLvalueConversion(), DiagnoseARCUseOfWeakReceiver(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), EmitObjectDelete(), EvaluateUnaryTypeTrait(), findRetainCycleOwner(), clang::ASTContext::getByrefLifetime(), GetGCAttrTypeForType(), clang::ASTContext::getInnerObjCOwnership(), clang::ASTContext::getLifetimeQualifiedType(), clang::Sema::HandlePropertyInClassExtension(), hasNontrivialObjCLifetime(), inferARCLifetimeForPointee(), inferARCWriteback(), clang::Sema::inferObjCARCLifetime(), isCanonicalResultType(), isCXX11PODType(), isCXX98PODType(), isInvalidICRSource(), isTriviallyCopyableType(), isTrivialType(), clang::Sema::LookupInObjCMethod(), LookupMemberExpr(), PropertyMemoryAttribute(), pushTemporaryCleanup(), setImpliedPropertyAttributeForReadOnlyProperty(), shouldExtendReceiverForInnerPointerMessage(), transferARCOwnershipToDeclSpec(), and tryEmitARCRetainLoadOfScalar().

Retrieve the set of qualifiers applied to this type.

Definition at line 4706 of file Type.h.

References clang::Qualifiers::addFastQualifiers().

Referenced by AdjustFunctionParmAndArgTypesForDeduction(), AdoptQualifiers(), clang::ASTContext::BlockRequiresCopying(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildFieldReferenceExpr(), BuildImplicitBaseInitializer(), BuildSimilarlyQualifiedPointerType(), checkConditionalObjectPointersCompatibility(), checkConditionalPointerCompatibility(), CheckOriginalCallArgDeduction(), clang::Sema::CodeCompleteMemberReferenceExpr(), clang::CodeGen::CodeGenFunction::CreateAggTemp(), createPlaceholderSlot(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DiagnoseAssignmentResult(), EmitAnyExprToExn(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCompoundLiteralLValue(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), EmitValToTemp(), clang::Sema::FindCompositeObjCPointerType(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), GetFullTypeForDeclarator(), clang::ASTContext::getFunctionType(), clang::ASTContext::getTargetAddressSpace(), clang::ASTContext::getUnqualifiedObjCPointerType(), clang::Sema::HandleField(), handleObjCOwnershipTypeAttr(), hasDirectOwnershipQualifier(), hasInconsistentOrSupersetQualifiersOf(), hasMangledSubstitutionQualifiers(), isAtLeastAsQualifiedAs(), IsConstNonVolatile(), isMoreQualifiedThan(), clang::Sema::isObjCPointerConversion(), clang::Sema::isObjCWritebackConversion(), clang::Sema::IsQualificationConversion(), IsStructurallyEquivalent(), clang::CodeGen::LValue::MakeAddr(), clang::CodeGen::LValue::MakeBitfield(), clang::CodeGen::LValue::MakeExtVectorElt(), clang::CodeGen::LValue::MakeGlobalReg(), clang::CodeGen::LValue::MakeVectorElt(), clang::Sema::PerformObjectArgumentInitialization(), rewriteToObjCProperty(), StoreAnyExprIntoOneUnit(), TryReferenceInit(), TryRefInitWithConversionFunction(), TryStaticCast(), and TypeInfoIsInStandardLibrary().

Return the specified type with one level of "sugar" removed from the type.

This routine takes off the first typedef, typeof, etc. If the outer level of the type is already concrete, it returns it unmodified.

Definition at line 843 of file Type.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(), and clang::Sema::tryCaptureVariable().

getSplitUnqualifiedType - Retrieve the unqualified variant of the given type, removing as little sugar as possible.

Like getUnqualifiedType(), but also returns the set of qualifiers that were built up.

The resulting type might still be qualified if it's sugar for an array type. To strip qualifiers even from within a sugared array type, use ASTContext::getUnqualifiedArrayType.

Definition at line 4766 of file Type.h.

Referenced by clang::Sema::BuildQualifiedType(), and clang::ASTContext::getUnqualifiedArrayType().

const Type * clang::QualType::getTypePtr ( ) const [inline]

Retrieves a pointer to the underlying (unqualified) type.

This function requires that the type not be NULL. If the type might be NULL, use the (slightly less efficient) getTypePtrOrNull().

Definition at line 4679 of file Type.h.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnGCCAsmStmt(), addAssociatedClassesAndNamespaces(), clang::ASTContext::adjustFunctionType(), clang::Sema::BuildCXXNew(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberPointerType(), buildSingleCopyAssignRecursively(), clang::Sema::CheckAddressOfOperand(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckObjCARCConversion(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::EnumDecl::completeDefinition(), computeLinkageInfo(), clang::CodeGen::CodeGenTypes::ConvertRecordDeclType(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::TemplateTypeParmDecl::Create(), CreateNewFunctionDecl(), clang::CanQual< T >::CreateUnsafe(), clang::Sema::DeduceTemplateArguments(), clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(), clang::TypePropertyCache< Private >::ensure(), FindVA(), clang::Sema::FixOverloadedFunctionReference(), GetAlignOfType(), getBaseTypeIdentifier(), clang::ASTContext::getCanonicalNestedNameSpecifier(), clang::ASTContext::getCanonicalParamType(), clang::ASTContext::getCanonicalType(), clang::CodeGen::CodeGenTypes::getCGRecordLayout(), getCurrentInstantiationOf(), clang::ASTContext::getDeclAlign(), getElementType(), getIntegerTypeForEnum(), clang::ASTContext::getLegacyIntegralTypeEncoding(), getNonLValueExprType(), getRequiredQualification(), llvm::simplify_type< ::clang::QualType >::getSimplifiedValue(), clang::ASTContext::getTypeInfo(), clang::ASTContext::getTypeInfoInChars(), clang::CanQual< ObjCObjectType >::getTypePtr(), clang::TypeLoc::getTypePtr(), clang::ASTContext::getUnqualifiedObjCPointerType(), clang::CXXUuidofExpr::GetUuidAttrOfType(), clang::ASTImporter::Import(), clang::ASTContext::isAlignmentRequired(), isCXX11PODType(), isCXX98PODType(), clang::ABIInfo::isHomogeneousAggregate(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), clang::Sema::IsMemberPointerConversion(), clang::Type::isObjCARCImplicitlyUnretainedType(), clang::Sema::IsOverload(), clang::ento::cocoa::isRefType(), isSafeToConvert(), isSingleElementStruct(), clang::ASTImporter::IsStructurallyEquivalent(), isTrivialType(), IsVoidStarType(), clang::CodeGen::CodeGenFunction::IvarTypeWithAggrGCObjects(), clang::serialization::MakeTypeID(), MarkUsedTemplateParameters(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mergeObjCGCQualifiers(), clang::Sema::MergeTypedefNameDecl(), clang::StmtIteratorBase::NextVA(), ObjCBridgeRelatedAttrFromType(), print_elem(), printIntegral(), clang::Sema::tryCaptureVariable(), TypeIsInnerPointer(), UnwrapTypeForDebugInfo(), clang::CodeGen::CodeGenTypes::UpdateCompletedType(), and clang::ASTNodeImporter::VisitMemberPointerType().

const Type * clang::QualType::getTypePtrOrNull ( ) const [inline]

Retrieve the unqualified variant of the given type, removing as little sugar as possible.

This routine looks through various kinds of sugar to find the least-desugared type that is unqualified. For example, given:

 typedef int Integer;
 typedef const Integer CInteger;
 typedef CInteger DifferenceType;

Executing getUnqualifiedType() on the type DifferenceType will desugar until we hit the type Integer, which has no qualifiers on it.

The resulting type might still be qualified if it's sugar for an array type. To strip qualifiers even from within a sugared array type, use ASTContext::getUnqualifiedArrayType.

Definition at line 4759 of file Type.h.

Referenced by clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnOpenMPAlignedClause(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnStmtExpr(), clang::Sema::AddConversionCandidate(), AdjustFunctionParmAndArgTypesForDeduction(), AdoptQualifiers(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), BuildImplicitBaseInitializer(), BuildSimilarlyQualifiedPointerType(), clang::Sema::CheckAllocatedType(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckNonTypeTemplateParameterType(), CheckOriginalCallArgDeduction(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateArgument(), checkTrivialSubobjectCall(), clang::Sema::CheckVectorOperands(), CompareDerivedToBaseConversions(), CompareStandardConversionSequences(), convertQualifiersAndValueKindIfNecessary(), clang::Sema::DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), clang::Sema::DefaultLvalueConversion(), clang::Sema::DiagnoseAssignmentEnum(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseBadFunctionCast(), DiagnoseCastOfObjCSEL(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), EvaluateBinaryTypeTrait(), FindConversionForRefInit(), FormatFunctionParameter(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), GenOpenCLArgMetadata(), clang::ASTContext::getFunctionType(), getNonLValueExprType(), clang::ASTContext::getSignatureParameterType(), clang::CXXBaseSpecifier::getType(), clang::ASTContext::getUnqualifiedObjCPointerType(), clang::InitializedEntity::InitializeParameter(), clang::Sema::IsBlockPointerConversion(), clang::Sema::isInitListConstructor(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), clang::Sema::isObjCWritebackConversion(), clang::Sema::IsQualificationConversion(), clang::ento::cocoa::isRefType(), IsStandardConversion(), IsVoidStarType(), maybeAdjustInterfaceForSubscriptingCheck(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeTypes(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), ResolveOverloadedFunctionForReferenceBinding(), rewriteToObjCProperty(), TryClassUnification(), TryLValueToRValueCast(), TryRefInitWithConversionFunction(), TryStaticDowncast(), TryUserDefinedConversion(), and TypeIsInnerPointer().

Determine whether this particular QualType instance has any "non-fast" qualifiers, e.g., those that are stored in an ExtQualType instance.

Definition at line 646 of file Type.h.

Referenced by clang::serialization::MakeTypeID(), and clang::QualifierCollector::strip().

Definition at line 946 of file Type.h.

Referenced by checkTrivialClassMembers().

Definition at line 950 of file Type.h.

IgnoreParens - Returns the specified type after dropping any outer-level parentheses.

Definition at line 849 of file Type.h.

Referenced by checkQualifiedFunction(), and clang::Sema::hasExplicitCallingConv().

Determine whether this type is at least as qualified as the other given type, requiring exact equality for non-CVR qualifiers.

isAtLeastAsQualifiedAs - Determine whether this type is at last as qualified as the Other type. For example, "const volatile int" is at least as qualified as "const int", "volatile int", "int", and "const volatile int".

Definition at line 4832 of file Type.h.

References getQualifiers().

Referenced by checkObjCPointerTypesForAssignment(), clang::CanQual< ObjCObjectType >::isAtLeastAsQualifiedAs(), clang::Sema::isObjCPointerConversion(), TryClassUnification(), and TryObjectArgumentInitialization().

bool clang::QualType::isCanonical ( ) const [inline]

Determine whether expressions of the given type are forbidden from being lvalues in C.

The expression types that are forbidden to be lvalues are:

  • 'void', but not qualified void
  • function types

The exact rule here is C99 6.3.2.1: An lvalue is an expression with an object type or an incomplete type other than void.

Definition at line 4852 of file Type.h.

Referenced by CheckIndirectionOperand(), and clang::Sema::CreateBuiltinArraySubscriptExpr().

bool clang::QualType::isConstant ( ASTContext Ctx) const [inline]

Determine whether this particular QualType instance has the "const" qualifier set, without looking through typedefs that may have added "const" at a different level.

Definition at line 606 of file Type.h.

References clang::Qualifiers::Const.

Referenced by clang::CanQual< ObjCObjectType >::isConstQualified().

Determine whether this particular QualType instance has the "restrict" qualifier set, without looking through typedefs that may have added "restrict" at a different level.

Definition at line 616 of file Type.h.

References clang::Qualifiers::Restrict.

Referenced by clang::CanQual< ObjCObjectType >::isRestrictQualified().

Determine whether this particular QualType instance has the "volatile" qualifier set, without looking through typedefs that may have added "volatile" at a different level.

Definition at line 626 of file Type.h.

References clang::Qualifiers::Volatile.

Referenced by clang::CanQual< ObjCObjectType >::isVolatileQualified().

Determine whether this type is more qualified than the other given type, requiring exact equality for non-CVR qualifiers.

isMoreQualifiedThan - Determine whether this type is more qualified than the Other type. For example, "const volatile int" is more qualified than "const int", "volatile int", and "int". However, it is not more qualified than "const volatile int".

Definition at line 4822 of file Type.h.

References clang::Qualifiers::compatiblyIncludes(), and getQualifiers().

Referenced by clang::Sema::CheckOverridingFunctionReturnType(), CompareQualificationConversions(), CompareStandardConversionSequences(), and clang::CanQual< ObjCObjectType >::isMoreQualifiedThan().

bool clang::QualType::isNull ( ) const [inline]

isNull - Return true if this QualType doesn't point to a type yet.

Definition at line 599 of file Type.h.

Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnBuiltinOffsetOf(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnClassMessage(), clang::Sema::ActOnConditionalOp(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXThis(), clang::Sema::ActOnCXXTypeid(), clang::Sema::ActOnCXXUuidof(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnLambdaExpr(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnNumericConstant(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), AddClassMessageCompletions(), clang::Sema::AddInitializerToDecl(), addInstantiatedParametersToScope(), clang::Sema::AddMethodCandidate(), AddObjCKeyValueCompletions(), AddOrdinaryNameResults(), AddResultTypeChunk(), addThisCompletion(), clang::Sema::adjustCCAndNoReturn(), AdjustFunctionParmAndArgTypesForDeduction(), clang::TreeTransform< Derived >::AlreadyTransformed(), clang::ento::ProgramState::assumeInBound(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildClassMessageImplicit(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::BuildImplicitMemberExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildObjCEncodeExpression(), clang::Sema::BuildObjCStringLiteral(), clang::Sema::BuildQualifiedType(), clang::Sema::BuildReturnStmt(), BuildSimilarlyQualifiedPointerType(), clang::Sema::BuildUnaryTransformType(), clang::Sema::BuildVAArgExpr(), clang::arcmt::trans::canApplyWeak(), clang::Sema::canDelayFunctionBody(), clang::Sema::canThrow(), clang::ento::StoreManager::CastRetrievedVal(), clang::Sema::CheckAdditionOperands(), checkAllAtProps(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckBitwiseOperands(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), clang::Sema::CheckDestructorAccess(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckFieldDecl(), CheckIndirectionOperand(), clang::Sema::checkInitMethod(), CheckKeyForObjCARCConversion(), clang::Sema::CheckMultiplyDivideOperands(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckPackExpansion(), clang::Sema::CheckRemainderOperands(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckTemplateIdType(), clang::Sema::checkUnsafeExprAssigns(), clang::Sema::CheckVectorCompareOperands(), clang::Sema::CheckVectorLogicalOperands(), checkWeakGCAttrs(), ClassifyImplicitMemberAccess(), clang::Sema::CodeCompleteCall(), clang::Sema::CodeCompleteDeclSpec(), clang::Sema::CodeCompleteExpression(), clang::Sema::CodeCompleteObjCClassMessage(), clang::Sema::CodeCompleteObjCInstanceMessage(), clang::Sema::CodeCompleteObjCMethodDecl(), clang::Sema::CodeCompleteReturn(), clang::Sema::containsUnexpandedParameterPacks(), convertPointersToCompositeType(), ConvertTypeToDiagnosticString(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinUnaryOp(), clang::CanQual< T >::CreateUnsafe(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DeclareGlobalAllocationFunction(), DecodeTypeFromStr(), clang::Sema::DeduceAutoType(), clang::Sema::deduceClosureReturnType(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefaultArgumentPromotion(), clang::Sema::DefaultFunctionArrayConversion(), clang::Sema::DefaultLvalueConversion(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), errorForGCAttrsOnNonObjC(), clang::ento::StoreManager::evalDynamicCast(), EvaluateAsRValue(), FastEvaluateAsRValue(), FindDesignatorMismatch(), FindImplementableMethods(), FinishForRangeVarDecl(), clang::ASTContext::getAutoDeductType(), clang::ASTContext::getAutoRRefDeductType(), clang::ASTContext::getAutoType(), clang::ASTContext::getCommentForDecl(), getCurrentInstantiationOf(), clang::Sema::getCurrentThisType(), getDecltypeForExpr(), clang::ASTContext::getDependentNameType(), clang::Sema::getDestructorName(), clang::Sema::getElaboratedType(), clang::ento::StoreManager::GetElementZeroRegion(), getExistingLazyBinding(), GetFullTypeForDeclarator(), clang::ClassTemplateDecl::getInjectedClassNameSpecialization(), clang::ASTContext::getInnerObjCOwnership(), clang::TypeLoc::getLocalAlignmentForType(), clang::Sema::getMostSpecialized(), clang::Sema::GetNameFromUnqualifiedId(), clang::NSAPI::GetNSIntegralKind(), clang::ASTContext::getObjCClassRedefinitionType(), clang::CodeGen::CodeGenModule::getObjCFastEnumerationStateType(), clang::ASTContext::getObjCIdRedefinitionType(), clang::ASTContext::getObjCSelRedefinitionType(), clang::ASTContext::getObjCSuperType(), clang::ASTWriter::GetOrCreateTypeIdx(), getPreferredArgumentTypeForMessageSend(), clang::ASTContext::getPromotedIntegerType(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::ObjCMethodCall::getRuntimeDefinition(), clang::ObjCPropertyRefExpr::getSetterArgType(), clang::ento::ProgramState::getSVal(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTReader::GetType(), clang::ASTContext::getTypedefType(), clang::Sema::GetTypeForDeclarator(), clang::Sema::GetTypeForDeclaratorCast(), clang::Sema::GetTypeFromParser(), clang::ASTWriter::getTypeIdx(), clang::Sema::getTypeName(), clang::ASTReader::GetTypeSourceInfo(), clang::ASTContext::getVaListTagType(), HandleExtVectorTypeAttr(), clang::Sema::HandleFunctionTypeMismatch(), handleModeAttr(), HelperIsMethodInObjCType(), clang::ASTImporter::Import(), clang::ASTNodeImporter::ImportDefinition(), clang::ASTNodeImporter::ImportTemplateArgument(), clang::ASTReader::InitializeContext(), clang::InitializationSequence::InitializeFrom(), IsAcceptableNonMemberOperatorCandidate(), isCharSpecialization(), isCharType(), clang::Sema::isCopyElisionCandidate(), isCXX98PODType(), clang::Declarator::isDeclarationOfFunction(), clang::DeclarationName::isDependentName(), clang::arcmt::trans::MigrationContext::isGCOwnedNonObjC(), clang::CodeGen::CodeGenModule::isInSanitizerBlacklist(), clang::Sema::isNonTypeNestedNameSpecifier(), clang::CanQual< ObjCObjectType >::isNull(), IsStructurallyEquivalent(), clang::Sema::isThisOutsideMemberFunctionBody(), isTrivialType(), clang::ento::DynamicTypeInfo::isValid(), LookupMemberExpr(), clang::Sema::LookupQualifiedName(), clang::Sema::LookupTemplateName(), clang::serialization::MakeTypeID(), MarkUsedTemplateParameters(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), maybeAdjustInterfaceForSubscriptingCheck(), clang::Sema::MergeCompatibleFunctionDecls(), mergeEnumWithInteger(), clang::Sema::MergeFunctionDecl(), clang::ASTContext::mergeFunctionParameterTypes(), clang::ASTContext::mergeFunctionTypes(), clang::ASTContext::mergeObjCGCQualifiers(), clang::ASTContext::mergeTransparentUnionType(), clang::ASTContext::mergeTypes(), clang::Sema::MergeVarDeclTypes(), clang::Sema::ParseObjCProtocolExpression(), clang::Sema::ParseTypedefDecl(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::performLambdaInitCaptureInitialization(), clang::APValue::printPretty(), clang::ento::ExprEngine::processCallExit(), RebuildDeclaratorInCurrentInstantiation(), clang::TreeTransform< Derived >::RebuildDependentTemplateSpecializationType(), recoverFromMSUnqualifiedLookup(), ResolveOverloadForDeduction(), clang::Sema::SelectorsForTypoCorrection(), clang::InitializationSequence::SetFailed(), clang::ASTContext::setObjCConstantStringInterface(), clang::Expr::setType(), shouldNotPrintDirectly(), clang::Sema::SubstFunctionDeclType(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::Sema::SubstType(), clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::TransformExceptionSpec(), clang::TreeTransform< Derived >::TransformFunctionProtoType(), clang::TreeTransform< Derived >::TransformFunctionTypeParam(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), clang::TreeTransform< Derived >::TransformLambdaScope(), clang::TreeTransform< Derived >::TransformReferenceType(), clang::TreeTransform< Derived >::TransformTemplateName(), clang::TreeTransform< Derived >::TransformType(), clang::RecursiveASTVisitor< Derived >::TraverseType(), treatUnusedNewEscaped(), clang::Sema::tryCaptureVariable(), clang::Sema::tryExprAsCall(), TryListConversion(), TryToFixInvalidVariablyModifiedType(), TryToFixInvalidVariablyModifiedTypeSourceInfo(), clang::Sema::tryToRecoverWithCall(), clang::ASTContext::typesAreBlockPointerCompatible(), clang::ASTContext::typesAreCompatible(), UnwrapTypeForDebugInfo(), clang::Sema::UsualArithmeticConversions(), clang::Sema::UsualUnaryConversions(), clang::ASTNodeImporter::VisitAutoType(), clang::ASTNodeImporter::VisitBinaryOperator(), clang::ASTNodeImporter::VisitBlockPointerType(), clang::ASTNodeImporter::VisitCharacterLiteral(), clang::ASTNodeImporter::VisitComplexType(), clang::ASTNodeImporter::VisitCompoundAssignOperator(), clang::ASTNodeImporter::VisitConstantArrayType(), clang::ASTNodeImporter::VisitCStyleCastExpr(), clang::ASTNodeImporter::VisitDeclRefExpr(), clang::ASTNodeImporter::VisitDecltypeType(), clang::ASTNodeImporter::VisitElaboratedType(), clang::ASTNodeImporter::VisitEnumConstantDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitExtVectorType(), clang::ASTNodeImporter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ASTNodeImporter::VisitFunctionNoProtoType(), clang::ASTNodeImporter::VisitFunctionProtoType(), clang::ASTNodeImporter::VisitImplicitCastExpr(), clang::ASTNodeImporter::VisitImplicitParamDecl(), clang::ASTNodeImporter::VisitIncompleteArrayType(), clang::ASTNodeImporter::VisitIndirectFieldDecl(), clang::ASTNodeImporter::VisitIntegerLiteral(), clang::ASTNodeImporter::VisitLValueReferenceType(), clang::ASTNodeImporter::VisitMemberPointerType(), clang::ASTNodeImporter::VisitNonTypeTemplateParmDecl(), clang::ASTNodeImporter::VisitObjCIvarDecl(), clang::ASTNodeImporter::VisitObjCMethodDecl(), clang::ASTNodeImporter::VisitObjCObjectPointerType(), clang::ASTNodeImporter::VisitObjCObjectType(), clang::ASTNodeImporter::VisitParenType(), clang::ASTNodeImporter::VisitParmVarDecl(), clang::ASTNodeImporter::VisitPointerType(), clang::ASTNodeImporter::VisitRValueReferenceType(), clang::ASTNodeImporter::VisitTemplateSpecializationType(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTNodeImporter::VisitTypeOfType(), clang::ASTNodeImporter::VisitUnaryOperator(), clang::ASTNodeImporter::VisitUnaryTransformType(), clang::ASTNodeImporter::VisitVarDecl(), clang::ASTNodeImporter::VisitVariableArrayType(), clang::ASTNodeImporter::VisitVarTemplateDecl(), clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl(), and clang::ASTNodeImporter::VisitVectorType().

isObjCGCStrong true when Type is objc's strong.

Definition at line 937 of file Type.h.

References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Strong.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnPropertyImplDecl(), and GetGCAttrTypeForType().

bool clang::QualType::isObjCGCWeak ( ) const [inline]
bool QualType::isPODType ( ASTContext Context) const

Determine whether this type is restrict-qualified.

Definition at line 4743 of file Type.h.

Referenced by appendQualifier(), CollectVRQualifiers(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and GenOpenCLArgMetadata().

bool QualType::isTrivialType ( ASTContext Context) const
const Type& clang::QualType::operator* ( ) const [inline]

Definition at line 587 of file Type.h.

const Type* clang::QualType::operator-> ( ) const [inline]

Definition at line 591 of file Type.h.

void clang::QualType::print ( raw_ostream &  OS,
const PrintingPolicy Policy,
const Twine &  PlaceHolder = Twine() 
) const [inline]
static void clang::QualType::print ( SplitQualType  split,
raw_ostream &  OS,
const PrintingPolicy policy,
const Twine &  PlaceHolder 
) [inline, static]
void QualType::print ( const Type ty,
Qualifiers  qs,
raw_ostream &  OS,
const PrintingPolicy policy,
const Twine &  PlaceHolder 
) [static]

Definition at line 1545 of file TypePrinter.cpp.

void clang::QualType::Profile ( llvm::FoldingSetNodeID &  ID) const [inline]

Definition at line 4773 of file Type.h.

References clang::Qualifiers::Const.

Referenced by findCompleteObject().

Definition at line 4785 of file Type.h.

References clang::Qualifiers::CVRMask, and clang::Qualifiers::FastMask.

Definition at line 737 of file Type.h.

Referenced by clang::serialization::MakeTypeID(), and withoutLocalFastQualifiers().

Definition at line 738 of file Type.h.

References clang::Qualifiers::FastMask.

Definition at line 4777 of file Type.h.

References clang::Qualifiers::Restrict.

Definition at line 4781 of file Type.h.

References clang::Qualifiers::Volatile.

Definition at line 563 of file Type.h.

StreamedQualTypeHelper clang::QualType::stream ( const PrintingPolicy Policy,
const Twine &  PlaceHolder = Twine() 
) const [inline]

Definition at line 753 of file Type.h.

References withFastQualifiers().

Definition at line 758 of file Type.h.

References removeLocalFastQualifiers().

Referenced by getCoreType().

Definition at line 718 of file Type.h.

References clang::Qualifiers::Restrict.

Referenced by DecodeTypeFromStr().

Definition at line 710 of file Type.h.

References clang::Qualifiers::Volatile.


Friends And Related Function Documentation

bool operator!= ( const QualType LHS,
const QualType RHS 
) [friend]

Definition at line 860 of file Type.h.

bool operator== ( const QualType LHS,
const QualType RHS 
) [friend]

operator==/!= - Indicate whether the specified types and qualifiers are identical.

Definition at line 857 of file Type.h.

friend class QualifierCollector [friend]

Definition at line 553 of file Type.h.


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