|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
gen/tools/clang/include/clang/AST/AttrImpl.inc 656 return alignmentType->getType()->isDependentType();
tools/clang/include/clang/AST/ASTContext.h 2069 return Ty->isObjCNSObjectType();
2108 if (Ty->isIncompleteType() || Ty->isDependentType())
2108 if (Ty->isIncompleteType() || Ty->isDependentType())
2336 auto SubTnullability = SubT->getNullability(*this);
2337 auto SuperTnullability = SuperT->getNullability(*this);
2686 llvm::APSInt Res(64, !Type->isSignedIntegerOrEnumerationType());
tools/clang/include/clang/AST/Decl.h 2373 return getType()->castAs<FunctionType>()->getReturnType();
2386 return T->castAs<FunctionType>()->getReturnType();
2393 const auto *FPT = T->getAs<FunctionProtoType>();
2403 return getType()->castAs<FunctionType>()->getCallResultType(
tools/clang/include/clang/AST/DeclCXX.h 1945 bool isConst() const { return getType()->castAs<FunctionType>()->isConst(); }
1946 bool isVolatile() const { return getType()->castAs<FunctionType>()->isVolatile(); }
2059 return getType()->castAs<FunctionProtoType>()->getMethodQuals();
2074 return getType()->castAs<FunctionProtoType>()->getRefQualifier();
2728 return getType()->castAs<FunctionType>()->getReturnType();
tools/clang/include/clang/AST/DeclObjC.h 895 return getType()->isBlockPointerType() ? Copy : Retain;
1566 return TInfo->getType()->castAs<ObjCObjectType>();
tools/clang/include/clang/AST/DeclTemplate.h 1372 return ParameterPack && getType()->getAs<PackExpansionType>();
tools/clang/include/clang/AST/Expr.h 145 assert((t.isNull() || !t->isReferenceType()) &&
405 if (const ReferenceType *RT = T->getAs<ReferenceType>())
408 : (RT->getPointeeType()->isFunctionType()
482 return getType()->isPlaceholderType();
1059 T->isDependentType() ||
1061 T->isDependentType() ||
1063 T->isInstantiationDependentType() ||
2030 input->isTypeDependent() || type->isDependentType(),
2033 type->isInstantiationDependentType()),
2361 TInfo->getType()->isDependentType(),
2362 TInfo->getType()->isInstantiationDependentType(),
2363 TInfo->getType()->containsUnexpandedParameterPack()),
2441 bool lhsIsBase() const { return getRHS()->getType()->isIntegerType(); }
3067 tinfo->getType()->isDependentType(),
3070 tinfo->getType()->isInstantiationDependentType()),
3141 ty->isDependentType(),
3144 ty->isDependentType() || (op && op->isValueDependent()),
3145 (ty->isInstantiationDependentType() ||
3150 ty->containsUnexpandedParameterPack()) ||
3936 T->isDependentType(), false, false, false),
4054 DstType->isDependentType(),
4055 DstType->isDependentType() || SrcExpr->isValueDependent(),
4056 (DstType->isInstantiationDependentType() ||
4058 (DstType->containsUnexpandedParameterPack() ||
4223 : Expr(VAArgExprClass, t, VK_RValue, OK_Ordinary, t->isDependentType(),
4224 false, (TInfo->getType()->isInstantiationDependentType() ||
4226 (TInfo->getType()->containsUnexpandedParameterPack() ||
4913 false, false, ty->isInstantiationDependentType(), false) { }
5009 T->isInstantiationDependentType(),
5024 return cast<ConstantArrayType>(getType()->castAsArrayTypeUnsafe())
5093 false, false, ty->isInstantiationDependentType(), false) { }
5557 ty->isDependentType(), ty->isDependentType(),
5557 ty->isDependentType(), ty->isDependentType(),
5558 ty->isInstantiationDependentType() || BD->isDependentContext(),
5614 DstType->isDependentType(),
5615 DstType->isDependentType() || SrcExpr->isValueDependent(),
5616 (DstType->isInstantiationDependentType() ||
5618 (DstType->containsUnexpandedParameterPack() ||
5880 return getPtr()->getType()->getPointeeType().isVolatileQualified();
5944 assert(T->isDependentType() && "TypoExpr given a non-dependent type");
tools/clang/include/clang/AST/ExprCXX.h 727 Ty->isDependentType(), SubExpr->isValueDependent(),
776 Operand->getType()->isDependentType(),
777 Operand->getType()->isInstantiationDependentType(),
778 Operand->getType()->containsUnexpandedParameterPack()),
1010 Operand->getType()->isDependentType(),
1011 Operand->getType()->isInstantiationDependentType(),
1012 Operand->getType()->containsUnexpandedParameterPack()),
1103 Ty->isDependentType(), Ty->isDependentType(),
1103 Ty->isDependentType(), Ty->isDependentType(),
1104 Ty->isInstantiationDependentType(),
1639 assert(!T->isDependentType());
2064 false, Type->isInstantiationDependentType(),
2065 Type->containsUnexpandedParameterPack()),
2194 return getType()->castAs<PointerType>()->getPointeeType();
2741 false, queried->getType()->isDependentType(),
2742 (queried->getType()->isInstantiationDependentType() ||
2744 queried->getType()->containsUnexpandedParameterPack()),
2905 assert(E->getType()->isSpecificBuiltinType(BuiltinType::Overload));
4648 assert(Common->isTypeDependent() && Ty->isDependentType() &&
4757 assert(Ty->isDependentType() &&
tools/clang/include/clang/AST/ExprObjC.h 415 EncodedType->getType()->isDependentType(),
416 EncodedType->getType()->isDependentType(),
417 EncodedType->getType()->isInstantiationDependentType(),
418 EncodedType->getType()->containsUnexpandedParameterPack()),
656 assert(t->isSpecificPlaceholderType(BuiltinType::PseudoObject));
663 /*TypeDependent=*/false, false, st->isInstantiationDependentType(),
664 st->containsUnexpandedParameterPack()),
667 assert(t->isSpecificPlaceholderType(BuiltinType::PseudoObject));
678 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));
688 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));
698 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));
905 return getKeyExpr()->getType()->isIntegralOrEnumerationType();
tools/clang/include/clang/AST/LocInfoType.h 38 : Type((TypeClass)LocInfo, ty, ty->isDependentType(),
39 ty->isInstantiationDependentType(), ty->isVariablyModifiedType(),
39 ty->isInstantiationDependentType(), ty->isVariablyModifiedType(),
40 ty->containsUnexpandedParameterPack()),
tools/clang/include/clang/AST/RecursiveASTVisitor.h 674 switch (T->getTypeClass()) {
tools/clang/include/clang/AST/StmtCXX.h 373 return getPromiseDecl()->getType()->isDependentType();
tools/clang/include/clang/AST/Type.h 2531 : Type(Complex, CanonicalPtr, Element->isDependentType(),
2532 Element->isInstantiationDependentType(),
2533 Element->isVariablyModifiedType(),
2534 Element->containsUnexpandedParameterPack()),
2561 : Type(Paren, CanonType, InnerType->isDependentType(),
2562 InnerType->isInstantiationDependentType(),
2563 InnerType->isVariablyModifiedType(),
2564 InnerType->containsUnexpandedParameterPack()),
2591 : Type(Pointer, CanonicalPtr, Pointee->isDependentType(),
2592 Pointee->isInstantiationDependentType(),
2593 Pointee->isVariablyModifiedType(),
2594 Pointee->containsUnexpandedParameterPack()),
2642 : Type(TC, CanonicalPtr, OriginalTy->isDependentType(),
2643 OriginalTy->isInstantiationDependentType(),
2644 OriginalTy->isVariablyModifiedType(),
2645 OriginalTy->containsUnexpandedParameterPack()),
2694 : Type(BlockPointer, CanonicalCls, Pointee->isDependentType(),
2695 Pointee->isInstantiationDependentType(),
2696 Pointee->isVariablyModifiedType(),
2697 Pointee->containsUnexpandedParameterPack()),
2727 : Type(tc, CanonicalRef, Referencee->isDependentType(),
2728 Referencee->isInstantiationDependentType(),
2729 Referencee->isVariablyModifiedType(),
2730 Referencee->containsUnexpandedParameterPack()),
2733 ReferenceTypeBits.InnerRef = Referencee->isReferenceType();
2746 T = T->PointeeType->castAs<ReferenceType>();
2815 Cls->isDependentType() || Pointee->isDependentType(),
2817 Pointee->isInstantiationDependentType()),
2818 Pointee->isVariablyModifiedType(),
2820 Pointee->containsUnexpandedParameterPack())),
2829 return PointeeType->isFunctionProtoType();
2835 return !PointeeType->isFunctionProtoType();
3694 Result->isVariablyModifiedType(),
3856 if (ArgArray[Idx]->containsUnexpandedParameterPack())
4197 : Type(tc, can, can->isDependentType(),
4198 can->isInstantiationDependentType(),
4199 can->isVariablyModifiedType(),
4224 : Type(MacroQualified, CanonTy, UnderlyingTy->isDependentType(),
4225 UnderlyingTy->isInstantiationDependentType(),
4226 UnderlyingTy->isVariablyModifiedType(),
4227 UnderlyingTy->containsUnexpandedParameterPack()),
4299 : Type(TypeOf, can, T->isDependentType(),
4300 T->isInstantiationDependentType(),
4301 T->isVariablyModifiedType(),
4302 T->containsUnexpandedParameterPack()),
4511 : Type(Attributed, canon, equivalent->isDependentType(),
4512 equivalent->isInstantiationDependentType(),
4513 equivalent->isVariablyModifiedType(),
4514 equivalent->containsUnexpandedParameterPack()),
4619 Canon->containsUnexpandedParameterPack()),
4635 return Can->castAs<TemplateTypeParmType>()->CanTTPTInfo;
4684 : Type(SubstTemplateTypeParm, Canon, Canon->isDependentType(),
4685 Canon->isInstantiationDependentType(),
4686 Canon->isVariablyModifiedType(),
4687 Canon->containsUnexpandedParameterPack()),
4794 if (DeducedAsType->isDependentType())
4796 if (DeducedAsType->isInstantiationDependentType())
4798 if (DeducedAsType->containsUnexpandedParameterPack())
5082 assert(TST->isDependentType());
5225 NamedType->isDependentType(),
5226 NamedType->isInstantiationDependentType(),
5227 NamedType->isVariablyModifiedType(),
5228 NamedType->containsUnexpandedParameterPack()),
5439 : Type(PackExpansion, Canon, /*Dependent=*/Pattern->isDependentType(),
5441 /*VariablyModified=*/Pattern->isVariablyModifiedType(),
5462 bool isSugared() const { return !Pattern->isDependentType(); }
5680 return getBaseType()->isSpecificBuiltinType(BuiltinType::ObjCId);
5684 return getBaseType()->isSpecificBuiltinType(BuiltinType::ObjCClass);
5691 if (const BuiltinType *T = getBaseType()->getAs<BuiltinType>())
5851 while (const auto *ObjT = baseType->getAs<ObjCObjectType>()) {
5877 Pointee->isDependentType(),
5878 Pointee->isInstantiationDependentType(),
5879 Pointee->isVariablyModifiedType(),
5880 Pointee->containsUnexpandedParameterPack()),
5912 return PointeeType->castAs<ObjCObjectType>();
6050 : Type(Atomic, Canonical, ValTy->isDependentType(),
6051 ValTy->isInstantiationDependentType(),
6052 ValTy->isVariablyModifiedType(),
6053 ValTy->containsUnexpandedParameterPack()),
6085 : Type(Pipe, CanonicalPtr, elemType->isDependentType(),
6086 elemType->isInstantiationDependentType(),
6087 elemType->isVariablyModifiedType(),
6088 elemType->containsUnexpandedParameterPack()),
6293 if (const auto *FT = PT->getPointeeType()->getAs<FunctionType>())
6324 if (getUnqualifiedType()->isVoidType())
6340 if (const auto *RefType = (*this)->getAs<ReferenceType>())
6417 return T->getPointeeType()->isFunctionType();
6424 return T->getPointeeType()->isFunctionType();
6538 return OPT->getPointeeType()->isSpecificBuiltinType(BuiltinType::ObjCSel);
tools/clang/include/clang/AST/TypeLoc.h 115 return (TypeLocClass) getType()->getTypeClass();
tools/clang/include/clang/ASTMatchers/ASTMatchers.h 3348 return (!Node.isNull() && Node->isAnyPointerType() &&
3349 InnerMatcher.matches(Node->getPointeeType(), Finder, Builder));
3390 return (!Node.isNull() && Node->isReferenceType() &&
3391 InnerMatcher.matches(Node->getPointeeType(), Finder, Builder));
5027 return Node->isIntegerType();
5041 return Node->isUnsignedIntegerType();
5055 return Node->isSignedIntegerType();
5069 return Node->isAnyCharacterType();
5089 return Node->isAnyPointerType();
6581 if (const auto *F = Node.getType()->getAs<FunctionProtoType>())
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h 142 return Node.getType()->getAs<FunctionProtoType>();
tools/clang/include/clang/Analysis/AnyCall.h 68 K = (CE->getCallee()->getType()->getAs<BlockPointerType>()) ? Block
tools/clang/include/clang/Analysis/CFG.h 194 E->getType().getCanonicalType()->getAsCXXRecordDecl();
tools/clang/include/clang/CodeGen/CGFunctionInfo.h 136 assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType");
146 assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType");
158 assert(Ty->isIntegralOrEnumerationType() && "Unexpected QualType");
159 if (Ty->hasSignedIntegerRepresentation())
tools/clang/include/clang/Sema/Initialization.h 466 getType()->getAsArrayTypeUnsafe());
tools/clang/include/clang/Sema/Overload.h 870 while (STy->isPointerType() || STy->isReferenceType())
870 while (STy->isPointerType() || STy->isReferenceType())
871 STy = STy->getPointeeType();
872 return STy->castAs<FunctionProtoType>()->getNumParams();
tools/clang/include/clang/Sema/SemaInternal.h 32 cast<ParmVarDecl>(FTI.Params[0].Param)->getType()->isVoidType();
tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h 147 .getCanonicalType()->getAs<ObjCObjectPointerType>())
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h 142 assert(T->isIntegralOrEnumerationType() || Loc::isLocType(T));
144 !T->isSignedIntegerOrEnumerationType());
200 assert(T->isScalarType());
214 T->isUnsignedIntegerOrEnumerationType());
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h 614 const CXXRecordDecl *LambdaDecl = LambdaVD->getType()->getAsCXXRecordDecl();
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h 545 if (T->getAs<ObjCObjectType>())
774 assert(s->getType()->isAnyPointerType() ||
775 s->getType()->isReferenceType() ||
776 s->getType()->isBlockPointerType());
980 assert(ThisPointerTy->getPointeeType()->getAsCXXRecordDecl() &&
1095 assert(!elementType.isNull() && !elementType->isVoidType() &&
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h 709 const auto *Base = BaseSpec.getType()->getAsCXXRecordDecl();
769 T->isIntegralOrEnumerationType())
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h 53 if (!hasComparison && !RetTy->isBooleanType())
115 assert(!Ty->isRealFloatingType());
117 !Ty->isSignedIntegerOrEnumerationType());
141 Ty->isBooleanType() ? Solver->mkBoolean(Value.getBoolValue())
159 if (CastTy->isVoidType())
256 if (Ty->isComplexType() || Ty->isComplexIntegerType())
256 if (Ty->isComplexType() || Ty->isComplexIntegerType())
260 if ((Ty->isSpecificBuiltinType(BuiltinType::LongDouble) &&
265 if (Ty->isRealFloatingType())
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h 29 if (Ty->isBooleanType())
32 if (Ty->isRealFloatingType())
265 if ((FromTy->isIntegralOrEnumerationType() &&
266 ToTy->isIntegralOrEnumerationType()) ||
267 (FromTy->isAnyPointerType() ^ ToTy->isAnyPointerType()) ||
267 (FromTy->isAnyPointerType() ^ ToTy->isAnyPointerType()) ||
268 (FromTy->isBlockPointerType() ^ ToTy->isBlockPointerType()) ||
268 (FromTy->isBlockPointerType() ^ ToTy->isBlockPointerType()) ||
269 (FromTy->isReferenceType() ^ ToTy->isReferenceType())) {
269 (FromTy->isReferenceType() ^ ToTy->isReferenceType())) {
271 if (FromTy->isBooleanType()) {
279 return FromTy->isSignedIntegerOrEnumerationType()
290 if (FromTy->isRealFloatingType() && ToTy->isRealFloatingType()) {
290 if (FromTy->isRealFloatingType() && ToTy->isRealFloatingType()) {
297 if (FromTy->isIntegralOrEnumerationType() && ToTy->isRealFloatingType()) {
297 if (FromTy->isIntegralOrEnumerationType() && ToTy->isRealFloatingType()) {
299 return FromTy->isSignedIntegerOrEnumerationType()
304 if (FromTy->isRealFloatingType() && ToTy->isIntegralOrEnumerationType())
304 if (FromTy->isRealFloatingType() && ToTy->isIntegralOrEnumerationType())
305 return ToTy->isSignedIntegerOrEnumerationType()
317 APSIntType TargetType(ToWidth, !ToTy->isSignedIntegerOrEnumerationType());
363 if (LTy->isAnyPointerType() && RTy->isAnyPointerType() && Op == BO_Sub) {
363 if (LTy->isAnyPointerType() && RTy->isAnyPointerType() && Op == BO_Sub) {
368 return LTy->isRealFloatingType()
371 LTy->isSignedIntegerOrEnumerationType());
477 if (Ty->isRealFloatingType()) {
484 if (Ty->isIntegralOrEnumerationType() || Ty->isAnyPointerType() ||
484 if (Ty->isIntegralOrEnumerationType() || Ty->isAnyPointerType() ||
485 Ty->isBlockPointerType() || Ty->isReferenceType()) {
485 Ty->isBlockPointerType() || Ty->isReferenceType()) {
488 bool isSigned = Ty->isSignedIntegerOrEnumerationType();
489 if (Ty->isBooleanType())
538 SymTy->isSignedIntegerOrEnumerationType());
574 if ((LTy->isIntegralOrEnumerationType() &&
575 RTy->isIntegralOrEnumerationType()) &&
576 (LTy->isArithmeticType() && RTy->isArithmeticType())) {
576 (LTy->isArithmeticType() && RTy->isArithmeticType())) {
582 if (LTy->isRealFloatingType() || RTy->isRealFloatingType()) {
582 if (LTy->isRealFloatingType() || RTy->isRealFloatingType()) {
588 if ((LTy->isAnyPointerType() || RTy->isAnyPointerType()) ||
588 if ((LTy->isAnyPointerType() || RTy->isAnyPointerType()) ||
589 (LTy->isBlockPointerType() || RTy->isBlockPointerType()) ||
589 (LTy->isBlockPointerType() || RTy->isBlockPointerType()) ||
590 (LTy->isReferenceType() || RTy->isReferenceType())) {
590 (LTy->isReferenceType() || RTy->isReferenceType())) {
599 if ((LTy->isAnyPointerType() ^ RTy->isAnyPointerType()) ||
599 if ((LTy->isAnyPointerType() ^ RTy->isAnyPointerType()) ||
600 (LTy->isBlockPointerType() ^ RTy->isBlockPointerType()) ||
600 (LTy->isBlockPointerType() ^ RTy->isBlockPointerType()) ||
601 (LTy->isReferenceType() ^ RTy->isReferenceType())) {
601 (LTy->isReferenceType() ^ RTy->isReferenceType())) {
602 if (LTy->isNullPtrType() || LTy->isBlockPointerType() ||
602 if (LTy->isNullPtrType() || LTy->isBlockPointerType() ||
603 LTy->isReferenceType()) {
616 if (LTy->isVoidPointerType() ^ RTy->isVoidPointerType()) {
616 if (LTy->isVoidPointerType() ^ RTy->isVoidPointerType()) {
619 if (RTy->isVoidPointerType())
631 (LTy->isObjCObjectPointerType() && RTy->isObjCObjectPointerType())) {
631 (LTy->isObjCObjectPointerType() && RTy->isObjCObjectPointerType())) {
653 if (LTy->isPromotableIntegerType()) {
660 if (RTy->isPromotableIntegerType()) {
673 bool isLSignedTy = LTy->isSignedIntegerOrEnumerationType();
674 bool isRSignedTy = RTy->isSignedIntegerOrEnumerationType();
733 if (!LTy->isRealFloatingType()) {
738 if (!RTy->isRealFloatingType()) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h 101 (Ty1->isIntegralOrEnumerationType() &&
102 Ty2->isIntegralOrEnumerationType()));
281 integer->getType()->isUnsignedIntegerOrEnumerationType()));
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h 308 return T->isArrayType() || T->isRecordType() ||
308 return T->isArrayType() || T->isRecordType() ||
309 T->isAnyComplexType() || T->isVectorType();
309 T->isAnyComplexType() || T->isVectorType();
330 return T->isAnyPointerType() || T->isBlockPointerType() ||
330 return T->isAnyPointerType() || T->isBlockPointerType() ||
331 T->isReferenceType() || T->isNullPtrType();
331 T->isReferenceType() || T->isNullPtrType();
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h 48 return !T.isNull() && !T->isVoidType();
tools/clang/lib/ARCMigrate/ObjCMT.cpp 251 if (Receiver->getType()->isObjCBuiltinType())
439 bool RetainableObject = ArgType->isObjCRetainableType();
444 ArgType->getAs<ObjCObjectPointerType>()) {
452 else if (ArgType->isBlockPointerType())
459 return ArgType->isBlockPointerType() ? "copy" : "strong";
502 if (!QT->isRealType())
543 if (RT->isBlockPointerType() || RT->isFunctionPointerType())
543 if (RT->isBlockPointerType() || RT->isFunctionPointerType())
941 if (const EnumType *EnumTy = qt->getAs<EnumType>()) {
1032 if (OM->getReturnType()->isObjCIdType())
1039 if (!OM->getReturnType()->isObjCIdType())
1058 if (!T->isAnyPointerType())
1060 if (T->isObjCObjectPointerType() || T->isObjCBuiltinType() ||
1060 if (T->isObjCObjectPointerType() || T->isObjCBuiltinType() ||
1061 T->isBlockPointerType() || T->isFunctionPointerType() ||
1061 T->isBlockPointerType() || T->isFunctionPointerType() ||
1069 if (OrigT == T || !T->isPointerType())
1071 const PointerType* PT = T->getAs<PointerType>();
1073 if (UPointeeT->isRecordType()) {
1074 const RecordType *RecordTy = UPointeeT->getAs<RecordType>();
1173 if (GRT->isVoidType())
1196 if (IsPrefix && GRT->isObjCRetainableType())
1226 if (!SRT->isVoidType())
1308 !OM->getReturnType()->isObjCIdType())
1367 if (!Ty->isPointerType())
1374 const PointerType* PT = Ty->getAs<PointerType>();
1375 if (PT->getPointeeType().getUnqualifiedType()->isVoidType())
1384 if (!AT->isAnyPointerType() && !AT->isBlockPointerType())
1384 if (!AT->isAnyPointerType() && !AT->isBlockPointerType())
1391 AT->isObjCObjectPointerType() || AT->isObjCBuiltinType())
1391 AT->isObjCObjectPointerType() || AT->isObjCBuiltinType())
tools/clang/lib/ARCMigrate/TransAPIUses.cpp 72 QualType pointee = parm->getType()->getPointeeType();
tools/clang/lib/ARCMigrate/TransARCAssign.cpp 42 if (Exp->getType()->isDependentType())
tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp 393 QualType pointee = Ty->getPointeeType();
396 if (const ObjCInterfaceType *interT = pointee->getAs<ObjCInterfaceType>())
tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp 83 var->getType()->isObjCObjectPointerType() &&
tools/clang/lib/ARCMigrate/TransGCAttrs.cpp 187 if (!Attr.ModifiedType->isObjCRetainableType()) {
202 !Attr.ModifiedType->isObjCRetainableType())
228 if (T.isNull() || !T->isObjCRetainableType())
tools/clang/lib/ARCMigrate/TransProperties.cpp 135 if (!getPropertyType(props)->isObjCRetainableType())
tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp 97 if (castType->isObjCRetainableType() == castExprType->isObjCRetainableType())
97 if (castType->isObjCRetainableType() == castExprType->isObjCRetainableType())
100 bool exprRetainable = castExprType->isObjCIndirectLifetimeType();
101 bool castRetainable = castType->isObjCIndirectLifetimeType();
112 if (castType->isObjCRetainableType())
126 if (E->getSubExpr()->getType()->isPointerType()) {
163 if (T->isObjCObjectPointerType())
tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp 171 if (!IVDecl->getType()->isObjCObjectPointerType())
tools/clang/lib/ARCMigrate/Transforms.cpp 51 while (const PointerType *ptr = T->getAs<PointerType>())
53 if (const ObjCObjectPointerType *ObjT = T->getAs<ObjCObjectPointerType>()) {
361 if (const AttributedType *AttrT = T->getAs<AttributedType>()) {
363 return !AttrT->getModifiedType()->isObjCRetainableType();
366 if (T->isArrayType())
368 else if (const PointerType *PT = T->getAs<PointerType>())
370 else if (const ReferenceType *RT = T->getAs<ReferenceType>())
tools/clang/lib/AST/APValue.cpp 483 if (Ty->isBooleanType())
496 QualType ElemTy = Ty->castAs<VectorType>()->getElementType();
513 bool IsReference = Ty->isReferenceType();
515 = IsReference ? Ty.getNonReferenceType() : Ty->getPointeeType();
602 if (ElemTy->getAs<RecordType>()) {
655 const RecordDecl *RD = Ty->castAs<RecordType>()->getDecl();
tools/clang/lib/AST/ASTContext.cpp 570 if (const auto *TT = QT->getAs<TagType>())
597 if (const CXXRecordDecl *NonVirtualBase = Ty->getAsCXXRecordDecl()) {
612 if (const CXXRecordDecl *VirtualBase = Ty->getAsCXXRecordDecl()) {
1579 switch (T->castAs<BuiltinType>()->getKind()) {
1629 if (const auto *RT = T->getAs<ReferenceType>()) {
1636 if (T->isFunctionType())
1638 else if (!BaseT->isIncompleteType()) {
1706 if (const auto *RT = T->getAs<RecordType>()) {
1759 if (const auto *TT = T->getAs<TypedefType>())
1765 if (!T->isIncompleteType())
1770 if (const auto *TT = T->getAs<TypedefType>())
1775 if (const auto *TT = T->getAs<TagType>())
2114 getTypeInfo(ED->getIntegerType()->getUnqualifiedDesugaredType());
2240 T->isSpecificBuiltinType(BuiltinType::Double))
2418 const RecordDecl *RD = Ty->castAs<RecordType>()->getDecl();
2446 Context, Base.getType()->castAs<RecordType>()->getDecl());
2455 return Layout.getBaseClassOffset(L.first->getAsCXXRecordDecl()) <
2456 Layout.getBaseClassOffset(R.first->getAsCXXRecordDecl());
2461 Layout.getBaseClassOffset(Base.first->getAsCXXRecordDecl()));
2470 if (!Field->getType()->isReferenceType() &&
2516 if (Ty->isArrayType())
2524 if (Ty->isIntegralOrEnumerationType())
2528 if (Ty->isPointerType())
2531 if (Ty->isMemberPointerType()) {
2532 const auto *MPT = Ty->getAs<MemberPointerType>();
2536 if (Ty->isRecordType()) {
2537 const RecordDecl *Record = Ty->castAs<RecordType>()->getDecl();
2585 if (E->getType()->isNullPtrType()) return true;
2587 if (E->getType()->isAnyPointerType() &&
2790 if (const auto *ptr = T->getAs<PointerType>()) {
2792 if (Pointee->isAnyPointerType()) {
2834 const auto *FPT = FD->getType()->castAs<FunctionProtoType>();
2872 const auto *Proto = Orig->castAs<FunctionProtoType>();
2992 assert((T->isArrayType() || T->isFunctionType()) && "T does not decay");
2992 assert((T->isArrayType() || T->isFunctionType()) && "T does not decay");
3001 if (T->isArrayType())
3008 if (T->isFunctionType())
3033 assert(T->isFunctionType() && "block of function types only");
3078 const auto *InnerRef = T->getAs<ReferenceType>();
3114 const auto *InnerRef = T->getAs<ReferenceType>();
3172 assert((EltTy->isDependentType() ||
3173 EltTy->isIncompleteType() || EltTy->isConstantSizeType()) &&
3173 EltTy->isIncompleteType() || EltTy->isConstantSizeType()) &&
3225 if (!type->isVariablyModifiedType()) return type;
3495 assert(vecType->isBuiltinType());
3565 assert(vecType->isBuiltinType() || vecType->isDependentType());
3565 assert(vecType->isBuiltinType() || vecType->isDependentType());
3748 if (ET->getAs<PackExpansionType>())
3837 if (ET->getAs<PackExpansionType>())
4488 assert((Pattern->containsUnexpandedParameterPack() ||
4489 Pattern->getContainedDeducedType()) &&
4503 if (Canon->containsUnexpandedParameterPack()) {
4584 if (const auto *baseObject = baseType->getAs<ObjCObjectType>())
4686 if (type->isObjCObjectType()) {
4696 if (type->isObjCIdType()) {
4697 const auto *objPtr = type->castAs<ObjCObjectPointerType>();
4704 if (type->isObjCClassType()) {
4705 const auto *objPtr = type->castAs<ObjCObjectPointerType>();
4751 if (!QT->isObjCQualifiedIdType())
4754 if (const auto *OPT = QT->getAs<ObjCObjectPointerType>()) {
4770 if (!QT->isObjCQualifiedIdType())
4772 const auto *OPT = QT->getAs<ObjCObjectPointerType>();
4953 if (BaseType->isDependentType()) {
5269 const auto *T1PtrType = T1->getAs<PointerType>();
5270 const auto *T2PtrType = T2->getAs<PointerType>();
5277 const auto *T1MPType = T1->getAs<MemberPointerType>();
5278 const auto *T2MPType = T2->getAs<MemberPointerType>();
5288 const auto *T1OPType = T1->getAs<ObjCObjectPointerType>();
5289 const auto *T2OPType = T2->getAs<ObjCObjectPointerType>();
5523 if (const auto *DNT = T->getAs<DependentNameType>())
5602 if (T->isArrayType() || T->isFunctionType())
5602 if (T->isArrayType() || T->isFunctionType())
5621 if (T->isArrayType() || T->isFunctionType())
5621 if (T->isArrayType() || T->isFunctionType())
5647 if (auto Nullability = Ty->getNullability(*this)) {
5679 CA->getElementType()->getAsArrayTypeUnsafe());
5687 if (const auto *CT = T->getAs<ComplexType>())
5690 switch (T->castAs<BuiltinType>()->getKind()) {
5708 if (Domain->isComplexType()) {
5719 assert(Domain->isRealFloatingType() && "Unknown domain!");
5797 if (getLangOpts().CPlusPlus && E->getType()->isEnumeralType())
5832 return FT->isSignedIntegerType() ? IntTy : UnsignedIntTy;
5847 assert(Promotable->isPromotableIntegerType());
5848 if (const auto *ET = Promotable->getAs<EnumType>())
5851 if (const auto *BT = Promotable->getAs<BuiltinType>()) {
5871 FromIsSigned == PromoteTypes[Idx]->isSignedIntegerType()))
5879 if (Promotable->isSignedIntegerType())
5883 assert(Promotable->isUnsignedIntegerType() && PromotableSize <= IntSize);
5893 if (T->isArrayType())
5895 else if (const auto *PT = T->getAs<PointerType>())
5897 else if (const auto *RT = T->getAs<ReferenceType>())
6067 const auto *TD = T->castAs<TypedefType>();
6070 CFConstantStringTypeDecl->getUnderlyingType()->castAs<RecordType>();
6193 if (const CXXRecordDecl *record = Ty->getAsCXXRecordDecl()) {
6205 if (!Ty->isObjCRetainableType()) return false;
6227 return (Ty->isBlockPointerType() || isObjCNSObjectType(Ty) ||
6228 Ty->isObjCObjectPointerType());
6239 if (Ty->isRecordType()) {
6244 } else if (Ty->isObjCObjectPointerType() || Ty->isBlockPointerType()) {
6244 } else if (Ty->isObjCObjectPointerType() || Ty->isBlockPointerType()) {
6273 if (!type->isIncompleteArrayType() && type->isIncompleteType())
6273 if (!type->isIncompleteArrayType() && type->isIncompleteType())
6279 if (sz.isPositive() && type->isIntegralOrEnumerationType())
6282 else if (type->isArrayType())
6290 VD->getType()->isIntegralOrEnumerationType() &&
6326 Expr->getType()->castAs<BlockPointerType>()->getPointeeType();
6327 QualType BlockReturnTy = BlockTy->castAs<FunctionType>()->getReturnType();
6357 dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
6362 } else if (PType->isFunctionType())
6400 dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
6405 } else if (PType->isFunctionType())
6471 dyn_cast<ArrayType>(PType->getCanonicalTypeInternal())) {
6476 } else if (PType->isFunctionType())
6605 if (const auto *BT = PointeeTy->getAs<BuiltinType>()) {
6752 const auto *BT = Enum->getIntegerType()->castAs<BuiltinType>();
6789 if (const auto *ET = T->getAs<EnumType>())
6792 const auto *BT = T->castAs<BuiltinType>();
6817 const auto *CT = T->castAs<ComplexType>();
6825 const auto *AT = T->castAs<AtomicType>();
6838 const auto *PT = T->castAs<PointerType>();
6845 PointeeTy = T->castAs<ReferenceType>()->getPointeeType();
6860 while (auto PT = P->getAs<PointerType>())
6875 if (PointeeTy->isCharType()) {
6882 } else if (const auto *RTy = PointeeTy->getAs<RecordType>()) {
6992 const auto *BT = T->castAs<BlockPointerType>();
6995 const auto *FT = BT->getPointeeType()->castAs<FunctionType>();
7017 if (Ty->isObjCIdType()) {
7021 else if (Ty->isObjCClassType()) {
7032 ObjCInterfaceDecl *OI = T->castAs<ObjCObjectType>()->getInterface();
7056 const auto *OPT = T->castAs<ObjCObjectPointerType>();
7156 CXXRecordDecl *base = BI.getType()->getAsCXXRecordDecl();
7176 CXXRecordDecl *base = BI.getType()->getAsCXXRecordDecl();
7913 if (Ty->isObjCObjectPointerType() || Ty->isBlockPointerType())
7913 if (Ty->isObjCObjectPointerType() || Ty->isBlockPointerType())
7915 else if (Ty->isPointerType())
7916 return getObjCGCAttrKind(Ty->castAs<PointerType>()->getPointeeType());
7921 QualType CT = Ty->getCanonicalTypeInternal();
7924 assert(CT->isAnyPointerType() || CT->isBlockPointerType());
7924 assert(CT->isAnyPointerType() || CT->isBlockPointerType());
7945 assert(FirstVec->isVectorType() && "FirstVec should be a vector type");
7946 assert(SecondVec->isVectorType() && "SecondVec should be a vector type");
7953 const auto *First = FirstVec->castAs<VectorType>();
7954 const auto *Second = SecondVec->castAs<VectorType>();
8322 const auto *lhsOPT = lhs->getAs<ObjCObjectPointerType>();
8323 const auto *rhsOPT = rhs->getAs<ObjCObjectPointerType>();
8328 const auto *lhsBlock = lhs->getAs<BlockPointerType>();
8329 const auto *rhsBlock = rhs->getAs<BlockPointerType>();
8447 LHS = LHSSuperType->castAs<ObjCObjectType>();
8497 RHS = RHSSuperType->castAs<ObjCObjectType>();
8551 RHSSuper = RHSSuper->getSuperClassType()->castAs<ObjCObjectType>();
8567 const auto *LHSOPT = LHS->getAs<ObjCObjectPointerType>();
8568 const auto *RHSOPT = RHS->getAs<ObjCObjectPointerType>();
8579 getObjCObjectPointerType(To)->getAs<ObjCObjectPointerType>(),
8580 getObjCObjectPointerType(From)->getAs<ObjCObjectPointerType>());
8609 if (const RecordType *UT = T->getAsUnionType()) {
8648 const auto *lbase = lhs->getAs<FunctionType>();
8649 const auto *rbase = rhs->getAs<FunctionType>();
8798 if (const auto *Enum = paramTy->getAs<EnumType>()) {
8804 if (paramTy->isPromotableIntegerType() ||
8837 if (isBlockReturnType && other->isIntegerType() &&
8852 assert(!LHS->getAs<ReferenceType>() && "LHS is a reference type?");
8853 assert(!RHS->getAs<ReferenceType>() && "RHS is a reference type?");
8891 if (GC_L == Qualifiers::Strong && RHSCan->isObjCObjectPointerType()) {
8894 if (GC_R == Qualifiers::Strong && LHSCan->isObjCObjectPointerType()) {
8902 Type::TypeClass LHSClass = LHSCan->getTypeClass();
8903 Type::TypeClass RHSClass = RHSCan->getTypeClass();
8928 if (const auto *ETy = LHS->getAs<EnumType>()) {
8931 if (const EnumType* ETy = RHS->getAs<EnumType>()) {
8936 if (LHS->isObjCIdType() && RHS->isBlockPointerType())
8936 if (LHS->isObjCIdType() && RHS->isBlockPointerType())
8938 if (RHS->isObjCIdType() && LHS->isBlockPointerType())
8938 if (RHS->isObjCIdType() && LHS->isBlockPointerType())
8972 QualType LHSPointee = LHS->castAs<PointerType>()->getPointeeType();
8973 QualType RHSPointee = RHS->castAs<PointerType>()->getPointeeType();
8991 QualType LHSPointee = LHS->castAs<BlockPointerType>()->getPointeeType();
8992 QualType RHSPointee = RHS->castAs<BlockPointerType>()->getPointeeType();
9024 QualType LHSValue = LHS->castAs<AtomicType>()->getValueType();
9025 QualType RHSValue = RHS->castAs<AtomicType>()->getValueType();
9135 if (areCompatVectorTypes(LHSCan->castAs<VectorType>(),
9136 RHSCan->castAs<VectorType>()))
9143 if (canAssignObjCInterfaces(LHS->castAs<ObjCObjectType>(),
9144 RHS->castAs<ObjCObjectType>()))
9151 LHS->castAs<ObjCObjectPointerType>(),
9152 RHS->castAs<ObjCObjectPointerType>(), BlockReturnType))
9156 if (canAssignObjCInterfaces(LHS->castAs<ObjCObjectPointerType>(),
9157 RHS->castAs<ObjCObjectPointerType>()))
9229 if (RHSCan->isFunctionType()) {
9230 if (!LHSCan->isFunctionType())
9243 const auto *F = LHS->castAs<FunctionType>();
9283 if (LHSCan->isObjCObjectPointerType() && RHSCan->isObjCObjectPointerType()) {
9283 if (LHSCan->isObjCObjectPointerType() && RHSCan->isObjCObjectPointerType()) {
9284 QualType LHSBaseQT = LHS->castAs<ObjCObjectPointerType>()->getPointeeType();
9285 QualType RHSBaseQT = RHS->castAs<ObjCObjectPointerType>()->getPointeeType();
9300 if (const auto *ET = T->getAs<EnumType>())
9302 if (T->isBooleanType())
9309 assert((T->hasSignedIntegerRepresentation() || T->isSignedFixedPointType()) &&
9309 assert((T->hasSignedIntegerRepresentation() || T->isSignedFixedPointType()) &&
9313 if (const auto *VTy = T->getAs<VectorType>())
9318 if (const auto *ETy = T->getAs<EnumType>())
9321 switch (T->castAs<BuiltinType>()->getKind()) {
9575 if (Type->isArrayType())
9687 assert((!RequiresICE || Type->isIntegralOrEnumerationType()) &&
9725 if (Ty->isArrayType())
10376 QualType AtomicTy = E->getPtr()->getType()->getPointeeType();
10552 if (QT->getUnqualifiedDesugaredType()->isNullPtrType())
10555 AS = QT->getPointeeType().getAddressSpace();
10568 assert(Ty->isFixedPointType());
10570 if (Ty->isSaturatedFixedPointType()) return Ty;
10572 switch (Ty->castAs<BuiltinType>()->getKind()) {
10622 assert(Ty->isFixedPointType());
10625 switch (Ty->castAs<BuiltinType>()->getKind()) {
10668 assert(Ty->isFixedPointType());
10671 switch (Ty->castAs<BuiltinType>()->getKind()) {
10709 assert((Ty->isFixedPointType() || Ty->isIntegerType()) &&
10709 assert((Ty->isFixedPointType() || Ty->isIntegerType()) &&
10712 if (Ty->isIntegerType())
10714 Ty->isSignedIntegerType());
10716 bool isSigned = Ty->isSignedFixedPointType();
10719 Ty->isSaturatedFixedPointType(),
10724 assert(Ty->isFixedPointType());
10729 assert(Ty->isFixedPointType());
10734 assert(Ty->isUnsignedFixedPointType() &&
10737 switch (Ty->castAs<BuiltinType>()->getKind()) {
tools/clang/lib/AST/ASTDiagnostic.cpp 170 if (const TagType *UTT = Underlying->getAs<TagType>())
182 if (const PointerType *Ty = QT->getAs<PointerType>()) {
185 } else if (const auto *Ty = QT->getAs<ObjCObjectPointerType>()) {
188 } else if (const LValueReferenceType *Ty = QT->getAs<LValueReferenceType>()) {
191 } else if (const RValueReferenceType *Ty = QT->getAs<RValueReferenceType>()) {
194 } else if (const auto *Ty = QT->getAs<ObjCObjectType>()) {
303 if (Ty->isVectorType()) {
304 const VectorType *VTy = Ty->getAs<VectorType>();
1074 Ty->getAs<TemplateSpecializationType>())
1077 const RecordType *RT = Ty->getAs<RecordType>();
1093 return Ty->getAs<TemplateSpecializationType>();
1180 if (ArgType->isPointerType() &&
1181 Context.hasSameType(ArgType->getPointeeType(), VDType))
1210 if (ArgType->isPointerType() &&
1211 Context.hasSameType(ArgType->getPointeeType(), VDType))
1353 TST = TST->getAliasedType()->getAs<TemplateSpecializationType>();
1742 if (FromIntType->isBooleanType()) {
1786 if (IntType->isBooleanType()) {
tools/clang/lib/AST/ASTImporter.cpp 1863 ImportDefinitionIfNeeded(Base1.getType()->getAsCXXRecordDecl()))
2328 if (!FromUT->isIncompleteType() && !FoundUT->isIncompleteType())
2328 if (!FromUT->isIncompleteType() && !FoundUT->isIncompleteType())
2517 if (const auto *Tag = Typedef->getUnderlyingType()->getAs<TagType>())
2621 if (const auto *Tag = Typedef->getUnderlyingType()->getAs<TagType>())
3119 if (const auto *FromFPT = D->getType()->getAs<FunctionProtoType>()) {
tools/clang/lib/AST/ASTImporterLookupTable.cpp 43 if (!Ty->isDependentType()) {
tools/clang/lib/AST/ASTStructuralEquivalence.cpp 453 Type::TypeClass TC = T1->getTypeClass();
455 if (T1->getTypeClass() != T2->getTypeClass()) {
455 if (T1->getTypeClass() != T2->getTypeClass()) {
458 if (T1->getTypeClass() == Type::FunctionProto &&
459 T2->getTypeClass() == Type::FunctionNoProto)
461 else if (T1->getTypeClass() == Type::FunctionNoProto &&
462 T2->getTypeClass() == Type::FunctionProto)
953 RecordDecl *D1 = Field1->getType()->castAs<RecordType>()->getDecl();
954 RecordDecl *D2 = Field2->getType()->castAs<RecordType>()->getDecl();
tools/clang/lib/AST/CXXInheritance.cpp 158 const RecordType *Ty = I.getType()->getAs<RecordType>();
212 if (!LookupInDependent && BaseType->isDependentType())
226 DetectedVirtual = BaseType->getAs<RecordType>();
284 BaseSpec.getType()->getAs<TemplateSpecializationType>();
286 if (auto *RT = BaseSpec.getType()->getAs<RecordType>())
304 BaseSpec.getType()->castAs<RecordType>()->getDecl());
369 if (const RecordType *Record = PE.Base->getType()->getAs<RecordType>())
381 HidingP.back().Base->getType()->getAs<RecordType>())
401 return Specifier->getType()->castAs<RecordType>()->getDecl()
411 Specifier->getType()->castAs<RecordType>()->getDecl()
419 Specifier->getType()->castAs<RecordType>()->getDecl();
449 Specifier->getType()->castAs<RecordType>()->getDecl();
457 Specifier->getType()->getAs<TemplateSpecializationType>();
459 auto *RT = Specifier->getType()->getAs<RecordType>();
478 Specifier->getType()->castAs<RecordType>()->getDecl();
493 Specifier->getType()->castAs<RecordType>()->getDecl();
509 Specifier->getType()->castAs<RecordType>()->getDecl();
610 if (const RecordType *RT = Base.getType()->getAs<RecordType>()) {
777 assert(!I.getType()->isDependentType() &&
781 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
799 assert(!I.getType()->isDependentType() &&
803 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
tools/clang/lib/AST/CommentSema.cpp 593 if (ThisDeclInfo->ReturnType->isVoidType()) {
830 if (Type->isFunctionPointerType() || Type->isBlockPointerType())
830 if (Type->isFunctionPointerType() || Type->isBlockPointerType())
831 Type = Type->getPointeeType();
832 if (const auto *FT = Type->getAs<FunctionProtoType>())
851 return QT->isFunctionPointerType();
876 if (QT->getAs<TypedefType>())
878 if (const auto *P = QT->getAs<PointerType>())
879 if (P->getPointeeType()->getAs<TypedefType>())
881 if (const auto *P = QT->getAs<BlockPointerType>())
882 if (P->getPointeeType()->getAs<TypedefType>())
884 return QT->isFunctionPointerType() || QT->isBlockPointerType();
884 return QT->isFunctionPointerType() || QT->isBlockPointerType();
tools/clang/lib/AST/ComparisonCategories.cpp 29 auto *Record = VD->getType()->getAsCXXRecordDecl();
31 !Record->field_begin()->getType()->isIntegralOrEnumerationType())
107 auto *RD = Ty->getAsCXXRecordDecl();
tools/clang/lib/AST/Decl.cpp 264 if (!NTTP->getType()->isDependentType()) {
273 if (!type->isDependentType())
829 if (!isExternallyVisible(TypeAsWritten->getLinkage()))
972 if (!isExternallyVisible(TypeAsWritten->getLinkage()))
1203 VD && VD->getType()->getContainedDeducedType()
1630 FT = dyn_cast<FunctionProtoType>(FD->getType()->castAs<FunctionType>());
2289 if (Lang.CPlusPlus11 && getType()->isReferenceType())
2300 if (getType()->isIntegralOrEnumerationType())
2314 if (!Init || Init->isValueDependent() || getType()->isDependentType())
2774 assert(T.isNull() || T->isFunctionType());
2808 if (const auto *FT = getType()->getAs<FunctionProtoType>())
2923 const auto *proto = getType()->castAs<FunctionProtoType>();
2952 const auto *FPT = getType()->castAs<FunctionProtoType>();
2982 if (Ctx.getLangOpts().AlignedAllocation && !Ty.isNull() && Ty->isAlignValT()) {
2990 if (!IsSizedDelete && !Ty.isNull() && Ty->isReferenceType()) {
2991 Ty = Ty->getPointeeType();
2994 if (Ty->isNothrowT())
3010 auto *RD = getParamDecl(1)->getType()->getAsCXXRecordDecl();
3058 if (auto *FnTy = getType()->getAs<FunctionType>())
3187 const auto *FPT = getType()->getAs<FunctionProtoType>();
3946 if (const auto *Record = getType()->getAs<RecordType>())
3973 const auto *RT = getType()->getAs<RecordType>();
4443 if (const auto *RT = I->getType()->getAs<RecordType>())
4731 if (auto *TT = getTypeSourceInfo()->getType()->getAs<TagType>()) {
4747 if (auto *TT = getUnderlyingType()->getAs<TagType>()) {
tools/clang/lib/AST/DeclBase.cpp 961 if (Ty->isFunctionPointerType())
962 Ty = Ty->castAs<PointerType>()->getPointeeType();
963 else if (Ty->isFunctionReferenceType())
964 Ty = Ty->castAs<ReferenceType>()->getPointeeType();
965 else if (BlocksToo && Ty->isBlockPointerType())
966 Ty = Ty->castAs<BlockPointerType>()->getPointeeType();
968 return Ty->getAs<FunctionType>();
tools/clang/lib/AST/DeclCXX.cpp 175 if (const CXXRecordDecl *B = BaseSpec.getType()->getAsCXXRecordDecl()) {
219 if (BaseType->isDependentType())
222 cast<CXXRecordDecl>(BaseType->castAs<RecordType>()->getDecl());
279 if (!hasNonLiteralTypeFieldsOrBases() && !BaseType->isLiteralType(C))
293 if (CXXRecordDecl *VBaseDecl = VBase.getType()->getAsCXXRecordDecl())
470 if (!Type->isDependentType())
471 addedClassSubobject(Type->getAsCXXRecordDecl());
640 if (auto *RD = T->getAsCXXRecordDecl())
821 Method->getParamDecl(0)->getType()->getAs<ReferenceType>();
993 if (T->isObjCRetainableType() || T.isObjCGCStrong()) {
1034 if (T->isReferenceType()) {
1047 if (T->isRValueReferenceType())
1052 if (CXXRecordDecl *FieldType = T->getAsCXXRecordDecl()) {
1061 if (!T->isLiteralType(Context) || T.isVolatileQualified())
1066 Field->getType()->getAsCXXRecordDecl()->hasInClassInitializer())) {
1091 if (T->isReferenceType())
1098 if (const auto *RecordTy = T->getAs<RecordType>()) {
1282 if (!T->isLiteralType(Context) ||
1562 const RecordType *RT = I.getType()->getAs<RecordType>();
1604 const RecordType *RT = I.getType()->getAs<RecordType>();
1786 if (const CXXRecordDecl *RD = Base.getType()->getAsCXXRecordDecl())
1793 Field->getType()->getBaseElementTypeUnsafe()->getAsCXXRecordDecl())
1855 const auto *Base = BaseSpec.getType()->getAsCXXRecordDecl();
1913 cast<CXXRecordDecl>(B.getType()->castAs<RecordType>()->getDecl());
2027 const RecordType *RT = I.getType()->getAs<RecordType>();
2078 if (Base->isRValue() && Base->getType()->isRecordType())
2112 if (VD->getType()->isRecordType())
2124 return VD->getType()->isRecordType() ? DevirtualizedMethod : nullptr;
2131 auto *MPT = BO->getRHS()->getType()->castAs<MemberPointerType>();
2132 if (MPT->getPointeeType()->isRecordType())
2187 getParamDecl(UsualParams)->getType()->isAlignValT())
2230 if (const auto *Ref = ParamType->getAs<LValueReferenceType>())
2252 ParamType = ParamType->getPointeeType();
2318 return CXXMethodDecl::getThisType(getType()->getAs<FunctionProtoType>(),
2326 return CXXMethodDecl::getThisObjectType(getType()->getAs<FunctionProtoType>(),
2509 getParamDecl(0)->getType()->isLValueReferenceType();
2514 getParamDecl(0)->getType()->isRValueReferenceType();
2538 const auto *ParamRefType = Param->getType()->getAs<ReferenceType>();
2570 getType()->castAs<FunctionProtoType>()->isVariadic()) ||
2652 getConversionType()->isBlockPointerType();
tools/clang/lib/AST/DeclObjC.cpp 1013 if (!isInstanceMethod() || !getReturnType()->isObjCObjectPointerType())
1023 if (!getReturnType()->isObjCObjectPointerType())
1040 if (isInstanceMethod() || !getReturnType()->isVoidType())
1045 if (!isInstanceMethod() || !getReturnType()->isObjCIdType())
1054 if (!ArgT->isObjCSelType()) {
1061 if (!ArgT->isObjCIdType()) {
tools/clang/lib/AST/DeclPrinter.cpp 146 while (!BaseType->isSpecifierType()) {
147 if (const PointerType *PTy = BaseType->getAs<PointerType>())
149 else if (const BlockPointerType *BPy = BaseType->getAs<BlockPointerType>())
153 else if (const FunctionType* FTy = BaseType->getAs<FunctionType>())
155 else if (const VectorType *VTy = BaseType->getAs<VectorType>())
157 else if (const ReferenceType *RTy = BaseType->getAs<ReferenceType>())
159 else if (const AutoType *ATy = BaseType->getAs<AutoType>())
161 else if (const ParenType *PTy = BaseType->getAs<ParenType>())
274 if (auto *PET = T->getAs<PackExpansionType>()) {
651 if (const FunctionType *AFT = Ty->getAs<FunctionType>()) {
1095 if (auto T = A.getAsType()->getAs<TemplateTypeParmType>()) {
tools/clang/lib/AST/DeclTemplate.cpp 60 if (NTTP->getType()->containsUnexpandedParameterPack())
tools/clang/lib/AST/DeclarationName.cpp 124 if (const RecordType *ClassRec = ClassType->getAs<RecordType>()) {
129 if (auto *InjTy = ClassType->getAs<InjectedClassNameType>()) {
181 if (const RecordType *Rec = Type->getAs<RecordType>()) {
211 if (!T.isNull() && T->isDependentType())
417 return TInfo->getType()->containsUnexpandedParameterPack();
419 return Name.getCXXNameType()->containsUnexpandedParameterPack();
440 return TInfo->getType()->isInstantiationDependentType();
442 return Name.getCXXNameType()->isInstantiationDependentType();
tools/clang/lib/AST/Expr.cpp 65 if (const PointerType *PTy = DerivedType->getAs<PointerType>())
68 if (DerivedType->isDependentType())
71 const RecordType *Ty = DerivedType->castAs<RecordType>();
86 E->getType()->isRecordType()) {
89 cast<CXXRecordDecl>(E->getType()->castAs<RecordType>()->getDecl());
100 assert(ME->getBase()->getType()->isRecordType());
102 if (!Field->isBitField() && !Field->getType()->isReferenceType()) {
114 BO->getRHS()->getType()->getAs<MemberPointerType>();
138 if (E->getType()->isBooleanType()) return true;
140 if (!E->getType()->isIntegralOrEnumerationType()) return false;
386 if (T->isDependentType()) {
391 } else if (T->isInstantiationDependentType()) {
399 if (T->isDependentType()) {
406 if (T->isInstantiationDependentType())
426 Var->getType()->isLiteralType(Ctx) :
427 Var->getType()->isIntegralOrEnumerationType()) &&
429 Var->getType()->isReferenceType())) {
445 if (TInfo->getType()->isIncompleteArrayType())
612 FNTy->isDependentType(), FNTy->isDependentType(),
612 FNTy->isDependentType(), FNTy->isDependentType(),
613 FNTy->isInstantiationDependentType(),
735 const FunctionType *AFT = Decl->getType()->getAs<FunctionType>();
846 else if (FT && FT->getReturnType()->getAs<DecltypeType>())
848 ->getAs<DecltypeType>()
918 assert(type->isIntegerType() && "Illegal type in IntegerLiteral");
941 assert(type->isFixedPointType() && "Illegal type in FixedPointLiteral");
1499 if (const auto *FnTypePtr = CalleeType->getAs<PointerType>()) {
1501 } else if (const auto *BPT = CalleeType->getAs<BlockPointerType>()) {
1503 } else if (CalleeType->isSpecificPlaceholderType(BuiltinType::BoundMember)) {
1511 const FunctionType *FnType = CalleeType->castAs<FunctionType>();
1518 if (const TagDecl *TD = getCallReturnType(Ctx)->getAsTagDecl())
1573 /*ValueDependent=*/tsi->getType()->isDependentType(),
1574 tsi->getType()->isInstantiationDependentType(),
1575 tsi->getType()->containsUnexpandedParameterPack()),
1768 assert(getType()->isObjCObjectPointerType());
1769 assert(getSubExpr()->getType()->isPointerType());
1773 assert(getType()->isObjCObjectPointerType());
1774 assert(getSubExpr()->getType()->isBlockPointerType());
1778 assert(getType()->isMemberPointerType());
1779 assert(getSubExpr()->getType()->isMemberPointerType());
1786 if (!getType()->isPointerType()) {
1787 assert(getType()->isObjCObjectPointerType() ==
1788 getSubExpr()->getType()->isObjCObjectPointerType());
1789 assert(getType()->isBlockPointerType() ==
1790 getSubExpr()->getType()->isBlockPointerType());
1795 assert(getType()->isBlockPointerType());
1796 assert(getSubExpr()->getType()->isAnyPointerType() &&
1797 !getSubExpr()->getType()->isBlockPointerType());
1801 assert(getType()->isBlockPointerType());
1802 assert(getSubExpr()->getType()->isBlockPointerType());
1806 assert(getType()->isPointerType());
1807 assert(getSubExpr()->getType()->isFunctionType());
1814 if (/*isRValue()*/ !Ty->getPointeeType().isNull()) {
1815 Ty = Ty->getPointeeType();
1816 SETy = SETy->getPointeeType();
1856 assert(!getType()->isBooleanType() && "unheralded conversion to bool");
1963 auto RD = unionType->castAs<RecordType>()->getDecl();
1990 !(T->isNullPtrType() || T->getAsCXXRecordDecl())) &&
1990 !(T->isNullPtrType() || T->getAsCXXRecordDecl())) &&
2110 if (LHS->getType()->isPointerType()) {
2111 if (!RHS->getType()->isIntegerType())
2114 } else if (RHS->getType()->isPointerType()) {
2115 if (!LHS->getType()->isIntegerType())
2128 const PointerType *PTy = PExp->getType()->getAs<PointerType>();
2129 if (!PTy || !PTy->getPointeeType()->isCharType())
2141 return Ctx.getPointerType(ArrTy->getAsArrayTypeUnsafe()->getElementType());
2275 const ArrayType *AT = getType()->getAsArrayTypeUnsafe();
2276 if (!AT || !AT->getElementType()->isIntegerType())
2302 if (!getInit(0)->isRValue() && getType()->isRecordType())
2361 ->getPointeeType()->castAs<FunctionProtoType>();
2393 if (getType()->isVoidType())
2526 if (Op->getCallReturnType(Ctx)->isReferenceType() ||
2527 Op->getCallReturnType(Ctx)->isVoidType())
2571 if (const CXXRecordDecl *Type = getType()->getAsCXXRecordDecl()) {
2604 !ME->getType()->isVoidType() &&
2657 if (getType()->isVoidType())
2762 return T->isPointerType() &&
2796 QualType type = op->getRHS()->getType()->castAs<MemberPointerType>()
2798 assert(type->isFunctionType());
2916 (E->getType()->isPointerType() || E->getType()->isIntegralType(Ctx)) &&
2916 (E->getType()->isPointerType() || E->getType()->isIntegralType(Ctx)) &&
2917 (SubExpr->getType()->isPointerType() ||
2918 SubExpr->getType()->isIntegralType(Ctx)) &&
3197 if (ILE->getType()->isArrayType()) {
3206 if (ILE->getType()->isRecordType()) {
3208 RecordDecl *RD = ILE->getType()->castAs<RecordType>()->getDecl();
3229 bool RefType = Field->getType()->isReferenceType();
3526 if (DCE->getTypeAsWritten()->isReferenceType() &&
3692 if (isTypeDependent() || getType()->isIntegralType(Ctx))
3706 if (const PointerType *PT = CE->getType()->getAs<PointerType>()) {
3720 if (Pointee->isVoidType() && Qs.empty() && // to void*
3721 CE->getSubExpr()->getType()->isIntegerType()) // from int
3761 if (getType()->isNullPtrType())
3764 if (const RecordType *UT = getType()->getAsUnionType())
3773 if (!getType()->isIntegerType() ||
3774 (Ctx.getLangOpts().CPlusPlus && getType()->isEnumeralType()))
3901 return ASE->getBase()->getType()->isVectorType();
4035 return getBase()->getType()->isPointerType();
4039 if (const VectorType *VT = getType()->getAs<VectorType>())
4102 Type->isDependentType(), Type->isDependentType(),
4102 Type->isDependentType(), Type->isDependentType(),
4103 Type->isInstantiationDependentType(),
4104 Type->containsUnexpandedParameterPack()),
4643 auto T = getPtr()->getType()->castAs<PointerType>()->getPointeeType();
4644 if (auto AT = T->getAs<AtomicType>())
4667 if (OriginalTy->isAnyPointerType())
4668 OriginalTy = OriginalTy->getPointeeType();
4670 assert (OriginalTy->isArrayType());
4671 OriginalTy = OriginalTy->castAsArrayTypeUnsafe()->getElementType();
tools/clang/lib/AST/ExprCXX.cpp 139 if (const CXXRecordDecl *RD = E->getType()->getAsCXXRecordDecl())
175 : Expr(CXXNewExprClass, Ty, VK_RValue, OK_Ordinary, Ty->isDependentType(),
176 Ty->isDependentType(), Ty->isInstantiationDependentType(),
176 Ty->isDependentType(), Ty->isInstantiationDependentType(),
177 Ty->containsUnexpandedParameterPack()),
294 ->castAs<FunctionProtoType>()
321 if (ArgType->isDependentType() && !ArgType->isPointerType())
321 if (ArgType->isDependentType() && !ArgType->isPointerType())
324 return ArgType->castAs<PointerType>()->getPointeeType();
343 DestroyedType.getTypeSourceInfo()->getType()->isDependentType())),
349 ScopeType->getType()->isInstantiationDependentType()) ||
352 ->isInstantiationDependentType())),
359 ScopeType->getType()->containsUnexpandedParameterPack()) ||
362 ->containsUnexpandedParameterPack()))),
732 if (Ty->isPointerType())
733 Ty = Ty->getPointeeType();
750 if (ThisArg->getType()->isAnyPointerType())
751 return ThisArg->getType()->getPointeeType()->getAsCXXRecordDecl();
751 return ThisArg->getType()->getPointeeType()->getAsCXXRecordDecl();
753 return ThisArg->getType()->getAsCXXRecordDecl();
836 if (const auto *SrcPTy = SrcType->getAs<PointerType>()) {
838 DestType = DestType->castAs<PointerType>()->getPointeeType();
841 if (DestType->isVoidType())
845 cast<CXXRecordDecl>(SrcType->castAs<RecordType>()->getDecl());
851 cast<CXXRecordDecl>(DestType->castAs<RecordType>()->getDecl());
968 if (ParamTy->isPointerType())
970 if (ParamTy->isAnyCharacterType())
972 if (ParamTy->isIntegerType())
974 if (ParamTy->isFloatingType())
996 Ty->isLValueReferenceType() ? VK_LValue : Ty->isRValueReferenceType()
996 Ty->isLValueReferenceType() ? VK_LValue : Ty->isRValueReferenceType()
1013 assert((SubExpr->getType()->isRecordType() ||
1014 SubExpr->getType()->isArrayType()) &&
1100 : Expr(SC, Ty, VK_RValue, OK_Ordinary, Ty->isDependentType(),
1101 Ty->isDependentType(), Ty->isInstantiationDependentType(),
1101 Ty->isDependentType(), Ty->isInstantiationDependentType(),
1102 Ty->containsUnexpandedParameterPack()),
1178 : Expr(LambdaExprClass, T, VK_RValue, OK_Ordinary, T->isDependentType(),
1179 T->isDependentType(), T->isDependentType(),
1179 T->isDependentType(), T->isDependentType(),
1283 return getType()->getAsCXXRecordDecl();
1359 (TSI->getType()->isLValueReferenceType()
1361 : TSI->getType()->isRValueReferenceType() ? VK_XValue
1364 TSI->getType()->isDependentType() ||
1365 TSI->getType()->getContainedDeducedType(),
1366 true, true, TSI->getType()->containsUnexpandedParameterPack()),
1508 ((Base && Base->isTypeDependent()) || BaseType->isDependentType()),
1510 BaseType->isInstantiationDependentType()),
1513 BaseType->containsUnexpandedParameterPack())),
1586 BaseType = BaseType->castAs<PointerType>()->getPointeeType();
1588 Record = BaseType->getAsCXXRecordDecl();
1692 if (Args[I]->getType()->isDependentType())
1694 if (Args[I]->getType()->isInstantiationDependentType())
1696 if (Args[I]->getType()->containsUnexpandedParameterPack())
tools/clang/lib/AST/ExprClassification.cpp 38 assert(!TR->isReferenceType() && "Expressions can't have reference type.");
45 if (TR->isFunctionType() || TR == Ctx.OverloadTy)
50 else if (TR->isVoidType() && !TR.hasQualifiers())
78 if (T->isRecordType())
80 if (T->isArrayType())
211 if (cast<ArraySubscriptExpr>(E)->getBase()->getType()->isVectorType())
217 if (Base->getType()->isArrayType())
449 islvalue = NTTParm->getType()->isReferenceType();
472 if (T->isLValueReferenceType())
474 const auto *RV = T->getAs<RValueReferenceType>();
478 return RV->getPointeeType()->isFunctionType() ? Cl::CL_LValue : Cl::CL_XValue;
505 if (Value->getType()->isReferenceType())
556 return (E->getType()->isFunctionType() ||
564 return (E->getType()->isFunctionType() ||
581 if (True->getType()->isVoidType() || False->getType()->isVoidType()) {
581 if (True->getType()->isVoidType() || False->getType()->isVoidType()) {
624 if (Ctx.getLangOpts().CPlusPlus && E->getType()->isFunctionType())
tools/clang/lib/AST/ExprConstant.cpp 90 if (!T->isIncompleteArrayType())
157 if (!E->getType()->isPointerType())
179 return E && E->getType()->isPointerType() && tryUnwrapAllocSizeCall(E);
205 if (Type->isArrayType()) {
218 } else if (Type->isAnyComplexType()) {
219 const ComplexType *CT = Type->castAs<ComplexType>();
1519 Designator = SubobjectDesignator(PointerTy->getPointeeType());
1582 assert(getType(Base)->isPointerType() || getType(Base)->isArrayType());
1582 assert(getType(Base)->isPointerType() || getType(Base)->isArrayType());
1936 if (Ty->isArrayType())
1937 return Ty->isIncompleteType() ||
2004 bool IsReferenceType = Type->isReferenceType();
2126 if (!E->isRValue() || E->getType()->isLiteralType(Info.Ctx))
2170 if (const AtomicType *AT = Type->getAs<AtomicType>())
2177 QualType EltTy = Type->castAsArrayTypeUnsafe()->getElementType();
2197 RecordDecl *RD = Type->castAs<RecordType>()->getDecl();
2347 bool DestSigned = DestType->isSignedIntegerOrEnumerationType();
2374 Result.setIsUnsigned(DestType->isUnsignedIntegerOrEnumerationType());
2375 if (DestType->isBooleanType())
2426 QualType EltTy = VecTy->castAs<VectorType>()->getElementType();
2670 const CXXRecordDecl *BaseDecl = Base->getType()->getAsCXXRecordDecl();
2680 DerivedDecl = D.MostDerivedType->getAsCXXRecordDecl();
2697 if (!HandleLValueBase(Info, E, Result, Type->getAsCXXRecordDecl(),
2751 if (Type->isVoidType() || Type->isFunctionType()) {
2751 if (Type->isVoidType() || Type->isFunctionType()) {
2756 if (Type->isDependentType()) {
2761 if (!Type->isConstantSizeType()) {
2921 if (I->getType()->getAsCXXRecordDecl()->getCanonicalDecl() == Base)
2949 assert(CharType->isIntegerType() && "unexpected character type");
2952 CharType->isUnsignedIntegerType());
2969 assert(CharType->isIntegerType() && "unexpected character type");
2975 CharType->isUnsignedIntegerType());
3011 CXXRecordDecl *RD = T->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
3032 CXXRecordDecl *RD = T->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
3103 BaseD->getType()->isReferenceType()) ||
3195 ObjType->isRecordType() &&
3206 if (I == N || (I == N - 1 && ObjType->isAnyComplexType())) {
3239 if (ObjType->isRecordType() &&
3259 if (ObjType->isArrayType()) {
3284 } else if (ObjType->isAnyComplexType()) {
3297 ObjType, ObjType->castAs<ComplexType>()->getElementType());
3318 RecordDecl *RD = ObjType->castAs<RecordType>()->getDecl();
3346 const CXXRecordDecl *Derived = ObjType->getAsCXXRecordDecl();
3457 (ObjType->isArrayType() || ObjType->isAnyComplexType())) {
3457 (ObjType->isArrayType() || ObjType->isAnyComplexType())) {
3463 if (ObjType->isAnyComplexType())
3464 ObjType = ObjType->castAs<ComplexType>()->getElementType();
3466 ObjType = ObjType->castAsArrayTypeUnsafe()->getElementType();
3584 } else if (BaseType->isIntegralOrEnumerationType()) {
3602 } else if (BaseType->isFloatingType() && BaseType.isConstQualified()) {
3670 BaseType->isIntegralOrEnumerationType()) &&
3842 if (!SubobjType->isIntegerType()) {
3880 if (const PointerType *PT = SubobjType->getAs<PointerType>())
3958 SubobjType->castAs<ComplexType>()->getElementType()
3962 SubobjType->castAs<ComplexType>()->getElementType()
3976 if (!SubobjType->isIntegerType()) {
3987 if (SubobjType->isBooleanType()) {
4033 if (const PointerType *PT = SubobjType->getAs<PointerType>())
4071 if (Object->getType()->isPointerType() && Object->isRValue())
4077 if (Object->getType()->isLiteralType(Info.Ctx))
4143 if (const PointerType *PT = LVType->getAs<PointerType>())
4145 const CXXRecordDecl *RD = LVType->getAsCXXRecordDecl();
4204 if (const PointerType *PT = TargetQT->getAs<PointerType>())
4217 const CXXRecordDecl *TargetType = TargetQT->getAsCXXRecordDecl();
4220 FinalType = D.MostDerivedType->getAsCXXRecordDecl();
4235 if (auto *RD = T->getAsCXXRecordDecl()) {
4257 dyn_cast_or_null<ConstantArrayType>(T->getAsArrayTypeUnsafe())) {
5021 ? Designator.MostDerivedType->getAsCXXRecordDecl()
5041 This.Designator.MostDerivedType->getAsCXXRecordDecl();
5156 const CXXRecordDecl *OldClass = Path[0]->getPointeeCXXRecordDecl();
5158 const CXXRecordDecl *NewClass = Path[I]->getPointeeCXXRecordDecl();
5175 auto *BaseClass = BaseSpec.getType()->getAsCXXRecordDecl();
5209 if (E->getType()->isVoidPointerType())
5212 const CXXRecordDecl *C = E->getTypeAsWritten()->getPointeeCXXRecordDecl();
5297 assert(SubobjType->isUnionType());
5333 if (!FD || FD->getType()->isReferenceType())
5342 FD->getType()->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
5358 if (!Base->getType()->isArrayType())
5376 assert(declaresSameEntity(Elt->getType()->getAsCXXRecordDecl(),
5422 if (hasFields(Base.getType()->getAsCXXRecordDecl()))
5527 if (Callee->getReturnType()->isVoidType())
5643 BaseType->getAsCXXRecordDecl(), &Layout))
5752 if (Value.isAbsent() && !T->isNullPtrType()) {
5792 const CXXRecordDecl *RD = T->getAsCXXRecordDecl();
5896 BaseType->getAsCXXRecordDecl(), &Layout))
5975 if (ElemType->isIncompleteType() || ElemType->isFunctionType()) {
5975 if (ElemType->isIncompleteType() || ElemType->isFunctionType()) {
5978 << (ElemType->isIncompleteType() ? 0 : 1) << ElemType;
5988 IsNothrow |= E->getType()->isNothrowT();
6023 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl())
6030 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl())
6195 if (Ty->isNullPtrType())
6235 const RecordDecl *RD = Ty->getAsRecordDecl();
6242 CXXRecordDecl *BaseDecl = BS.getType()->getAsCXXRecordDecl();
6276 dyn_cast_or_null<ConstantArrayType>(Ty->getAsArrayTypeUnsafe());
6407 CXXRecordDecl *BaseDecl = BS.getType()->getAsCXXRecordDecl();
6453 RepresentationType.getCanonicalType()->castAs<BuiltinType>();
6482 switch (Can->getTypeClass()) {
6530 if (Ty->isUnionType())
6532 if (Ty->isPointerType())
6534 if (Ty->isMemberPointerType())
6539 if (RecordDecl *Record = Ty->getAsRecordDecl()) {
6547 if (FD->getType()->isReferenceType())
6555 if (Ty->isArrayType() &&
6852 if (CalleeType->isSpecificBuiltinType(BuiltinType::BoundMember)) {
6883 } else if (CalleeType->isFunctionPointerType()) {
6897 CalleeType->getPointeeType(), FD->getType())) {
7038 assert(!FD->getType()->isReferenceType() && "prvalue reference?");
7039 assert(BaseTy->castAs<RecordType>()->getDecl()->getCanonicalDecl() ==
7213 BaseTy = E->getBase()->getType()->castAs<PointerType>()->getPointeeType();
7215 assert(E->getBase()->getType()->isRecordType());
7231 assert(BaseTy->castAs<RecordType>()->getDecl()->getCanonicalDecl() ==
7242 if (MD->getType()->isReferenceType()) {
7378 assert(E->isGLValue() || E->getType()->isFunctionType() ||
7379 E->getType()->isVoidType() || isa<ObjCSelectorExpr>(E));
7419 if (FD->getType()->isReferenceType()) {
7443 if (!VD->getType()->isReferenceType()) {
7592 if (E->getBase()->getType()->isVectorType())
7618 if (E->getSubExpr()->getType()->isAnyComplexType())
7624 assert(E->getSubExpr()->getType()->isAnyComplexType() &&
7788 QualType Pointee = E->getType()->castAs<PointerType>()->getPointeeType();
7873 ->isPointerType()) {
7901 assert(E->isRValue() && E->getType()->hasPointerRepresentation());
7912 if (IExp->getType()->isPointerType())
7926 QualType Pointee = PExp->getType()->castAs<PointerType>()->getPointeeType();
7950 if (!E->getType()->isVoidPointerType()) {
7954 E->getType()->getPointeeType()) &&
7961 if (SubExpr->getType()->isVoidPointerType())
7981 return HandleLValueBasePath(Info, E, E->getSubExpr()->getType()->
8069 if (const ReferenceType *Ref = T->getAs<ReferenceType>())
8121 QualType PointeeTy = E->getType()->castAs<PointerType>()->getPointeeType();
8249 CharTy, E->getArg(0)->getType()->getPointeeType()));
8251 if (IsRawByte && CharTy->isIncompleteType()) {
8377 if (T->isIncompleteType()) {
8503 !E->getPlacementArg(0)->getType()->isNothrowT())
8585 assert(!AllocType->isArrayType() &&
8653 if (auto *AT = AllocType->getAsArrayTypeUnsafe())
8691 assert(E->isRValue() && E->getType()->isMemberPointerType());
8716 const CXXRecordDecl *Derived = (*PathI)->getType()->getAsCXXRecordDecl();
8720 const Type *FinalTy = E->getType()->castAs<MemberPointerType>()->getClass();
8732 const CXXRecordDecl *Base = (*PathI)->getType()->getAsCXXRecordDecl();
8807 const CXXRecordDecl *Base = I->getType()->getAsCXXRecordDecl();
8819 if (I->getType()->isReferenceType())
8836 const RecordDecl *RD = T->castAs<RecordType>()->getDecl();
8881 const CXXRecordDecl *RD = E->getSubExpr()->getType()->getAsCXXRecordDecl();
8885 const CXXRecordDecl *Base = (*PathI)->getType()->getAsCXXRecordDecl();
8899 const RecordDecl *RD = E->getType()->castAs<RecordType>()->getDecl();
9077 RecordDecl *Record = E->getType()->castAs<RecordType>()->getDecl();
9083 if (!Field->getType()->isPointerType() ||
9084 !Info.Ctx.hasSameType(Field->getType()->getPointeeType(),
9095 if (Field->getType()->isPointerType() &&
9096 Info.Ctx.hasSameType(Field->getType()->getPointeeType(),
9158 assert(E->isRValue() && E->getType()->isRecordType() &&
9213 assert(E->isRValue() && E->getType()->isRecordType());
9231 assert(V.size() == E->getType()->castAs<VectorType>()->getNumElements());
9255 assert(E->isRValue() && E->getType()->isVectorType() &&"not a vector rvalue");
9260 const VectorType *VTy = E->getType()->castAs<VectorType>();
9269 if (SETy->isIntegerType()) {
9274 } else if (SETy->isRealFloatingType()) {
9297 if (EltTy->isRealFloatingType()) {
9310 } else if (EltTy->isIntegerType()) {
9317 Elts.push_back(APValue(APSInt(Elt, EltTy->isSignedIntegerType())));
9331 const VectorType *VT = E->getType()->castAs<VectorType>();
9346 && E->getInit(CountInits)->getType()->isVectorType()) {
9354 } else if (EltTy->isIntegerType()) {
9380 const auto *VT = E->getType()->castAs<VectorType>();
9383 if (EltTy->isIntegerType())
9455 assert(E->isRValue() && E->getType()->isArrayType() && "not an array rvalue");
9462 assert(ILE->isRValue() && ILE->getType()->isArrayType() &&
9568 auto *CAT = cast<ConstantArrayType>(E->getType()->castAsArrayTypeUnsafe());
9628 if (!Type->isRecordType())
9652 assert(E->getType()->isIntegralOrEnumerationType() &&
9654 assert(SI.isSigned() == E->getType()->isSignedIntegerOrEnumerationType() &&
9666 assert(E->getType()->isIntegralOrEnumerationType() &&
9672 E->getType()->isUnsignedIntegerOrEnumerationType());
9680 assert(E->getType()->isIntegralOrEnumerationType() &&
9809 assert(E->getType()->isFixedPointType() && "Invalid evaluation result.");
9840 assert(E->isRValue() && E->getType()->isIntegralOrEnumerationType());
9866 if (E->getType()->isFixedPointType()) {
9881 if (E->getType()->isIntegerType()) {
9888 } else if (E->getType()->isFixedPointType()) {
9902 == E->getType()->isSignedIntegerOrEnumerationType());
9955 assert(!T->isDependentType() && "unexpected dependent type");
9960 switch (CanTy->getTypeClass()) {
10051 return CanTy->isMemberDataPointerType()
10059 return CanTy->isUnionType() ? GCCTypeClass::Union
10065 CanTy->castAs<AtomicType>()->getValueType(), LangOpts);
10153 if (ArgType->isIntegralOrEnumerationType() || ArgType->isFloatingType() ||
10153 if (ArgType->isIntegralOrEnumerationType() || ArgType->isFloatingType() ||
10154 ArgType->isAnyComplexType() || ArgType->isPointerType() ||
10154 ArgType->isAnyComplexType() || ArgType->isPointerType() ||
10155 ArgType->isNullPtrType()) {
10199 assert(E->isRValue() && E->getType()->hasPointerRepresentation());
10214 if (!SubExpr->getType()->hasPointerRepresentation() || !SubExpr->isRValue())
10267 if (BaseType->isIncompleteArrayType())
10270 BaseType = BaseType->castAs<PointerType>()->getPointeeType();
10275 if (BaseType->isArrayType()) {
10285 } else if (BaseType->isAnyComplexType()) {
10286 const auto *CT = BaseType->castAs<ComplexType>();
10368 if (Ty.isNull() || Ty->isIncompleteType() || Ty->isFunctionType())
10368 if (Ty.isNull() || Ty->isIncompleteType() || Ty->isFunctionType())
10711 QualType CharTy = E->getArg(0)->getType()->getPointeeType();
10806 CharTy1, E->getArg(0)->getType()->getPointeeType()) &&
10822 if (CharTy1->isIncompleteType()) {
10826 if (CharTy2->isIncompleteType()) {
10934 QualType PointeeType = E->getArg(1)->IgnoreImpCasts()->getType()->
10936 if (!PointeeType->isIncompleteType() &&
10974 QualType ResultType = E->getArg(2)->getType()->getPointeeType();
10988 ResultType->isSignedIntegerOrEnumerationType();
10990 ResultType->isSignedIntegerOrEnumerationType();
11055 Temp.setIsSigned(ResultType->isSignedIntegerOrEnumerationType());
11088 if (Ty->isIncompleteType())
11150 (E->isRValue() && E->getType()->isIntegralOrEnumerationType() &&
11151 E->getLHS()->getType()->isIntegralOrEnumerationType() &&
11152 E->getRHS()->getType()->isIntegralOrEnumerationType());
11246 assert(E->getLHS()->getType()->isIntegralOrEnumerationType() &&
11247 E->getRHS()->getType()->isIntegralOrEnumerationType());
11302 assert(E->getLHS()->getType()->isIntegralOrEnumerationType() &&
11303 E->getRHS()->getType()->isIntegralOrEnumerationType());
11355 E->getType()->isUnsignedIntegerOrEnumerationType());
11435 E->getType()->isIntegralOrEnumerationType()) &&
11455 if (LHSTy->isIntegralOrEnumerationType() &&
11456 RHSTy->isIntegralOrEnumerationType()) {
11470 if (LHSTy->isFixedPointType() || RHSTy->isFixedPointType()) {
11470 if (LHSTy->isFixedPointType() || RHSTy->isFixedPointType()) {
11486 if (LHSTy->isAnyComplexType() || RHSTy->isAnyComplexType()) {
11486 if (LHSTy->isAnyComplexType() || RHSTy->isAnyComplexType()) {
11493 } else if (LHSTy->isRealFloatingType()) {
11505 if (E->getRHS()->getType()->isRealFloatingType()) {
11528 if (LHSTy->isRealFloatingType() &&
11529 RHSTy->isRealFloatingType()) {
11556 if (LHSTy->isPointerType() && RHSTy->isPointerType()) {
11556 if (LHSTy->isPointerType() && RHSTy->isPointerType()) {
11618 if (LHSTy->isVoidPointerType() && LHSOffset != RHSOffset && IsRelational)
11677 if (BaseTy->isIncompleteType())
11692 if (LHSTy->isMemberPointerType()) {
11694 assert(RHSTy->isMemberPointerType() && "invalid comparison");
11730 if (LHSTy->isNullPtrType()) {
11732 assert(RHSTy->isNullPtrType() && "missing pointer conversion");
11776 assert((!E->getLHS()->getType()->isIntegralOrEnumerationType() ||
11777 !E->getRHS()->getType()->isIntegralOrEnumerationType()) &&
11810 if (LHSTy->isPointerType() && RHSTy->isPointerType() &&
11810 if (LHSTy->isPointerType() && RHSTy->isPointerType() &&
11857 QualType ElementType = Type->castAs<PointerType>()->getPointeeType();
11914 if (Ty->isVectorType()) {
11915 unsigned n = Ty->castAs<VectorType>()->getNumElements();
11931 if (const ReferenceType *Ref = SrcTy->getAs<ReferenceType>())
11976 const RecordType *RT = CurrentType->getAs<RecordType>();
11998 const RecordType *RT = CurrentType->getAs<RecordType>();
12007 const RecordType *BaseRT = CurrentType->getAs<RecordType>();
12145 DestType->isSignedIntegerOrEnumerationType(), &Overflowed);
12231 if (E->getSubExpr()->getType()->isAnyComplexType()) {
12244 if (E->getSubExpr()->getType()->isComplexIntegerType()) {
12301 assert(DestType->isFixedPointType() &&
12404 assert(E->isRValue() && E->getType()->isRealFloatingType());
12515 if (E->getSubExpr()->getType()->isAnyComplexType()) {
12527 if (E->getSubExpr()->getType()->isAnyComplexType()) {
12636 assert(E->isRValue() && E->getType()->isAnyComplexType());
12641 QualType ElemTy = E->getType()->castAs<ComplexType>()->getElementType();
12642 if (ElemTy->isRealFloatingType()) {
12659 if (SubExpr->getType()->isRealFloatingType()) {
12668 assert(SubExpr->getType()->isIntegerType() &&
12760 QualType To = E->getType()->castAs<ComplexType>()->getElementType();
12762 = E->getSubExpr()->getType()->castAs<ComplexType>()->getElementType();
12772 QualType To = E->getType()->castAs<ComplexType>()->getElementType();
12774 = E->getSubExpr()->getType()->castAs<ComplexType>()->getElementType();
12796 QualType To = E->getType()->castAs<ComplexType>()->getElementType();
12798 = E->getSubExpr()->getType()->castAs<ComplexType>()->getElementType();
12809 QualType To = E->getType()->castAs<ComplexType>()->getElementType();
12811 = E->getSubExpr()->getType()->castAs<ComplexType>()->getElementType();
12832 if (E->getLHS()->getType()->isRealFloatingType()) {
12847 if (E->getRHS()->getType()->isRealFloatingType()) {
13081 if (E->getType()->isComplexType()) {
13120 E->getType()->castAs<AtomicType>()->getValueType());
13141 assert(E->isRValue() && E->getType()->isAtomicType());
13230 !hasVirtualDestructor(Arg->getType()->getPointeeType())) {
13232 << Arg->getType()->getPointeeType() << AllocType;
13265 assert(E->isRValue() && E->getType()->isVoidType());
13277 if (E->isGLValue() || T->isFunctionType()) {
13282 } else if (T->isVectorType()) {
13285 } else if (T->isIntegralOrEnumerationType()) {
13288 } else if (T->hasPointerRepresentation()) {
13293 } else if (T->isRealFloatingType()) {
13298 } else if (T->isAnyComplexType()) {
13303 } else if (T->isFixedPointType()) {
13305 } else if (T->isMemberPointerType()) {
13311 } else if (T->isArrayType()) {
13318 } else if (T->isRecordType()) {
13324 } else if (T->isVoidType()) {
13330 } else if (T->isAtomicType()) {
13332 if (Unqual->isArrayType() || Unqual->isRecordType()) {
13332 if (Unqual->isArrayType() || Unqual->isRecordType()) {
13366 if (T->isArrayType())
13368 else if (T->isRecordType())
13370 else if (T->isAtomicType()) {
13372 if (Unqual->isArrayType() || Unqual->isRecordType())
13372 if (Unqual->isArrayType() || Unqual->isRecordType())
13423 L->getType()->isUnsignedIntegerType()));
13437 if (Exp->isRValue() && (Exp->getType()->isArrayType() ||
13438 Exp->getType()->isRecordType()) &&
13465 if (!E->getType()->isIntegralOrEnumerationType())
13480 if (!E->getType()->isFixedPointType())
13542 if (!getType()->isRealFloatingType())
13603 if (isRValue() && (getType()->isArrayType() || getType()->isRecordType()) &&
13603 if (isRValue() && (getType()->isArrayType() || getType()->isRecordType()) &&
13642 !DeclTy->isReferenceType()) {
13823 if (!E->getType()->isIntegralOrEnumerationType())
13978 if (!Dcl->getType()->isIntegralOrEnumerationType())
14029 Exp->getTypeOfArgument()->isVariableArrayType())
14133 bool DestSigned = E->getType()->isSignedIntegerOrEnumerationType();
14223 if (!E->getType()->isIntegralOrUnscopedEnumerationType()) {
14452 if (!getType()->isPointerType())
tools/clang/lib/AST/ExprObjC.cpp 151 : Expr(ObjCMessageExprClass, T, VK, OK_Ordinary, T->isDependentType(),
152 T->isDependentType(), T->isInstantiationDependentType(),
152 T->isDependentType(), T->isInstantiationDependentType(),
153 T->containsUnexpandedParameterPack()),
361 if (const ObjCObjectPointerType *Ptr = T->getAs<ObjCObjectPointerType>())
364 if (const ObjCObjectType *Ty = T->getAs<ObjCObjectType>())
tools/clang/lib/AST/FormatString.cpp 327 const PointerType *PT = argTy->getAs<PointerType>();
346 if (const EnumType *ETy = argTy->getAs<EnumType>()) {
354 if (const BuiltinType *BT = argTy->getAs<BuiltinType>())
369 if (const EnumType *ETy = argTy->getAs<EnumType>()) {
382 if (const BuiltinType *BT = argTy->getAs<BuiltinType>())
416 const PointerType *PT = argTy->getAs<PointerType>();
420 if (const BuiltinType *BT = pointeeTy->getAs<BuiltinType>())
436 const PointerType *PT = argTy->getAs<PointerType>();
450 QualType PromoArg = argTy->isPromotableIntegerType()
457 if (PromoArg->hasSignedIntegerRepresentation() &&
465 if (argTy->isVoidPointerType()) {
467 } if (argTy->isPointerType() || argTy->isObjCObjectPointerType() ||
467 } if (argTy->isPointerType() || argTy->isObjCObjectPointerType() ||
468 argTy->isBlockPointerType() || argTy->isNullPtrType()) {
468 argTy->isBlockPointerType() || argTy->isNullPtrType()) {
475 if (argTy->getAs<ObjCObjectPointerType>() ||
476 argTy->getAs<BlockPointerType>())
480 if (const PointerType *PT = argTy->getAs<PointerType>()) {
486 if (pointee->getAsStructureType() || pointee->isVoidType())
486 if (pointee->getAsStructureType() || pointee->isVoidType())
tools/clang/lib/AST/InheritViz.cpp 94 static_cast<const CXXRecordDecl *>(Type->castAs<RecordType>()->getDecl());
tools/clang/lib/AST/Interp/ByteCodeEmitter.cpp 34 if (!Ty->isVoidType() && !Ctx.classify(Ty)) {
tools/clang/lib/AST/Interp/ByteCodeExprGen.cpp 264 if (!DE->getDecl()->getType()->isReferenceType()) {
384 if (VT.isConstQualified() && VT->isFundamentalType())
474 if (VD->getType()->isReferenceType())
500 return PT->getPointeeType()->getAs<RecordType>();
502 return Ty->getAs<RecordType>();
tools/clang/lib/AST/Interp/ByteCodeStmtGen.cpp 108 if (F->getReturnType()->isVoidType())
tools/clang/lib/AST/Interp/Context.cpp 69 if (T->isReferenceType() || T->isPointerType()) {
69 if (T->isReferenceType() || T->isPointerType()) {
73 if (T->isBooleanType())
76 if (T->isSignedIntegerOrEnumerationType()) {
91 if (T->isUnsignedIntegerOrEnumerationType()) {
106 if (T->isNullPtrType())
tools/clang/lib/AST/Interp/EvalEmitter.cpp 111 if (auto *AT = Ty->getAs<AtomicType>())
114 if (auto *RT = Ty->getAs<RecordType>()) {
171 if (auto *AT = Ty->getAsArrayTypeUnsafe()) {
tools/clang/lib/AST/Interp/InterpFrame.cpp 89 if (!Ty->isReferenceType())
tools/clang/lib/AST/Interp/Program.cpp 126 QualType ElemTy = PD->getType()->castAs<PointerType>()->getPointeeType();
241 const RecordDecl *BD = Spec.getType()->castAs<RecordType>()->getDecl();
253 const RecordDecl *BD = Spec.getType()->castAs<RecordType>()->getDecl();
tools/clang/lib/AST/ItaniumCXXABI.cpp 45 const RecordType *RT = VD.getType()->getAs<RecordType>();
tools/clang/lib/AST/ItaniumMangle.cpp 758 mangleBareFunctionType(FD->getType()->castAs<FunctionProtoType>(),
1086 if (const auto *TST = type->getAs<TemplateSpecializationType>()) {
1097 type->getAs<DependentTemplateSpecializationType>()) {
1303 FD->getType()->castAs<FunctionType>()->getCallConv() ==
1327 const RecordDecl *RD = VD->getType()->castAs<RecordType>()->getDecl();
1707 if (auto *PackExpansion = T->getAs<PackExpansionType>())
1778 const FunctionProtoType *Proto = Lambda->getLambdaTypeInfo()->getType()->
1971 switch (Ty->getTypeClass()) {
2439 if (!T->isInstantiationDependentType() || T->isDependentType())
2439 if (!T->isInstantiationDependentType() || T->isDependentType())
3047 assert(EltType->isBuiltinType() && "Neon vector element not a BuiltinType");
3138 assert(EltType->isBuiltinType() && "Neon vector element not a BuiltinType");
3458 if (T->isBooleanType()) {
3470 while (const auto *RT = Base->getType()->getAs<RecordType>()) {
3983 !ImplicitlyConvertedToType->isIntegerType())? SAE->getType()
4260 if (E->getType()->isSignedIntegerType())
4281 if (IE->getSubExpr()->getType()->isSignedIntegerType())
4440 assert(!parm->getType()->isArrayType()
4587 bool compensateMangling = !A.getParamTypeForDecl()->isReferenceType();
4685 if (const RecordType *RT = T->getAs<RecordType>())
4719 return T->isSpecificBuiltinType(BuiltinType::Char_S) ||
4720 T->isSpecificBuiltinType(BuiltinType::Char_U);
4729 const RecordType *RT = T->getAs<RecordType>();
4849 if (const RecordType *RT = T->getAs<RecordType>()) {
4891 cast<FunctionProtoType>(FD->getType()->getAs<FunctionType>());
tools/clang/lib/AST/JSONNodeDumper.cpp 274 if (const auto *TT = QT->getAs<TypedefType>())
313 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl());
1389 /*Radix=*/10, IL->getType()->isSignedIntegerType()));
tools/clang/lib/AST/Mangle.cpp 80 const FunctionType *FT = T->castAs<FunctionType>();
174 const FunctionType *FT = FD->getType()->castAs<FunctionType>();
389 auto CC = MD->getType()->castAs<FunctionProtoType>()->getCallConv();
tools/clang/lib/AST/MicrosoftCXXABI.cpp 149 RD->bases_begin()->getType()->getAsCXXRecordDecl();
tools/clang/lib/AST/MicrosoftMangle.cpp 512 const FunctionProtoType *FT = FD->getType()->castAs<FunctionProtoType>();
562 if (Ty->isPointerType() || Ty->isReferenceType() ||
562 if (Ty->isPointerType() || Ty->isReferenceType() ||
563 Ty->isMemberPointerType()) {
567 if (const MemberPointerType *MPT = Ty->getAs<MemberPointerType>()) {
573 mangleQualifiers(Ty->getPointeeType().getQualifiers(), false);
577 if (AT->getElementType()->isArrayType())
713 mangleCallingConvention(MD->getType()->getAs<FunctionProtoType>());
886 const CXXRecordDecl *RD = VD->getType()->getAsCXXRecordDecl();
1365 mangleIntegerLiteral(Value, E->getType()->isBooleanType());
1474 mangle(ND, TA.getParamTypeForDecl()->isReferenceType() ? "$E?" : "$1?");
1480 TA.getIntegralType()->isBooleanType());
1484 if (const MemberPointerType *MPT = T->getAs<MemberPointerType>()) {
1603 ->getAs<ObjCObjectType>(),
1712 (PointeeType.isNull() || !PointeeType->isFunctionType()))
1752 if (const auto *DT = T->getAs<DecayedType>()) {
1767 if (OriginalType->isArrayType())
1898 bool IsPointer = T->isAnyPointerType() || T->isMemberPointerType() ||
1898 bool IsPointer = T->isAnyPointerType() || T->isMemberPointerType() ||
1899 T->isReferenceType() || T->isBlockPointerType();
1899 T->isReferenceType() || T->isBlockPointerType();
2240 ->getAs<LValueReferenceType>()
2255 dyn_cast_or_null<AutoType>(ResultType->getContainedAutoType())) {
2266 if (ResultType->isVoidType())
2522 if (ElementTy->isConstantArrayType()) {
2527 } else if (ElementTy->isIncompleteArrayType()) {
2532 } else if (ElementTy->isVariableArrayType()) {
2537 } else if (ElementTy->isDependentSizedArrayType()) {
2567 if (const FunctionProtoType *FPT = PointeeType->getAs<FunctionProtoType>()) {
2688 const BuiltinType *ET = T->getElementType()->getAs<BuiltinType>();
2819 mangleFunctionType(PointeeType->castAs<FunctionProtoType>());
3078 DeclForFPT->getType()->castAs<FunctionProtoType>(), MD);
3093 Mangler.mangleFunctionType(DD->getType()->castAs<FunctionProtoType>(), DD);
tools/clang/lib/AST/NSAPI.cpp 379 const BuiltinType *BT = T->getAs<BuiltinType>();
383 const TypedefType *TDT = T->getAs<TypedefType>();
509 while (const TypedefType *TDT = T->getAs<TypedefType>()) {
566 while (const TypedefType *TDT = T->getAs<TypedefType>()) {
tools/clang/lib/AST/NestedNameSpecifier.cpp 216 if (Base.getType()->isDependentType())
tools/clang/lib/AST/PrintfFormatString.cpp 690 if (QT->isObjCRetainableType()) {
709 if (QT->isPointerType() && (QT->getPointeeType()->isAnyCharacterType())) {
709 if (QT->isPointerType() && (QT->getPointeeType()->isAnyCharacterType())) {
709 if (QT->isPointerType() && (QT->getPointeeType()->isAnyCharacterType())) {
717 if (QT->getPointeeType()->isWideCharType())
717 if (QT->getPointeeType()->isWideCharType())
726 if (const EnumType *ETy = QT->getAs<EnumType>())
729 const BuiltinType *BT = QT->getAs<BuiltinType>();
731 const VectorType *VT = QT->getAs<VectorType>();
734 BT = QT->getAs<BuiltinType>();
848 if (QT->isSignedIntegerType())
854 if (QT->isUnsignedIntegerType() && !HasPlusPrefix)
869 if (!isa<TypedefType>(QT) && QT->isCharType()) {
878 else if (QT->isRealFloatingType()) {
881 else if (QT->isSignedIntegerType()) {
885 else if (QT->isUnsignedIntegerType()) {
tools/clang/lib/AST/QualTypeNames.cpp 375 QT = getFullyQualifiedType(QT->getPointeeType(), Ctx, WithGlobalNsPrefix);
386 QT = getFullyQualifiedType(QT->getPointeeType(), Ctx, WithGlobalNsPrefix);
401 QT = getFullyQualifiedType(QT->getPointeeType(), Ctx, WithGlobalNsPrefix);
tools/clang/lib/AST/RecordLayoutBuilder.cpp 189 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
208 Context.getBaseElementType(FD->getType())->getAs<RecordType>();
394 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
404 const CXXRecordDecl *VBaseDecl = Base.getType()->getAsCXXRecordDecl();
437 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
443 const RecordType *RT = ElemTy->getAs<RecordType>();
505 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
515 const CXXRecordDecl *VBaseDecl = Base.getType()->getAsCXXRecordDecl();
539 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl()) {
547 const RecordType *RT = ElemTy->getAs<RecordType>();
811 assert(!I.getType()->isDependentType() &&
814 const CXXRecordDecl *Base = I.getType()->getAsCXXRecordDecl();
855 const CXXRecordDecl *Base = I.getType()->getAsCXXRecordDecl();
942 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl();
967 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl();
1057 const CXXRecordDecl *BaseDecl = I.getType()->getAsCXXRecordDecl();
1133 assert(!Base.getType()->isDependentType() &&
1136 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
1338 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
1345 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
1747 auto *FieldClass = D->getType()->getAsCXXRecordDecl();
1762 if (D->getType()->isIncompleteArrayType()) {
1770 } else if (const ReferenceType *RT = D->getType()->getAs<ReferenceType>()) {
1797 if (const BuiltinType *BTy = T->getAs<BuiltinType>()) {
2442 Context.getTypeInfoInChars(FD->getType()->getUnqualifiedDesugaredType());
2457 FD->getType()->getBaseElementTypeUnsafe()->getAs<RecordType>()) {
2573 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
2609 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
2858 const CXXRecordDecl *BaseDecl = VBase.getType()->getAsCXXRecordDecl();
2870 const CXXRecordDecl *BaseDecl = VBase.getType()->getAsCXXRecordDecl();
2949 Base.getType()->getAsCXXRecordDecl()))
2961 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
2972 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
3012 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
3329 assert(!Base.getType()->isDependentType() &&
3332 Bases.push_back(Base.getType()->getAsCXXRecordDecl());
3367 if (auto RT = Field.getType()->getAs<RecordType>()) {
3393 const CXXRecordDecl *VBase = Base.getType()->getAsCXXRecordDecl();
tools/clang/lib/AST/ScanfFormatString.cpp 420 if (!QT->isPointerType())
423 QualType PT = QT->getPointeeType();
426 if (const EnumType *ETy = PT->getAs<EnumType>()) {
433 const BuiltinType *BT = PT->getAs<BuiltinType>();
438 if (PT->isAnyCharacterType()) {
440 if (PT->isWideCharType())
514 if (PT->isRealFloatingType())
516 else if (PT->isSignedIntegerType())
518 else if (PT->isUnsignedIntegerType())
tools/clang/lib/AST/Stmt.cpp 1175 (Var->getType()->isScalarType() || (Var->getType()->isReferenceType() &&
1175 (Var->getType()->isScalarType() || (Var->getType()->isReferenceType() &&
1177 ->castAs<ReferenceType>()
1179 ->isScalarType())) &&
tools/clang/lib/AST/StmtPrinter.cpp 1119 bool isSigned = Node->getType()->isSignedIntegerType();
1123 switch (Node->getType()->castAs<BuiltinType>()->getKind()) {
1144 switch (Node->getType()->castAs<BuiltinType>()->getKind()) {
1173 switch (Node->getType()->castAs<BuiltinType>()->getKind()) {
1572 if (Node->getType()->getAsCXXRecordDecl()) {
1580 if (Node->getType()->isRecordType())
1982 auto *Proto = Method->getType()->castAs<FunctionProtoType>();
tools/clang/lib/AST/StmtProfile.cpp 1057 ID.AddInteger(S->getType()->castAs<BuiltinType>()->getKind());
1063 ID.AddInteger(S->getType()->castAs<BuiltinType>()->getKind());
1076 ID.AddInteger(S->getType()->castAs<BuiltinType>()->getKind());
tools/clang/lib/AST/TemplateBase.cpp 120 return getAsType()->isDependentType() ||
161 return getAsType()->isInstantiationDependentType();
227 if (getAsType()->containsUnexpandedParameterPack())
373 return getAsType()->castAs<PackExpansionType>()->getPattern();
tools/clang/lib/AST/TextNodeDumper.cpp 640 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl());
767 bool isSigned = Node->getType()->isSignedIntegerType();
1296 if (const auto *FPT = D->getType()->getAs<FunctionProtoType>()) {
tools/clang/lib/AST/Type.cpp 126 et->isDependentType() || (sz && sz->isValueDependent()) ||
128 et->isInstantiationDependentType() ||
131 (tc == VariableArray || et->isVariablyModifiedType()),
132 et->containsUnexpandedParameterPack() ||
225 ElementType->isVariablyModifiedType(),
226 ElementType->containsUnexpandedParameterPack() ||
249 ElementType->isVariablyModifiedType(),
250 (ElementType->containsUnexpandedParameterPack() ||
268 PointeeType->isVariablyModifiedType(),
269 (PointeeType->containsUnexpandedParameterPack() ||
289 : Type(tc, canonType, vecType->isDependentType(),
290 vecType->isInstantiationDependentType(),
291 vecType->isVariablyModifiedType(),
292 vecType->containsUnexpandedParameterPack()),
430 while (const auto *PT = T->getAs<ParenType>())
523 return PT->getPointeeType()->isVoidType();
535 return CT->getElementType()->isFloatingType();
552 if (Complex->getElementType()->isIntegerType())
634 ->getAs<ObjCObjectType>();
658 : Type(ObjCTypeParam, can, can->isDependentType(),
659 can->isInstantiationDependentType(),
660 can->isVariablyModifiedType(),
670 : Type(ObjCObject, Canonical, Base->isDependentType(),
671 Base->isInstantiationDependentType(),
672 Base->isVariablyModifiedType(),
673 Base->containsUnexpandedParameterPack()),
685 if (typeArg->isDependentType())
687 else if (typeArg->isInstantiationDependentType())
690 if (typeArg->containsUnexpandedParameterPack())
704 if (const auto objcObject = getBaseType()->getAs<ObjCObjectType>()) {
722 if (const auto objcObject = getBaseType()->getAs<ObjCObjectType>()) {
739 if (const auto objcObject = getBaseType()->getAs<ObjCObjectType>()) {
775 return ctx.getObjCObjectPointerType(obj)->castAs<ObjCObjectPointerType>();
1223 typeParam->getUnderlyingType()->castAs<ObjCObjectPointerType>();
1367 newEquivType->getAs<ObjCObjectPointerType>();
1370 : newEquivType->getAs<ObjCObjectType>();
1423 if (auto subs = objectType->getObjCSubstitutions(dc))
1486 ->castAs<ObjCObjectType>();
1510 objectType = superType->castAs<ObjCObjectType>();
1564 superClassType->castAs<ObjCObjectType>(), true);
1579 superClassType->castAs<ObjCObjectType>(), true);
1590 unspecializedSuper->castAs<ObjCObjectType>(),
1601 ->castAs<ObjCObjectType>(),
1608 ->castAs<ObjCInterfaceType>();
1682 if (const auto *RT = PointeeType->getAs<RecordType>())
1818 return VT->getElementType()->isIntegerType();
1937 return ET->getDecl()->getIntegerType()->isSignedIntegerType();
1951 return ET->getDecl()->getIntegerType()->isSignedIntegerType();
1959 return VT->getElementType()->isSignedIntegerOrEnumerationType();
1977 return ET->getDecl()->getIntegerType()->isUnsignedIntegerType();
1991 return ET->getDecl()->getIntegerType()->isUnsignedIntegerType();
1999 return VT->getElementType()->isUnsignedIntegerOrEnumerationType();
2009 return CT->getElementType()->isFloatingType();
2015 return VT->getElementType()->isFloatingType();
2073 if (CT->getElementType()->isRealFloatingType())
2118 switch (CanonicalType->getTypeClass()) {
2144 ->isIncompleteType(Def);
2172 ->isIncompleteType(Def);
2199 if ((*this)->isIncompleteArrayType())
2202 if ((*this)->isIncompleteType())
2209 switch (CanonicalType->getTypeClass()) {
2247 if ((*this)->isArrayType())
2252 if ((*this)->isIncompleteType())
2259 if (CanonicalType->isDependentType())
2268 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
2268 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
2270 if (const auto *RT = CanonicalType->getAs<RecordType>()) {
2289 if ((*this)->isArrayType())
2301 if (CanonicalType->isDependentType())
2306 if (CanonicalType->isIncompleteType())
2310 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
2310 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
2313 if (const auto *RT = CanonicalType->getAs<RecordType>()) {
2437 return AT->getValueType()->isLiteralType(Ctx);
2958 : FunctionType(FunctionProto, result, canonical, result->isDependentType(),
2959 result->isInstantiationDependentType(),
2960 result->isVariablyModifiedType(),
2961 result->containsUnexpandedParameterPack(), epi.ExtInfo) {
2980 if (params[i]->isDependentType())
2982 else if (params[i]->isInstantiationDependentType())
2985 if (params[i]->containsUnexpandedParameterPack())
3001 if (ExceptionType->isInstantiationDependentType())
3004 if (ExceptionType->containsUnexpandedParameterPack())
3050 } else if (getCanonicalTypeInternal()->isDependentType()) {
3077 if (ET->isDependentType() || ET->getAs<PackExpansionType>())
3077 if (ET->isDependentType() || ET->getAs<PackExpansionType>())
3086 if (ET->isInstantiationDependentType())
3113 if (!getExceptionType(I)->getAs<PackExpansionType>())
3211 E->getType()->isVariablyModifiedType(),
3237 E->getType()->isVariablyModifiedType(),
3262 : Type(UnaryTransform, CanonicalType, BaseType->isDependentType(),
3263 BaseType->isInstantiationDependentType(),
3264 BaseType->isVariablyModifiedType(),
3265 BaseType->containsUnexpandedParameterPack()),
3309 if (const auto *FieldRecTy = FieldTy->getAs<RecordType>()) {
3441 Canon.isNull()? true : Canon->isDependentType(),
3442 Canon.isNull()? true : Canon->isInstantiationDependentType(),
3468 Arg.getAsType()->isVariablyModifiedType())
3823 while (const auto *AT = Type->getAs<AttributedType>()) {
3837 switch (type->getTypeClass()) {
4063 return OPT->getPointeeType()->isObjCIndirectLifetimeType();
4065 return Ref->getPointeeType()->isObjCIndirectLifetimeType();
4067 return MemPtr->getPointeeType()->isObjCIndirectLifetimeType();
4093 return Pointee->isVoidType() || Pointee->isRecordType();
4093 return Pointee->isVoidType() || Pointee->isRecordType();
4100 return ptr->getPointeeType()->hasSizedVLAType();
4102 return ref->getPointeeType()->hasSizedVLAType();
4108 return arr->getElementType()->hasSizedVLAType();
4128 type->getBaseElementTypeUnsafe()->getAs<RecordType>()) {
tools/clang/lib/AST/TypePrinter.cpp 201 TC = AT->desugar()->getTypeClass();
203 TC = Subst->getReplacementType()->getTypeClass();
407 if (auto *Ref = T->getAs<ReferenceType>())
1472 !T->getEquivalentType()->castAs<FunctionType>()
1539 while (!t->isFunctionType())
1540 t = t->getPointeeType();
1541 OS << (t->castAs<FunctionType>()->getCallConv() == CC_AAPCS ?
tools/clang/lib/AST/VTTBuilder.cpp 68 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
94 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
158 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
tools/clang/lib/AST/VTableBuilder.cpp 233 VirtualBase = VBaseType->getAsCXXRecordDecl();
245 const CXXRecordDecl *Base = Element.Base->getType()->getAsCXXRecordDecl();
273 const FunctionType *BaseFT = BaseMD->getType()->getAs<FunctionType>();
274 const FunctionType *DerivedFT = DerivedMD->getType()->getAs<FunctionType>();
347 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
383 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
724 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
745 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
1737 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
1811 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
1840 const CXXRecordDecl *BaseDecl = B.getType()->getAsCXXRecordDecl();
2301 RD->vbases_begin()->getType()->getAsCXXRecordDecl();
2649 return Bases.count(Specifier->getType()->getAsCXXRecordDecl());
2672 *CurRD = CurTy->getAsCXXRecordDecl();
2887 if (B.isVirtual() && B.getType()->getAsCXXRecordDecl() == Base)
3262 const CXXRecordDecl *Base = B.getType()->getAsCXXRecordDecl();
3315 VBasesSeen.insert(VB.getType()->getAsCXXRecordDecl());
3391 const CXXRecordDecl *Base = BS.getType()->getAsCXXRecordDecl();
3438 return BS.getType()->getAsCXXRecordDecl() == Base;
3692 const CXXRecordDecl *CurVBase = VB.getType()->getAsCXXRecordDecl();
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp 837 TemplateType->getAliasedType()->getAs<TemplateSpecializationType>();
tools/clang/lib/Analysis/BodyFarm.cpp 37 const BlockPointerType *BPT = Ty->getAs<BlockPointerType>();
44 BPT->getPointeeType()->getAs<FunctionProtoType>();
45 return FT && FT->getReturnType()->isVoidType() && FT->getNumParams() == 0;
256 if (Ty->isRValueReferenceType()) {
259 } else if (Ty->isLValueReferenceType() &&
260 Call->getType()->isFunctionType()) {
263 } else if (Ty->isLValueReferenceType()
264 && Call->getType()->isPointerType()
265 && Call->getType()->getPointeeType()->isFunctionType()){
265 && Call->getType()->getPointeeType()->isFunctionType()){
329 if (!Callback->getType()->isReferenceType()) {
333 if (!Flag->getType()->isReferenceType()) {
341 CXXRecordDecl *CallbackRecordDecl = CallbackType->getAsCXXRecordDecl();
343 auto *FlagRecordDecl = FlagType->getAsRecordDecl();
387 ->getAs<FunctionProtoType>();
388 } else if (!CallbackType->getPointeeType().isNull()) {
390 CallbackType->getPointeeType()->getAs<FunctionProtoType>();
390 CallbackType->getPointeeType()->getAs<FunctionProtoType>();
392 CallbackFunctionType = CallbackType->getAs<FunctionProtoType>();
422 if (!CallbackFunctionType->getParamType(ParamIdx - 2)->isReferenceType()) {
485 const PointerType *PredicatePtrTy = PredicateQPtrTy->getAs<PointerType>();
489 if (!PredicateTy->isIntegerType())
604 bool isBoolean = ResultTy->isBooleanType();
605 if (!isBoolean && !ResultTy->isIntegralType(C))
618 const PointerType *PT = TheValueTy->getAs<PointerType>();
775 if (!IVar->getType()->isObjCLifetimeType() &&
794 if (!Prop->getType()->isReferenceType())
tools/clang/lib/Analysis/CFG.cpp 729 if (Arg->getType()->getAsCXXRecordDecl() && !Arg->isGLValue())
941 bool IntLarger = IntLiteral->getType()->isUnsignedIntegerType() ||
1443 assert(!CO->getType()->getAsCXXRecordDecl() || CO->isGLValue() ||
1860 if (Ty->isReferenceType()) {
1865 if (Ty->getAsCXXRecordDecl()->isAnyDestructorNoReturn())
1889 const CXXRecordDecl *CD = VI.getType()->getAsCXXRecordDecl();
1899 const CXXRecordDecl *CD = BI.getType()->getAsCXXRecordDecl();
1917 if (const CXXRecordDecl *CD = QT->getAsCXXRecordDecl())
1977 if (QT->isReferenceType()) {
2009 if (const CXXRecordDecl *CD = QT->getAsCXXRecordDecl())
2551 if (Ty->isFunctionPointerType() || Ty->isBlockPointerType())
2551 if (Ty->isFunctionPointerType() || Ty->isBlockPointerType())
2552 Ty = Ty->getPointeeType();
2554 const FunctionType *FT = Ty->getAs<FunctionType>();
4526 CXXRecordDecl *RD = Context->getBaseElementType(DTy)->getAsCXXRecordDecl();
4970 if (ty->isReferenceType()) {
4984 const CXXRecordDecl *classDecl = ty->getAsCXXRecordDecl();
4993 astContext.getBaseElementType(DTy)->getAsCXXRecordDecl();
5303 OS << I->getTypeSourceInfo()->getType()->getAsCXXRecordDecl()->getName();
5480 if (T->isReferenceType())
5534 OS << "~" << BS->getType()->getAsCXXRecordDecl()->getName() << "()";
5541 const Type *T = FD->getType()->getBaseElementTypeUnsafe();
tools/clang/lib/Analysis/CocoaConventions.cpp 27 while (const TypedefType *TD = RetTy->getAs<TypedefType>()) {
41 const PointerType* PT = RetTy->castAs<PointerType>();
42 if (!PT || !PT->getPointeeType().getUnqualifiedType()->isVoidType())
66 if (!Ty->isObjCObjectPointerType())
69 const ObjCObjectPointerType *PT = Ty->getAs<ObjCObjectPointerType>();
tools/clang/lib/Analysis/ConstructionContext.cpp 54 if (!BTE && !(MTE->getType().getCanonicalType()->getAsCXXRecordDecl()
112 ->getAsCXXRecordDecl()->hasTrivialDestructor());
122 ->getAsCXXRecordDecl()->hasTrivialDestructor());
155 ->getAsCXXRecordDecl()->hasTrivialDestructor());
193 assert(BTE->getType().getCanonicalType()->getAsCXXRecordDecl()
tools/clang/lib/Analysis/Consumed.cpp 144 if (QT->isPointerType() || QT->isReferenceType())
144 if (QT->isPointerType() || QT->isReferenceType())
147 if (const CXXRecordDecl *RD = QT->getAsCXXRecordDecl())
154 if (QT->isPointerType() || QT->isReferenceType())
154 if (QT->isPointerType() || QT->isReferenceType())
157 if (const CXXRecordDecl *RD = QT->getAsCXXRecordDecl())
164 if (const CXXRecordDecl *RD = QT->getPointeeCXXRecordDecl())
182 return ParamType->isRValueReferenceType();
190 return ParamType->isPointerType() || ParamType->isReferenceType();
190 return ParamType->isPointerType() || ParamType->isReferenceType();
197 QT->getAsCXXRecordDecl()->getAttr<ConsumableAttr>();
652 (!ParamType->getPointeeType().isConstQualified() ||
687 if (RetType->isReferenceType())
688 RetType = RetType->getPointeeType();
774 QualType ThisType = Constructor->getThisType()->getPointeeType();
866 isConsumableType(ParamType->getPointeeType()))
867 ParamState = mapConsumableAttrState(ParamType->getPointeeType());
868 else if (ParamType->isReferenceType() &&
869 isConsumableType(ParamType->getPointeeType()))
1202 ReturnType = Constructor->getThisType()->getPointeeType();
1207 const CXXRecordDecl *RD = ReturnType->getAsCXXRecordDecl();
1406 D->getCallResultType()->isVoidType())
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp 411 if (const auto *T = ParmType->getAs<PackExpansionType>())
416 if (const auto *RefType = ParmType->getAs<RValueReferenceType>()) {
418 RefType->getPointeeType()->getAs<TemplateTypeParmType>()) {
tools/clang/lib/Analysis/LiveVariables.cpp 368 return VD && !VD->getType()->isReferenceType() &&
385 Killed = !BD->getType()->isReferenceType();
464 if (subEx->getType()->isVariableArrayType()) {
tools/clang/lib/Analysis/RetainSummaryManager.cpp 165 return isOSObjectSubclass(QT->getPointeeCXXRecordDecl());
208 QualType PT = Param->getType()->getPointeeType();
210 if (CXXRecordDecl *RD = PT->getAsCXXRecordDecl())
221 const auto *RD = QT->getAsCXXRecordDecl();
238 if (RetTy->isPointerType()) {
239 const CXXRecordDecl *PD = RetTy->getPointeeType()->getAsCXXRecordDecl();
239 const CXXRecordDecl *PD = RetTy->getPointeeType()->getAsCXXRecordDecl();
300 return RetTy->isObjCIdType() ? getUnarySummary(FT, DoNothing)
402 if (RetTy->isPointerType()) {
507 const auto *FT = FD->getType()->castAs<FunctionType>();
724 if (ResultTy->isObjCIdType()) {
727 } else if (ResultTy->isPointerType()) {
934 bool ShouldSplit = !QT.isNull() && !QT->isVoidType();
1129 if (const auto *PT = ReceiverType->getAs<ObjCObjectPointerType>())
tools/clang/lib/Analysis/ThreadSafety.cpp 1230 if (const auto *RT = VDT->getAs<RecordType>()) {
1234 } else if (const auto *TT = VDT->getAs<TypedefType>()) {
1238 } else if (VDT->isPointerType() || VDT->isReferenceType())
1238 } else if (VDT->isPointerType() || VDT->isReferenceType())
1239 return ClassifyDiagnostic(VDT->getPointeeType());
1708 if (VD && VD->isLocalVarDecl() && VD->getType()->isReferenceType()) {
2027 if (Qt->isReferenceType())
2159 auto *RD = E->getType()->getAsCXXRecordDecl();
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp 325 if (VD && VD->getType()->isAnyPointerType())
tools/clang/lib/Analysis/UninitializedValues.cpp 48 return ty->isScalarType() || ty->isVectorType() || ty->isRecordType();
48 return ty->isScalarType() || ty->isVectorType() || ty->isRecordType();
48 return ty->isScalarType() || ty->isVectorType() || ty->isRecordType();
374 if (VD->getType()->isRecordType())
465 return QT->isAnyPointerType() && QT->getPointeeType().isConstQualified();
465 return QT->isAnyPointerType() && QT->getPointeeType().isConstQualified();
472 if (!CE->getArg(0)->getType()->isRecordType())
499 if (CSE->getType()->isVoidType()) {
tools/clang/lib/CodeGen/CGAtomic.cpp 50 if (auto *ATy = AtomicTy->getAs<AtomicType>())
111 ValueTy = lvalue.getType()->castAs<VectorType>()->getElementType();
593 Op = E->getValueType()->isSignedIntegerType() ? llvm::AtomicRMWInst::Min
599 Op = E->getValueType()->isSignedIntegerType() ? llvm::AtomicRMWInst::Max
747 QualType AtomicTy = E->getPtr()->getType()->getPointeeType();
749 if (const AtomicType *AT = AtomicTy->getAs<AtomicType>())
827 if (MemTy->isPointerType()) {
835 getContext().getTypeSizeInChars(MemTy->getPointeeType());
890 else if (!RValTy->isVoidType())
973 auto AS = PT->castAs<PointerType>()->getPointeeType().getAddressSpace();
990 MemTy->isPointerType() ? getContext().getIntPtrType() : MemTy;
1117 LibCallName = E->getValueType()->isSignedIntegerType()
1125 LibCallName = E->getValueType()->isSignedIntegerType()
1197 if (RValTy->isVoidType())
1248 if (RValTy->isVoidType())
1320 if (RValTy->isVoidType())
1476 if (LV.getType()->isAtomicType()) {
1900 if (lvalue.getType()->isAtomicType()) {
2025 if (!init->getType()->isAtomicType()) {
tools/clang/lib/CodeGen/CGBlocks.cpp 389 type->getBaseElementTypeUnsafe()->getAs<RecordType>();
615 } else if (VT->isObjCRetainableType()) {
618 if (VT->isObjCInertUnsafeUnretainedType()) {
630 if (!VT->getAsCXXRecordDecl()->isExternallyVisible())
641 if (const CXXRecordDecl *record = VT->getAsCXXRecordDecl()) {
1114 } else if (type->isReferenceType()) {
1132 type->isBlockPointerType()) {
1256 const auto *BPT = E->getCallee()->getType()->castAs<BlockPointerType>();
1275 EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
1295 EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
1301 const FunctionType *FuncTy = FnType->castAs<FunctionType>();
1343 capture.fieldType()->isReferenceType()) &&
1346 if (capture.fieldType()->isReferenceType())
1706 bool isBlockPointer = T->isBlockPointerType();
1727 if (!T->isObjCRetainableType())
1802 if (const auto *RD = T->getAsCXXRecordDecl())
1804 return DD->getType()->castAs<FunctionProtoType>()->canThrow();
2136 if (T->isBlockPointerType())
2168 if (T->isObjCRetainableType() && !T.getQualifiers().hasObjCLifetime() &&
2622 if (const CXXRecordDecl *record = type->getAsCXXRecordDecl()) {
2640 if (!type->isObjCRetainableType()) return nullptr;
2664 if (type->isBlockPointerType()) {
2679 if (type->isBlockPointerType()) {
2682 type->isObjCObjectPointerType()) {
2878 if (!type->isObjCObjectPointerType() && !type->isBlockPointerType())
2878 if (!type->isObjCObjectPointerType() && !type->isBlockPointerType())
tools/clang/lib/CodeGen/CGBuiltin.cpp 121 assert(E->getArg(0)->getType()->isPointerType());
123 E->getArg(0)->getType()->getPointeeType()));
182 assert(E->getArg(0)->getType()->isPointerType());
184 E->getArg(0)->getType()->getPointeeType()));
271 assert(E->getArg(0)->getType()->isPointerType());
273 E->getType(), E->getArg(0)->getType()->getPointeeType()));
297 assert(E->getArg(0)->getType()->isPointerType());
310 assert(E->getArg(0)->getType()->isPointerType());
324 QualType ElTy = E->getArg(0)->getType()->getPointeeType();
338 QualType ElTy = E->getArg(0)->getType()->getPointeeType();
496 assert(Type->isIntegerType() && "Given type is not an integer.");
497 unsigned Width = Type->isBooleanType() ? 1 : context.getTypeInfo(Type).Width;
498 bool Signed = Type->isSignedIntegerType();
1253 if (TheExpr->getType()->isObjCRetainableType()) {
1390 ResultArg->getType()->getPointeeType().isVolatileQualified();
1400 RecordDecl *RD = RType->castAs<RecordType>()->getDecl()->getDefinition();
1452 if (CanonicalType->isRecordType()) {
1486 const auto *Record = Ty->getAsCXXRecordDecl();
1856 QualType Arg0Type = Arg0->getType()->getPointeeType();
2108 if (!ArgType->isIntegralOrEnumerationType() && !ArgType->isFloatingType() &&
2108 if (!ArgType->isIntegralOrEnumerationType() && !ArgType->isFloatingType() &&
2109 !ArgType->isObjCObjectPointerType() && !ArgType->isBlockPointerType())
2109 !ArgType->isObjCObjectPointerType() && !ArgType->isBlockPointerType())
2120 if (ArgType->isObjCObjectPointerType()) {
2692 QualType ArgTy = Arg->getType()->getPointeeType();
2841 QualType ElTy = E->getArg(0)->getType()->getPointeeType();
2897 PtrTy->castAs<PointerType>()->getPointeeType().isVolatileQualified();
2980 PtrTy->castAs<PointerType>()->getPointeeType().isVolatileQualified();
3219 ResultArg->getType()->castAs<PointerType>()->getPointeeType();
3294 ResultArg->getType()->getPointeeType().isVolatileQualified();
3373 E->getCallee()->getType()->castAs<FunctionProtoType>(), E, false);
3376 E->getCallee()->getType()->castAs<FunctionProtoType>(), E, true);
3695 const auto *PipeTy = E->getArg(0)->getType()->castAs<PipeType>();
3725 E->getType()->getPointeeType().getAddressSpace()));
3815 if (E->getArg(3)->getType()->isBlockPointerType()) {
3862 EventWaitList = E->getArg(4)->getType()->isArrayType()
4031 if (Arg0Ty->isArrayType())
4069 if (Arg1Ty->isArrayType())
4200 if (!BuiltinRetType->isVoidType())
tools/clang/lib/CodeGen/CGCXX.cpp 83 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
107 if (BaseD->getType()->castAs<FunctionType>()->getCallConv() !=
108 D->getType()->castAs<FunctionType>()->getCallConv())
283 const RecordType *RT = T->getAs<RecordType>();
tools/clang/lib/CodeGen/CGCXXABI.cpp 48 MPT->getPointeeType()->getAs<FunctionProtoType>();
244 derivedType->castAs<MemberPointerType>()->getClass()->getAsCXXRecordDecl();
tools/clang/lib/CodeGen/CGCall.cpp 77 RecTy = Context.getTagDeclType(RD)->getCanonicalTypeInternal();
88 return MD->getType()->getCanonicalTypeUnqualified()
97 return RetTy->getCanonicalTypeUnqualified().getUnqualifiedType();
438 CanQualType FTy = FD->getType()->getCanonicalTypeUnqualified();
909 if (const RecordType *RT = Ty->getAs<RecordType>()) {
953 if (const ComplexType *CT = Ty->getAs<ComplexType>()) {
1033 GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1,
1076 GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1,
1508 if (const BuiltinType *BT = ResultType->getAs<BuiltinType>()) {
1525 if (const ComplexType *CT = ResultType->getAs<ComplexType>()) {
1526 if (const BuiltinType *BT = CT->getElementType()->getAs<BuiltinType>()) {
1671 const FunctionProtoType *FPT = MD->getType()->getAs<FunctionProtoType>();
1855 getContext(), FuncAttrs, Fn->getType()->getAs<FunctionProtoType>());
1989 if (const auto *RefTy = RetTy->getAs<ReferenceType>()) {
1991 if (!PTy->isIncompleteType() && PTy->isConstantSizeType())
1991 if (!PTy->isIncompleteType() && PTy->isConstantSizeType())
2099 if (const auto *RefTy = ParamType->getAs<ReferenceType>()) {
2101 if (!PTy->isIncompleteType() && PTy->isConstantSizeType())
2101 if (!PTy->isIncompleteType() && PTy->isConstantSizeType())
2116 if (!hasUsedSRet && RetTy->isVoidType()) {
2125 auto PTy = ParamType->getPointeeType();
2126 if (!PTy->isIncompleteType() && PTy->isConstantSizeType()) {
2126 if (!PTy->isIncompleteType() && PTy->isConstantSizeType()) {
2193 if (!ArgType->isAnyPointerType() && !ArgType->isBlockPointerType())
2193 if (!ArgType->isAnyPointerType() && !ArgType->isBlockPointerType())
2375 if (!ETy->isIncompleteType() && ETy->isConstantSizeType() &&
2375 if (!ETy->isIncompleteType() && ETy->isConstantSizeType() &&
2422 QualType pointeeTy = Ty->getPointeeType();
2423 assert(pointeeTy->isPointerType());
2910 RT->isObjCRetainableType());
3029 const CXXRecordDecl *RD = type->getAsCXXRecordDecl();
3070 if (type->isReferenceType()) {
3080 type->isObjCRetainableType()) {
3095 type->castAs<RecordType>()->getDecl()->isParamDestroyedInCallee() &&
3220 CRE->getSubExpr()->getType()->castAs<PointerType>()->getPointeeType();
3369 auto Nullability = PVD->getType()->getNullability(getContext());
3505 const CXXDestructorDecl *Dtor = Ty->getAsCXXRecordDecl()->getDestructor();
3566 assert(type->isReferenceType() == E->isGLValue() &&
3580 type->castAs<RecordType>()->getDecl()->isParamDestroyedInCallee()) {
3590 if (const auto *RD = type->getAsCXXRecordDecl())
3633 if (Arg->getType()->isIntegerType() &&
4051 QualType pointeeTy = I->Ty->getPointeeType();
tools/clang/lib/CodeGen/CGClass.cpp 165 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl());
284 (*Start)->getType()->castAs<RecordType>()->getDecl());
745 if (Ctor->getType()->castAs<FunctionProtoType>()->isVariadic())
1056 FieldType->isReferenceType()))
1361 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
1371 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
1387 const RecordType *RT = FieldBaseElementType->getAs<RecordType>();
1821 cast<CXXRecordDecl>(Base.getType()->castAs<RecordType>()->getDecl());
1849 CXXRecordDecl *BaseClassDecl = Base.getType()->getAsCXXRecordDecl();
1873 const RecordType *RT = type->getAsUnionType();
2020 const RecordType *rtype = type->castAs<RecordType>();
2067 const FunctionProtoType *FPT = D->getType()->castAs<FunctionProtoType>();
2262 if (!RetType->isVoidType())
2304 const FunctionProtoType *FPT = D->getType()->castAs<FunctionProtoType>();
2346 assert((*I)->getType()->isPointerType() &&
2446 CXXRecordDecl *ClassDecl = T->getAsCXXRecordDecl();
2537 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
2635 RD->bases_begin()->getType()->getAsCXXRecordDecl());
2676 auto *ClassTy = T->getAs<RecordType>();
2847 callOperator->getType()->castAs<FunctionProtoType>();
2850 if (!resultType->isVoidType() &&
2864 if (!resultType->isVoidType() && returnSlot.isNull()) {
2865 if (getLangOpts().ObjCAutoRefCount && resultType->isObjCRetainableType()) {
2876 const CXXRecordDecl *Lambda = variable->getType()->getAsCXXRecordDecl();
tools/clang/lib/CodeGen/CGCoroutine.cpp 135 CE->getMethodDecl()->getType()->getAs<FunctionProtoType>())
278 if (RV && RV->getType()->isVoidType()) {
302 assert(getCoroutineSuspendExprReturnType(getContext(), E)->isReferenceType() &&
312 assert(getCoroutineSuspendExprReturnType(getContext(), E)->isReferenceType() &&
tools/clang/lib/CodeGen/CGDebugInfo.cpp 1289 if (!type->isIncompleteArrayType()) {
1380 if (name.empty() && !type->isRecordType())
1467 const FunctionProtoType *Func = Method->getType()->getAs<FunctionProtoType>();
1488 const CXXRecordDecl *RD = ThisPtr->getPointeeCXXRecordDecl();
1666 if (Method->getType()->castAs<FunctionProtoType>()->getContainedAutoType())
1706 cast<CXXRecordDecl>(BI.getType()->castAs<RecordType>()->getDecl());
2072 llvm::DIType *Res = CreateTypeDefinition(Ty->castAs<EnumType>());
2147 llvm::DIType *Res = CreateTypeDefinition(Ty->castAs<RecordType>());
2539 if (!FType->isIncompleteArrayType()) {
2639 if (Ty->getElementType()->isIncompleteType())
2738 Ty->getPointeeType()->getAs<FunctionProtoType>();
2813 bool IsSigned = ED->getIntegerType()->isSignedIntegerType();
2857 switch (T->getTypeClass()) {
3005 switch (Ty->getTypeClass()) {
3279 if (T->isIncompleteArrayType()) {
3342 CallingConv CC = FD->getType()->castAs<FunctionType>()->getCallConv();
3476 const auto *FTy = FnType->getAs<FunctionType>();
4411 if (T->isUnionType() && DeclName.empty()) {
4412 const RecordDecl *RD = T->castAs<RecordType>()->getDecl();
4568 FD->getType()->castAs<FunctionProtoType>()->getContainedAutoType())
tools/clang/lib/CodeGen/CGDecl.cpp 155 if (Ty->isVariablyModifiedType())
175 if (D.getType()->isSamplerT())
228 assert(Ty->isConstantSizeType() && "VLAs can't be static");
392 if (D.getType()->isVariablyModifiedType())
724 auto Nullability = LHS.getType()->getNullability(getContext());
1389 if (Ty->isVariablyModifiedType())
1406 } else if (Ty->isConstantSizeType()) {
1415 if (D.getInit() && (Ty->isArrayType() || Ty->isRecordType()) &&
1415 if (D.getInit() && (Ty->isArrayType() || Ty->isRecordType()) &&
1418 getContext().getBaseElementType(Ty)->isObjCObjectPointerType()) &&
1452 if (const RecordType *RecordTy = Ty->getAs<RecordType>()) {
1871 if (type->isReferenceType()) {
1890 if (type->isAtomicType()) {
1934 assert(!type->isArrayType());
1935 CXXDestructorDecl *dtor = type->getAsCXXRecordDecl()->getDestructor();
1960 assert(!type->isArrayType());
2147 assert(!elementType->isArrayType());
2400 Ty->castAs<RecordType>()->getDecl()->isParamDestroyedInCallee()) {
2510 auto Nullability = Ty->getNullability(getContext());
tools/clang/lib/CodeGen/CGDeclCXX.cpp 33 assert(!D.getType()->isReferenceType() &&
105 const CXXRecordDecl *Record = Type->getAsCXXRecordDecl();
204 if (!T->isReferenceType()) {
tools/clang/lib/CodeGen/CGException.cpp 427 if (ThrowType->isObjCObjectPointerType()) {
457 const FunctionProtoType *Proto = FD->getType()->getAs<FunctionProtoType>();
534 const FunctionProtoType *Proto = FD->getType()->getAs<FunctionProtoType>();
578 if (CaughtType->isObjCObjectPointerType())
1803 if (VD->getType()->isVariablyModifiedType()) {
1903 FilterExpr->getType()->isSignedIntegerType());
tools/clang/lib/CodeGen/CGExpr.cpp 166 if (const MemberPointerType *MPT = E->getType()->getAs<MemberPointerType>()) {
173 if (!E->getType()->isAnyComplexType())
320 E->getType()->getBaseElementTypeUnsafe()->getAs<RecordType>()) {
336 if (E->getType()->isArrayType()) {
384 (Ty->isArrayType() || Ty->isRecordType()) &&
384 (Ty->isArrayType() || Ty->isRecordType()) &&
480 if (opaque->getType()->isRecordType()) {
599 if (sanitizePerformTypeCheck() && !E->getType()->isFunctionType()) {
639 CXXRecordDecl *RD = Ty->getAsCXXRecordDecl();
713 !Ty->isIncompleteType()) {
744 if (!Ty->isIncompleteType() && !AlignVal)
861 const ArrayType *AT = E->getType()->castAsArrayTypeUnsafe();
930 if (const VectorType *VT = Base->getType()->getAs<VectorType>()) {
941 const ArrayType *AT = IndexedType->castAsArrayTypeUnsafe();
950 QualType EltTy{Base->getType()->getPointeeOrArrayElementType(), 0};
971 bool IndexSigned = IndexType->isSignedIntegerOrEnumerationType();
1000 QualType ElemTy = E->getType()->castAs<ComplexType>()->getElementType();
1023 if (CGF && E->getType()->isVariablyModifiedType())
1040 assert(E->getType()->isPointerType() ||
1041 E->getType()->isObjCObjectPointerType());
1054 if (auto PtrTy = CE->getSubExpr()->getType()->getAs<PointerType>()) {
1055 if (PtrTy->getPointeeType()->isVoidType())
1086 if (auto PT = E->getType()->getAs<PointerType>())
1112 auto Derived = CE->getSubExpr()->getType()->getPointeeCXXRecordDecl();
1145 if (Ty->isVoidType())
1151 ConvertType(Ty->castAs<ComplexType>()->getElementType());
1259 if (const AtomicType *AT = Ty->getAs<AtomicType>())
1261 if (!Ty->isAnyComplexType())
1385 assert(!type->isReferenceType());
1532 if (Ty->isBooleanType())
1535 if (const EnumType *ET = Ty->getAs<EnumType>())
1536 return ET->getDecl()->getIntegerType()->isBooleanType();
1538 if (const AtomicType *AT = Ty->getAs<AtomicType>())
1547 const EnumType *ET = Ty->getAs<EnumType>();
1597 bool NeedsEnumCheck = HasEnumCheck && Ty->getAs<EnumType>();
1642 if (Ty->isVectorType()) {
1668 if (Ty->isAtomicType() || LValueIsSuitableForInlineAtomic(AtomicLValue)) {
1723 if (Ty->isVectorType()) {
1747 if (Ty->isAtomicType() ||
1794 assert(!LV.getType()->isFunctionType());
1860 const VectorType *ExprVT = LV.getType()->getAs<VectorType>();
1883 const VectorType *ExprVT = LV.getType()->getAs<VectorType>();
1903 assert((LV.getType()->isIntegerType() || LV.getType()->isPointerType()) &&
1903 assert((LV.getType()->isIntegerType() || LV.getType()->isPointerType()) &&
2101 if (const VectorType *VTy = Dst.getType()->getAs<VectorType>()) {
2163 assert((Dst.getType()->isIntegerType() || Dst.getType()->isPointerType()) &&
2163 assert((Dst.getType()->isIntegerType() || Dst.getType()->isPointerType()) &&
2195 if (IsMemberAccess && ExpTy->isPointerType()) {
2199 ExpTy = ExpTy->castAs<PointerType>()->getPointeeType();
2200 if (ExpTy->isRecordType()) {
2208 LV.setObjCArray(E->getType()->isArrayType());
2219 LV.setObjCArray(E->getType()->isArrayType());
2234 if (ExpTy->isPointerType())
2235 ExpTy = ExpTy->castAs<PointerType>()->getPointeeType();
2236 if (ExpTy->isRecordType())
2279 LV.setObjCArray(E->getType()->isArrayType());
2316 return CGF.EmitLoadOfPointer(Addr, PtrTy->castAs<PointerType>());
2327 CharUnits Align = getNaturalTypeAlignment(RefLVal.getType()->getPointeeType(),
2338 return MakeAddrLValue(PointeeAddr, RefLVal.getType()->getPointeeType(),
2388 LValue LV = VD->getType()->isReferenceType() ?
2406 FD->getType()->getAs<FunctionProtoType>()) {
2532 (VD->getType()->isReferenceType() ||
2540 if (!VD->getType()->isReferenceType()) {
2571 if (VD->getType()->isReferenceType())
2644 LValue LV = VD->getType()->isReferenceType() ?
2651 !VD->getType()->isReferenceType() &&
2687 QualType T = E->getSubExpr()->getType()->getPointeeType();
2716 assert(E->getSubExpr()->getType()->isArithmeticType());
2720 QualType T = ExprTy->castAs<ComplexType>()->getElementType();
2736 if (E->getType()->isAnyComplexType())
2799 if (T->isIntegerType()) {
2802 (T->isSignedIntegerType() ? 1 : 0);
2803 } else if (T->isFloatingType()) {
3317 assert(E->getType()->isArrayType() &&
3331 if (!E->getType()->isVariableArrayType()) {
3342 QualType EltType = E->getType()->castAsArrayTypeUnsafe()->getElementType();
3359 if (SubExpr->getType()->isVariableArrayType())
3464 bool IdxSigned = IdxTy->isSignedIntegerOrEnumerationType();
3480 if (E->getBase()->getType()->isVectorType() &&
3498 QualType EltType = LV.getType()->castAs<VectorType>()->getElementType();
3533 } else if (const ObjCObjectType *OIT = E->getType()->getAs<ObjCObjectType>()){
3568 assert(Array->getType()->isArrayType() &&
3615 if (BaseTy->isArrayType()) {
3626 if (!BaseTy->isVariableArrayType()) {
3653 ResultExprTy = BaseTy->getPointeeType();
3662 LowerBound->getType()->hasSignedIntegerRepresentation());
3694 LowerBound->getType()->hasSignedIntegerRepresentation())
3700 Length->getType()->hasSignedIntegerRepresentation())
3714 QualType ArrayTy = BaseTy->isPointerType()
3728 Length->getType()->hasSignedIntegerRepresentation());
3770 assert(Array->getType()->isArrayType() &&
3811 const PointerType *PT = E->getBase()->getType()->getAs<PointerType>();
3817 assert(E->getBase()->getType()->isVectorType());
3821 assert(E->getBase()->getType()->isVectorType() &&
3870 QualType PtrTy = BaseExpr->getType()->getPointeeType();
4031 rec->hasAttr<MayAliasAttr>() || FieldType->isVectorType()) {
4093 if (FieldType->isReferenceType())
4106 if (FieldType->isReferenceType()) {
4115 FieldType = FieldType->getPointeeType();
4143 if (!FieldType->isReferenceType())
4167 if (E->getType()->isVariablyModifiedType())
4366 E->getSubExpr()->getType()->getAs<RecordType>();
4386 const RecordType *DerivedClassTy = E->getType()->getAs<RecordType>();
4497 if (FD->getType()->isReferenceType())
4511 if (E->getCallee()->getType()->isBlockPointerType())
4588 if (auto ptrType = E->getType()->getAs<PointerType>()) {
4595 assert(functionType->isFunctionType());
4602 CGCalleeInfo calleeInfo(functionType->getAs<FunctionProtoType>(), GD);
4664 assert(E->getCallReturnType(getContext())->isReferenceType() &&
4677 assert(E->getType()->getAsCXXRecordDecl()->hasTrivialDestructor()
4715 assert(E->getMethodDecl()->getReturnType()->isReferenceType() &&
4749 ObjectTy = BaseExpr->getType()->getPointeeType();
4777 assert(CalleeType->isFunctionPointerType() &&
4969 = E->getRHS()->getType()->getAs<MemberPointerType>();
tools/clang/lib/CodeGen/CGExprAgg.cpp 222 if (LV.getType()->isAtomicType() || CGF.LValueIsSuitableForInlineAtomic(LV)) {
233 const RecordType *RecordTy = T->getAs<RecordType>();
396 RecordDecl *Record = E->getType()->castAs<RecordType>()->getDecl();
404 if (!Field->getType()->isPointerType() ||
405 !Ctx.hasSameType(Field->getType()->getPointeeType(),
428 if (Field->getType()->isPointerType() &&
429 Ctx.hasSameType(Field->getType()->getPointeeType(),
752 assert(atomicType->isAtomicType());
754 atomicType->castAs<AtomicType>()->getValueType()));
889 if (E->getCallReturnType(CGF.getContext())->isReferenceType()) {
926 if (const ComplexType *CT = ArgTy->getAs<ComplexType>())
929 if (const auto *MPT = ArgTy->getAs<MemberPointerType>()) {
957 if (ArgTy->hasFloatingRepresentation())
960 if (ArgTy->isIntegralOrEnumerationType() || ArgTy->isPointerType()) {
960 if (ArgTy->isIntegralOrEnumerationType() || ArgTy->isPointerType()) {
962 ArgTy->hasSignedIntegerRepresentation() ? InstInfo.SCmp : InstInfo.UCmp;
985 if (ArgTy->isVectorType())
988 if (!ArgTy->isIntegralOrEnumerationType() && !ArgTy->isRealFloatingType() &&
988 if (!ArgTy->isIntegralOrEnumerationType() && !ArgTy->isRealFloatingType() &&
989 !ArgTy->isNullPtrType() && !ArgTy->isPointerType() &&
989 !ArgTy->isNullPtrType() && !ArgTy->isPointerType() &&
990 !ArgTy->isMemberPointerType() && !ArgTy->isAnyComplexType()) {
990 !ArgTy->isMemberPointerType() && !ArgTy->isAnyComplexType()) {
993 bool IsComplex = ArgTy->isAnyComplexType();
1023 if (ArgTy->isNullPtrType()) {
1159 if (LHS.getType()->isAtomicType() ||
1178 if (LHS.getType()->isAtomicType() ||
1401 } else if (type->isReferenceType()) {
1482 if (E->getType()->isArrayType()) {
1488 assert(E->getType()->isRecordType() && "Only support structs/unions here!");
1495 RecordDecl *record = E->getType()->castAs<RecordType>()->getDecl();
1517 auto *BaseRD = Base.getType()->getAsCXXRecordDecl();
1574 if (field->getType()->isIncompleteArrayType())
1763 if (const RecordType *RT = E->getType()->getAs<RecordType>()) {
1776 if (Field->getType()->isIncompleteArrayType() ||
1785 if (Field->getType()->isReferenceType())
1816 .getBaseElementType(E->getType())->getAs<RecordType>()) {
1876 if (!FD->hasAttr<NoUniqueAddressAttr>() || !FD->getType()->isRecordType())
1917 assert(!Ty->isAnyComplexType() && "Shouldn't happen for complex");
1923 if (const RecordType *RT = Ty->getAs<RecordType>()) {
1995 } else if (const RecordType *RecordTy = Ty->getAs<RecordType>()) {
2002 } else if (Ty->isArrayType()) {
2004 if (const RecordType *RecordTy = BaseType->getAs<RecordType>()) {
tools/clang/lib/CodeGen/CGExprCXX.cpp 55 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
83 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
99 assert(ThisTy->getAsCXXRecordDecl() == DtorDecl->getParent() &&
132 const PointerType *PTy = BaseExpr->getType()->getAs<PointerType>();
171 if (const PointerType *PTy = T->getAs<PointerType>())
173 const RecordType *Ty = T->castAs<RecordType>();
251 EmitCallArgs(*RtlArgs, MD->getType()->castAs<FunctionProtoType>(),
364 IsArrow ? Base->getType()->getPointeeType() : Base->getType();
421 const auto *MPT = MemFnExpr->getType()->castAs<MemberPointerType>();
422 const auto *FPT = MPT->getPointeeType()->castAs<FunctionProtoType>();
710 = (*e->getArraySize())->getType()->isSignedIntegerOrEnumerationType();
1032 cast<ConstantArrayType>(ILE->getType()->getAsArrayTypeUnsafe())
1057 AllocType->getAsArrayTypeUnsafe())) {
1106 while (Init && Init->getType()->isConstantArrayType()) {
1187 if (const RecordType *RType = ILE->getType()->getAs<RecordType>()) {
1341 const FunctionProtoType *FPT = FD->getType()->castAs<FunctionProtoType>();
1355 if (AI != AE && (*AI)->isIntegerType()) {
1360 if (AI != AE && (*AI)->isAlignValT()) {
1416 OperatorDelete->getType()->getAs<FunctionProtoType>();
1547 cast<ConstantArrayType>(ILE->getType()->getAsArrayTypeUnsafe())
1587 allocator->getType()->castAs<FunctionProtoType>();
1606 AlignValT->castAs<EnumType>()->getDecl()->getIntegerType(),
1759 DeleteFD->getType()->getAs<FunctionProtoType>();
1848 auto *Dtor = ElementType->getAsCXXRecordDecl()->getDestructor();
1876 if (const RecordType *RT = ElementType->getAs<RecordType>()) {
2040 if (DeleteTy->isConstantArrayType()) {
2170 if (DestTy->isPointerType())
2192 const PointerType *DestPTy = DestTy->getAs<PointerType>();
2198 isDynamicCastToVoid = DestPTy->getPointeeType()->isVoidType();
2199 SrcRecordTy = SrcTy->castAs<PointerType>()->getPointeeType();
2204 DestRecordTy = DestTy->castAs<ReferenceType>()->getPointeeType();
2219 assert(SrcRecordTy->isRecordType() && "source type must be a record type!");
2225 CGM.getCXXABI().shouldDynamicCastCallBeNullChecked(SrcTy->isPointerType(),
2246 assert(DestRecordTy->isRecordType() &&
tools/clang/lib/CodeGen/CGExprComplex.cpp 233 assert(E->getType()->isAnyComplexType() && "Expected complex type!");
234 QualType Elem = E->getType()->castAs<ComplexType>()->getElementType();
239 assert(E->getType()->isAnyComplexType() && "Expected complex type!");
240 QualType Elem = E->getType()->castAs<ComplexType>()->getElementType();
348 if (lvalue.getType()->isAtomicType())
373 if (lvalue.getType()->isAtomicType() ||
407 if (E->getCallReturnType(CGF.getContext())->isReferenceType())
427 SrcType = SrcType->castAs<ComplexType>()->getElementType();
428 DestType = DestType->castAs<ComplexType>()->getElementType();
443 DestType = DestType->castAs<ComplexType>()->getElementType();
619 Op.Ty->castAs<ComplexType>()->getElementType());
621 Op.Ty->castAs<ComplexType>()->getElementType());
623 Op.Ty->castAs<ComplexType>()->getElementType());
625 Op.Ty->castAs<ComplexType>()->getElementType());
637 4, Op.Ty->castAs<ComplexType>()->getElementType());
645 CGCallee Callee = CGCallee::forDirect(Func, FQTy->getAs<FunctionProtoType>());
854 if (Op.Ty->castAs<ComplexType>()->getElementType()->isUnsignedIntegerType()) {
854 if (Op.Ty->castAs<ComplexType>()->getElementType()->isUnsignedIntegerType()) {
871 if (E->getLHS()->getType()->isRealFloatingType())
875 if (E->getRHS()->getType()->isRealFloatingType())
892 if (const AtomicType *AT = LHSTy->getAs<AtomicType>())
904 if (E->getRHS()->getType()->isRealFloatingType()) {
919 if (LHSTy->isAnyComplexType()) {
926 if (LHSTy->isRealFloatingType()) {
939 if (LHSTy->isAnyComplexType()) {
1078 QualType Ty = E->getType()->castAs<ComplexType>()->getElementType();
1091 CGF.ConvertType(E->getType()->castAs<ComplexType>()->getElementType());
tools/clang/lib/CodeGen/CGExprConstant.cpp 614 if (Type->isRecordType())
662 RecordDecl *RD = ILE->getType()->castAs<RecordType>()->getDecl();
699 (Field->getType()->isArrayType() || Field->getType()->isRecordType())) {
699 (Field->getType()->isArrayType() || Field->getType()->isRecordType())) {
784 const CXXRecordDecl *BD = Base->getType()->getAsCXXRecordDecl();
842 RecordDecl *RD = Type->castAs<RecordType>()->getDecl();
865 const RecordDecl *RD = ValTy->castAs<RecordType>()->getDecl();
1036 assert(E->getType()->isUnionType() &&
1073 LangAS destAS = E->getType()->getPointeeType().getAddressSpace();
1074 LangAS srcAS = subExpr->getType()->getPointeeType().getAddressSpace();
1238 if (ILE->getType()->isArrayType())
1241 if (ILE->getType()->isRecordType())
1262 if (auto *RT = destType->getAs<RecordType>())
1273 CGM.getContext().getBaseElementType(Ty)->castAs<RecordType>();
1589 if (auto AT = type->getAs<AtomicType>()) {
1602 if (Ty->isRecordType())
1626 if (destType->isReferenceType())
1671 if (auto AT = destType->getAs<AtomicType>()) {
1704 if (destType->isReferenceType())
2213 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
2240 if (const auto *FieldRD = Field->getType()->getAsRecordDecl())
2250 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
2295 if (T->getAs<PointerType>())
2315 if (const RecordType *RT = T->getAs<RecordType>())
2318 assert(T->isMemberDataPointerType() &&
2321 return getCXXABI().EmitNullMemberPointer(T->castAs<MemberPointerType>());
tools/clang/lib/CodeGen/CGExprScalar.cpp 104 LHSCI, RHSCI, Opcode, Ty->hasSignedIntegerRepresentation(), Result);
139 return LHSType->isFixedPointType() || RHSType->isFixedPointType();
139 return LHSType->isFixedPointType() || RHSType->isFixedPointType();
149 return E->getType()->isNullPtrType();
160 if (!BaseTy->isPromotableIntegerType() ||
203 !LHSTy->isUnsignedIntegerType() || !RHSTy->isUnsignedIntegerType())
203 !LHSTy->isUnsignedIntegerType() || !RHSTy->isUnsignedIntegerType())
270 if (VD->getType()->isReferenceType()) {
521 E->getMethodDecl()->getReturnType()->isReferenceType())
577 if (E->getCallReturnType(CGF.getContext())->isReferenceType())
621 if (E->getType()->isVoidType())
713 if (Ops.Ty->isSignedIntegerOrEnumerationType()) {
728 if (Ops.Ty->isUnsignedIntegerType() &&
855 if (SrcType->isRealFloatingType())
861 assert((SrcType->isIntegerType() || isa<llvm::PointerType>(Src->getType())) &&
874 assert(SrcType->isFloatingType() && "not a conversion from floating point");
890 bool Unsigned = DstType->isUnsignedIntegerOrEnumerationType();
918 if (OrigSrcType->isHalfType()) {
955 bool SrcSigned = SrcType->isSignedIntegerOrEnumerationType();
956 bool DstSigned = DstType->isSignedIntegerOrEnumerationType();
987 if (!(SrcType->isIntegerType() && DstType->isIntegerType()))
987 if (!(SrcType->isIntegerType() && DstType->isIntegerType()))
996 assert(!DstType->isBooleanType() && "we should not get here with booleans.");
1001 bool SrcSigned = SrcType->isSignedIntegerOrEnumerationType();
1002 bool DstSigned = DstType->isSignedIntegerOrEnumerationType();
1039 bool SrcSigned = SrcType->isSignedIntegerOrEnumerationType();
1040 bool DstSigned = DstType->isSignedIntegerOrEnumerationType();
1055 bool VSigned = VType->isSignedIntegerOrEnumerationType();
1098 if (!(SrcType->isIntegerType() && DstType->isIntegerType()))
1098 if (!(SrcType->isIntegerType() && DstType->isIntegerType()))
1101 bool SrcSigned = SrcType->isSignedIntegerOrEnumerationType();
1102 bool DstSigned = DstType->isSignedIntegerOrEnumerationType();
1181 if (SrcType->isFixedPointType()) {
1182 if (DstType->isBooleanType())
1189 if (DstType->isFixedPointType() || DstType->isIntegerType())
1189 if (DstType->isFixedPointType() || DstType->isIntegerType())
1194 } else if (DstType->isFixedPointType()) {
1195 if (SrcType->isIntegerType())
1210 if (DstType->isVoidType()) return nullptr;
1217 if (DstType->isBooleanType())
1223 if (SrcType->isHalfType() && !CGF.getContext().getLangOpts().NativeHalfType) {
1264 assert(SrcType->isIntegerType() && "Not ptr->ptr or int->ptr conversion?");
1268 bool InputSigned = SrcType->isSignedIntegerOrEnumerationType();
1282 if (DstType->isExtVectorType() && !SrcType->isVectorType()) {
1282 if (DstType->isExtVectorType() && !SrcType->isVectorType()) {
1285 assert(DstType->castAs<ExtVectorType>()->getElementType().getTypePtr() ==
1341 OrigSrcType->isFloatingType())
1346 if (DstType->isHalfType() && !CGF.getContext().getLangOpts().NativeHalfType) {
1361 bool InputSigned = SrcType->isSignedIntegerOrEnumerationType();
1362 if (SrcType->isBooleanType() && Opts.TreatBooleanAsSigned) {
1373 if (DstType->isSignedIntegerOrEnumerationType())
1416 DstTy->isIntegerType());
1507 SrcTy = SrcTy->castAs<ComplexType>()->getElementType();
1510 if (DstTy->isBooleanType()) {
1585 if (E->getType()->isVoidType())
1655 assert(SrcType->isVectorType() &&
1657 assert(DstType->isVectorType() &&
1667 QualType SrcEltType = SrcType->castAs<VectorType>()->getElementType(),
1668 DstEltType = DstType->castAs<VectorType>()->getElementType();
1678 if (DstEltType->isBooleanType()) {
1694 bool InputSigned = SrcEltType->isSignedIntegerOrEnumerationType();
1703 if (DstEltType->isSignedIntegerOrEnumerationType())
1742 if (!E->getBase()->getType()->isVectorType())
2004 if (auto PT = DestTy->getAs<PointerType>())
2052 CGF, Visit(E), E->getType()->getPointeeType().getAddressSpace(),
2053 DestTy->getPointeeType().getAddressSpace(), ConvertType(DestTy));
2062 const CXXRecordDecl *DerivedClassDecl = DestTy->getPointeeCXXRecordDecl();
2075 Derived.getPointer(), DestTy->getPointeeType());
2079 DestTy->getPointeeType(), Derived.getPointer(),
2114 const MemberPointerType *MPT = CE->getType()->getAs<MemberPointerType>();
2166 bool InputSigned = E->getType()->isSignedIntegerOrEnumerationType();
2181 assert(!DestTy->isBooleanType() && "bool should use PointerToBool");
2212 assert(E->getType()->isFixedPointType() &&
2214 assert(DestTy->isBooleanType() && "Expected dest type to be boolean type");
2219 assert(E->getType()->isFixedPointType() &&
2221 assert(DestTy->isIntegerType() && "Expected dest type to be an integer");
2226 assert(E->getType()->isIntegerType() &&
2228 assert(DestTy->isFixedPointType() &&
2261 const MemberPointerType *MPT = E->getType()->getAs<MemberPointerType>();
2279 assert((DestTy->isEventT() || DestTy->isQueueT() ||
2279 assert((DestTy->isEventT() || DestTy->isQueueT() ||
2280 DestTy->isOCLIntelSubgroupAVCType()) &&
2296 !E->getType()->isVoidType());
2361 if (const AtomicType *atomicTy = type->getAs<AtomicType>()) {
2363 if (isInc && type->isBooleanType()) {
2379 if (!type->isBooleanType() && type->isIntegerType() &&
2379 if (!type->isBooleanType() && type->isIntegerType() &&
2380 !(type->isUnsignedIntegerType() &&
2417 if (isInc && type->isBooleanType()) {
2421 } else if (type->isIntegerType()) {
2424 if (E->canOverflow() && type->isSignedIntegerOrEnumerationType()) {
2426 } else if (E->canOverflow() && type->isUnsignedIntegerType() &&
2436 } else if (const PointerType *ptr = type->getAs<PointerType>()) {
2452 } else if (type->isFunctionType()) {
2476 } else if (type->isVectorType()) {
2477 if (type->hasIntegerRepresentation()) {
2489 } else if (type->isRealFloatingType()) {
2493 if (type->isHalfType() && !CGF.getContext().getLangOpts().NativeHalfType) {
2529 if (type->isHalfType() && !CGF.getContext().getLangOpts().NativeHalfType) {
2542 const ObjCObjectPointerType *OPT = type->castAs<ObjCObjectPointerType>();
2612 if (E->getType()->isExtVectorType()) {
2656 bool IdxSigned = IdxExpr->getType()->isSignedIntegerOrEnumerationType();
2674 RecordDecl *RD = CurrentType->castAs<RecordType>()->getDecl();
2707 RecordDecl *RD = CurrentType->castAs<RecordType>()->getDecl();
2714 const RecordType *BaseRT = CurrentType->getAs<RecordType>();
2758 E->getTypeOfArgument()->getPointeeType()))
2770 if (Op->getType()->isAnyComplexType()) {
2787 if (Op->getType()->isAnyComplexType()) {
2831 if (E->getComputationResultType()->isAnyComplexType())
2845 if (const AtomicType *atomicTy = LHSTy->getAs<AtomicType>()) {
2847 if (!type->isBooleanType() && type->isIntegerType() &&
2847 if (!type->isBooleanType() && type->isIntegerType() &&
2848 !(type->isUnsignedIntegerType() &&
2973 Ops.Ty->hasSignedIntegerRepresentation() &&
2998 Ops.Ty->isIntegerType() &&
3003 Ops.Ty->isRealFloatingType() &&
3029 else if (Ops.Ty->hasUnsignedIntegerRepresentation())
3039 Ops.Ty->isIntegerType() &&
3046 if (Ops.Ty->hasUnsignedIntegerRepresentation())
3056 bool isSigned = Ops.Ty->isSignedIntegerOrEnumerationType();
3175 bool isSigned = indexOperand->getType()->isSignedIntegerOrEnumerationType();
3220 = pointerOperand->getType()->getAs<PointerType>();
3223 ->castAs<ObjCObjectPointerType>()
3260 if (elementType->isVoidType() || elementType->isFunctionType()) {
3260 if (elementType->isVoidType() || elementType->isFunctionType()) {
3345 if (op.Ty->isSignedIntegerOrEnumerationType()) {
3360 if (op.Ty->isUnsignedIntegerType() &&
3490 if (op.Ty->isSignedIntegerOrEnumerationType()) {
3505 if (op.Ty->isUnsignedIntegerType() &&
3540 QualType elementType = expr->getLHS()->getType()->getPointeeType();
3563 if (elementType->isVoidType() || elementType->isFunctionType())
3563 if (elementType->isVoidType() || elementType->isFunctionType())
3598 Ops.Ty->hasSignedIntegerRepresentation() &&
3677 if (Ops.Ty->hasUnsignedIntegerRepresentation())
3733 if (const MemberPointerType *MPT = LHSTy->getAs<MemberPointerType>()) {
3740 } else if (!LHSTy->isAnyComplexType() && !RHSTy->isAnyComplexType()) {
3740 } else if (!LHSTy->isAnyComplexType() && !RHSTy->isAnyComplexType()) {
3747 if (LHSTy->isVectorType() && !E->getType()->isVectorType()) {
3747 if (LHSTy->isVectorType() && !E->getType()->isVectorType()) {
3757 QualType ElTy = LHSTy->castAs<VectorType>()->getElementType();
3758 const BuiltinType *BTy = ElTy->getAs<BuiltinType>();
3825 } else if (LHSTy->hasSignedIntegerRepresentation()) {
3851 if (LHSTy->isVectorType())
3858 if (auto *CTy = LHSTy->getAs<ComplexType>()) {
3866 if (auto *CTy = RHSTy->getAs<ComplexType>()) {
3880 if (CETy->isRealFloatingType()) {
3964 if (E->getType()->isVectorType()) {
4048 if (E->getType()->isVectorType()) {
4179 if (!Result && !E->getType()->isVoidType())
4189 && condExpr->getType()->isVectorType()) {
4295 if (Ty->isVariablyModifiedType())
4464 assert(SrcTy->isAnyComplexType() && hasScalarEvaluationKind(DstTy) &&
tools/clang/lib/CodeGen/CGGPUBuiltin.cpp 80 E->getDirectCallee()->getType()->getAs<FunctionProtoType>(),
tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp 41 const RecordDecl *RD = QT->castAs<RecordType>()->getDecl();
162 if (FT->isBlockPointerType())
443 SourceLocation Loc = QT->castAs<RecordType>()->getDecl()->getLocation();
650 if (Size < CharUnits::fromQuantity(16) || EltTy->getAs<RecordType>()) {
tools/clang/lib/CodeGen/CGObjC.cpp 87 if (ValueType->isObjCBoxableRecordType()) {
217 = ResultType->getAsObjCInterfacePointerType();
268 if (!ExpT->isObjCRetainableType())
344 assert(E->getType()->isObjCRetainableType());
385 ResultType->isObjCObjectPointerType()) {
393 Args.size() == 1 && Args.front().getType()->isPointerType() &&
405 if (ResultType->isObjCObjectPointerType() &&
412 if (ResultType->isObjCObjectPointerType() &&
419 if (ResultType->isVoidType() &&
445 !OME->getType()->isObjCObjectPointerType() || !Sel.isUnarySelector() ||
467 !SelfInClassMethod) || !SubOME->getType()->isObjCObjectPointerType() ||
476 const ObjCObjectType *ObjTy = ReceiverType->getAs<ObjCObjectType>();
543 const ObjCObjectType *ObjTy = ReceiverType->getAs<ObjCObjectType>();
906 if (const RecordType *recordType = ivarType->getAs<RecordType>())
1165 if (propType->isReferenceType()) {
1455 if (ivarRef.getType()->isObjCObjectPointerType()) {
1456 if (argLoad.getType()->isObjCObjectPointerType())
1458 else if (argLoad.getType()->isBlockPointerType())
1462 } else if (ivarRef.getType()->isBlockPointerType()) {
1463 if (argLoad.getType()->isBlockPointerType())
1467 } else if (ivarRef.getType()->isPointerType()) {
2114 if (type->isBlockPointerType())
2304 bool isBlock = type->isBlockPointerType();
2368 if (!type->isBlockPointerType())
2852 assert(e->getType()->isBlockPointerType());
2994 assert(e->getSubExpr()->getType()->hasPointerRepresentation());
3409 if (!hasImmediateRetain && e->getType()->isBlockPointerType()) {
3490 if (!Ty->isRecordType())
3545 UnaryOperator DST(&DstExpr, UO_Deref, DestTy->getPointeeType(),
3550 UnaryOperator SRC(&SrcExpr, UO_Deref, SrcTy->getPointeeType(),
3556 C, OO_Equal, CalleeExp->getCallee(), Args, DestTy->getPointeeType(),
3575 if (!Ty->isRecordType())
3629 UnaryOperator SRC(&SrcExpr, UO_Deref, SrcTy->getPointeeType(),
tools/clang/lib/CodeGen/CGObjCGNU.cpp 2360 if (T->isObjCIdType() || T->isObjCQualifiedIdType()) {
2360 if (T->isObjCIdType() || T->isObjCQualifiedIdType()) {
2373 const ObjCObjectPointerType *OPT = T->getAs<ObjCObjectPointerType>();
2391 if (T->isObjCIdType() ||
2392 T->isObjCQualifiedIdType()) {
2405 T->getAs<ObjCObjectPointerType>();
2645 bool isPointerSizedReturn = (ResultType->isAnyPointerType() ||
2646 ResultType->isIntegralOrEnumerationType() || ResultType->isVoidType());
2646 ResultType->isIntegralOrEnumerationType() || ResultType->isVoidType());
4043 ObjectTy->castAs<ObjCObjectType>()->getInterface();
tools/clang/lib/CodeGen/CGObjCMac.cpp 240 Ctx.getPointerDiffType()->getCanonicalTypeUnqualified(), Ctx.BoolTy};
256 Ctx.getPointerDiffType()->getCanonicalTypeUnqualified(),
284 Params.push_back(Ctx.getPointerDiffType()->getCanonicalTypeUnqualified());
1769 if (result.isScalar() && resultType->isVoidType()) {
1898 if (T->isObjCIdType() ||
1899 T->isObjCQualifiedIdType()) {
1903 if (T->isObjCClassType() ||
1904 T->isObjCQualifiedClassType()) {
1908 if (T->isObjCObjectPointerType())
2276 if (FQT->isObjCObjectPointerType() || FQT->isBlockPointerType())
2276 if (FQT->isObjCObjectPointerType() || FQT->isBlockPointerType())
2281 if (const PointerType *PT = FQT->getAs<PointerType>())
2418 assert(!type->isArrayType() && "array variable should not be caught");
2419 if (const RecordType *record = type->getAs<RecordType>()) {
2448 if (FQT->isObjCObjectPointerType() || FQT->isBlockPointerType())
2448 if (FQT->isObjCObjectPointerType() || FQT->isBlockPointerType())
2510 if (FQT->isRecordType() || FQT->isUnionType()) {
2510 if (FQT->isRecordType() || FQT->isUnionType()) {
2511 if (FQT->isUnionType())
2514 BuildRCBlockVarRecordLayout(FQT->getAs<RecordType>(),
2529 if (FQT->isRecordType() && ElCount) {
2531 const RecordType *RT = FQT->getAs<RecordType>();
2937 assert(!type->isArrayType() && "array variable should not be caught");
2939 if (const RecordType *record = type->getAs<RecordType>()) {
2970 assert(!T->isArrayType() && "__block array variable should not be caught");
2974 if (const RecordType *record = T->getAs<RecordType>()) {
3472 if (auto recType = type->getAs<RecordType>()) {
4614 OPT = CatchParam->getType()->getAs<ObjCObjectPointerType>();
4903 ObjectTy->castAs<ObjCObjectType>()->getInterface();
5219 assert(!fieldType->isArrayType() && "ivar of non-constant array type?");
5226 if (auto recType = fieldType->getAs<RecordType>()) {
7055 ObjCInterfaceDecl *ID = ObjectTy->castAs<ObjCObjectType>()->getInterface();
7632 if (T->isObjCIdType() || T->isObjCQualifiedIdType()) {
7632 if (T->isObjCIdType() || T->isObjCQualifiedIdType()) {
7646 const ObjCObjectPointerType *PT = T->getAs<ObjCObjectPointerType>();
tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp 99 const PipeType *PipeTy = PipeArg->getType()->getAs<PipeType>();
109 const PipeType *PipeTy = PipeArg->getType()->getAs<PipeType>();
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp 148 PartIDVar->getType()->castAs<PointerType>());
165 PartIDVar->getType()->castAs<PointerType>());
868 const ArrayType *ArrayTy = Type->getAsArrayTypeUnsafe();
1000 if (!PrivateType->isVariablyModifiedType()) {
1038 if (!PrivateType->isVariablyModifiedType()) {
1107 while ((BaseTy->isPointerType() || BaseTy->isReferenceType()) &&
1107 while ((BaseTy->isPointerType() || BaseTy->isReferenceType()) &&
1109 if (const auto *PtrTy = BaseTy->getAs<PointerType>()) {
1115 BaseTy = BaseTy->getPointeeType();
1131 while ((BaseTy->isPointerType() || BaseTy->isReferenceType()) &&
1131 while ((BaseTy->isPointerType() || BaseTy->isReferenceType()) &&
1139 BaseTy = BaseTy->getPointeeType();
1207 getThreadIDVariable()->getType()->castAs<PointerType>());
1382 return CGF.EmitLoadOfPointerLValue(AddrIn, PtrTy->castAs<PointerType>())
1387 return CGF.EmitLoadOfPointerLValue(AddrOut, PtrTy->castAs<PointerType>())
1443 assert(ThreadIDVar->getType()->isPointerType() &&
1497 TaskTVar->getType()->castAs<PointerType>())
1504 assert(!ThreadIDVar->getType()->isPointerType() &&
1545 const auto *RD = cast<RecordDecl>(Ty->getAsTagDecl());
1560 const auto *RD = cast<RecordDecl>(Ty->getAsTagDecl());
1661 auto Fields = cast<RecordDecl>(IdentQTy->getAsTagDecl())->field_begin();
4532 KmpTaskTWithPrivatesPtrQTy->castAs<PointerType>());
4534 cast<RecordDecl>(KmpTaskTWithPrivatesQTy->getAsTagDecl());
4537 const auto *KmpTaskTQTyRD = cast<RecordDecl>(KmpTaskTQTy->getAsTagDecl());
4630 KmpTaskTWithPrivatesPtrQTy->castAs<PointerType>());
4632 cast<RecordDecl>(KmpTaskTWithPrivatesQTy->getAsTagDecl());
4636 cast<RecordDecl>(FI->getType()->getAsTagDecl())->fields()) {
4729 TaskPrivatesArg.getType()->castAs<PointerType>());
4730 const auto *PrivatesQTyRD = cast<RecordDecl>(PrivatesQTy->getAsTagDecl());
4738 RefLVal.getAddress(), RefLVal.getType()->castAs<PointerType>());
4776 FI = cast<RecordDecl>(FI->getType()->getAsTagDecl())->field_begin();
4808 if (Type->isArrayType()) {
4912 KmpTaskTWithPrivatesPtrQTy->castAs<PointerType>());
4930 KmpTaskTWithPrivatesPtrQTy->castAs<PointerType>());
4952 const auto *PrivateRD = cast<RecordDecl>(FI->getType()->getAsTagDecl());
5023 const auto *KmpTaskTQTyRD = cast<RecordDecl>(KmpTaskTQTy->getAsTagDecl());
5122 if (!SharedsTy->getAsStructureType()->getDecl()->field_empty()) {
5153 (*FI)->getType()->getAsUnionType()->getDecl();
5218 KmpDependInfoRD = cast<RecordDecl>(KmpDependInfoTy->getAsTagDecl());
5479 const ArrayType *ArrayTy = Type->getAsArrayTypeUnsafe();
5610 if (PrivTy->isVariablyModifiedType()) {
5628 if ((*IPriv)->getType()->isArrayType()) {
5655 if (PrivateRef->getType()->isArrayType()) {
5738 if (E->getType()->isVariablyModifiedType())
5756 if ((*IPriv)->getType()->isVariablyModifiedType()) {
5913 if ((*IPriv)->getType()->isArrayType()) {
5937 if ((*IPriv)->getType()->isArrayType()) {
6577 VD->getType()->isReferenceType()) &&
7174 if (const auto *RefTy = ExprTy->getAs<ReferenceType>())
7193 if (const auto *PTy = BaseTy->getAs<PointerType>()) {
7535 if (Ty->isAnyPointerType() && std::next(I) != CE) {
7536 BP = CGF.EmitLoadOfPointer(BP, Ty->castAs<PointerType>());
7598 ->isAnyPointerType()) ||
7599 I->getAssociatedExpression()->getType()->isAnyPointerType();
7767 if (Cap.getCapturedVar()->getType()->isAnyPointerType())
7815 const auto *Base = I.getType()->getAsCXXRecordDecl();
7828 const auto *Base = I.getType()->getAsCXXRecordDecl();
8171 ->getAsCXXRecordDecl();
8197 if (LC.getCaptureKind() != LCK_ByRef && !VD->getType()->isPointerType())
8347 VD->getType().getCanonicalType()->getAsCXXRecordDecl())
8350 const auto *RD = VD->getType().getCanonicalType()->getAsRecordDecl();
8486 if (!RI.getType()->isAnyPointerType()) {
8528 if (I != FirstPrivateDecls.end() && ElementType->isAnyPointerType()) {
8928 .EmitLoadOfPointerLValue(PtrCurrent, PtrTy->castAs<PointerType>())
9618 if (const auto *RD = RDTy->getBaseElementTypeUnsafe()->getAsCXXRecordDecl()) {
10268 if (!RetType.isNull() && !RetType->isVoidType()) {
10288 CDT = CDT->getCanonicalTypeUnqualified();
10289 if (CDT->isRecordType() || CDT->isUnionType())
10289 if (CDT->isRecordType() || CDT->isUnionType())
10382 if (QT->isVoidType())
10408 if (QT->isFloatingType())
10411 if (QT->isIntegerType())
10414 if (QT->isPointerType())
10426 if (getAArch64MTV(QT, Kind) && QT.getCanonicalType()->isPointerType()) {
10427 QualType PTy = QT.getCanonicalType()->getPointeeType();
10449 if (!RetType->isVoidType()) {
10828 RD = cast<RecordDecl>(KmpDimTy->getAsTagDecl());
10981 if (CVD->getType()->isVariablyModifiedType()) {
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp 262 if (Type->isLValueReferenceType())
344 !FD->getType()->isAnyPointerType()))
347 if (!FD->getType()->isReferenceType()) {
348 assert(!VD->getType()->isVariablyModifiedType() &&
358 VD->getType()->isReferenceType())
361 if (VD->getType()->isVariablyModifiedType())
368 if (VD->getType()->isLValueReferenceType())
373 AllEscaped = VD->getType()->isLValueReferenceType();
2320 Rec.second.FD->getType()->castAsArrayTypeUnsafe()->getElementType();
2823 if (CastTy->isIntegerType() && ValTy->isIntegerType())
2823 if (CastTy->isIntegerType() && ValTy->isIntegerType())
2825 CastTy->hasSignedIntegerRepresentation());
2998 C.getPointerType(Private->getType())->castAs<PointerType>());
3014 C.getPointerType(Private->getType())->castAs<PointerType>());
3021 C.getPointerType(Private->getType())->castAs<PointerType>());
3029 C.getPointerType(Private->getType())->castAs<PointerType>());
3789 if ((*IPriv)->getType()->isVariablyModifiedType()) {
3989 if ((*IPriv)->getType()->isVariablyModifiedType()) {
4293 if (E->getType()->isVariablyModifiedType())
4311 if ((*IPriv)->getType()->isVariablyModifiedType()) {
4444 if (!NativeParam->getType()->isReferenceType())
4482 NativeParam->getType()->isReferenceType() &&
4643 !CI->getCapturedVar()->getType()->isAnyPointerType()) {
4859 ->getAsCXXRecordDecl();
4864 if (VD->getType().getCanonicalType()->isReferenceType())
4888 if (VD->getType().getCanonicalType()->isReferenceType())
tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp 227 Info.IsSigned = FD->getType()->isSignedIntegerOrEnumerationType();
315 if (const auto *FieldRD = Field->getType()->getAsRecordDecl())
495 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
521 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
534 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
562 if (!hasOwnStorage(Base.getType()->getAsCXXRecordDecl(), Query))
706 bool IsSigned = FD->getType()->isSignedIntegerOrEnumerationType();
tools/clang/lib/CodeGen/CGStmt.cpp 1097 } else if (!ReturnValue.isValid() || (RV && RV->getType()->isVoidType())) {
1104 } else if (FnRetTy->isReferenceType()) {
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp 304 if (!CurField->getType()->isAnyPointerType()) {
346 if (T->isLValueReferenceType())
350 if (T->isPointerType())
351 return C.getPointerType(getCanonicalParamType(C, T->getPointeeType()));
352 if (const ArrayType *A = T->getAsArrayTypeUnsafe()) {
426 ((I->capturesVariableByCopy() && !ArgType->isAnyPointerType()) ||
439 if (ArgType->isVariablyModifiedType())
496 if (I->capturesVariableByCopy() && FD->getType()->isAnyPointerType()) {
521 if (ArgLVal.getType()->isLValueReferenceType()) {
523 } else if (!VarTy->isVariablyModifiedType() || !VarTy->isPointerType()) {
523 } else if (!VarTy->isVariablyModifiedType() || !VarTy->isPointerType()) {
524 assert(ArgLVal.getType()->isPointerType());
526 ArgAddr, ArgLVal.getType()->castAs<PointerType>());
534 assert(!FD->getType()->isAnyPointerType() &&
646 const ArrayType *ArrayTy = OriginalType->getAsArrayTypeUnsafe();
703 if (OriginalType->isArrayType()) {
768 !FD->getType()->isReferenceType() &&
778 FD && FD->getType()->isReferenceType() &&
815 if (Type->isArrayType()) {
1084 if (const auto *RefTy = PrivateVD->getType()->getAs<ReferenceType>())
1158 if (isaOMPArraySectionExpr && Type->isVariablyModifiedType()) {
1166 } else if ((isaOMPArraySectionExpr && Type->isScalarType()) ||
1537 E->getType()->getPointeeType()))
1622 assert(!E->getType().getNonReferenceType()->isRecordType() &&
1875 const bool IVSigned = IVExpr->getType()->hasSignedIntegerRepresentation();
2038 const bool IVSigned = IVExpr->getType()->hasSignedIntegerRepresentation();
2094 const bool IVSigned = IVExpr->getType()->hasSignedIntegerRepresentation();
2422 const bool IVSigned = IVExpr->getType()->hasSignedIntegerRepresentation();
3470 const bool IVSigned = IVExpr->getType()->hasSignedIntegerRepresentation();
3661 DestType->castAs<ComplexType>()->getElementType();
3668 QualType SrcElementType = SrcType->castAs<ComplexType>()->getElementType();
3670 DestType->castAs<ComplexType>()->getElementType();
3786 RMWOp = X.getType()->hasSignedIntegerRepresentation()
3793 RMWOp = X.getType()->hasSignedIntegerRepresentation()
3834 X.getType()->hasSignedIntegerRepresentation());
tools/clang/lib/CodeGen/CGVTables.cpp 72 bool NullCheckValue = !ResultType->isReferenceType();
90 auto ClassDecl = ResultType->getPointeeType()->getAsCXXRecordDecl();
90 auto ClassDecl = ResultType->getPointeeType()->getAsCXXRecordDecl();
160 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
253 ResultType = MD->getType()->castAs<FunctionProtoType>()->getReturnType();
338 const FunctionProtoType *FPT = MD->getType()->getAs<FunctionProtoType>();
364 if (!ResultType->isVoidType() &&
380 if (!ResultType->isVoidType() && Slot.isNull())
507 MD->getType()->castAs<FunctionType>());
1054 if (B.getType()->getAsCXXRecordDecl()->isDynamicClass())
1056 GetVCallVisibilityLevel(B.getType()->getAsCXXRecordDecl()));
1059 if (B.getType()->getAsCXXRecordDecl()->isDynamicClass())
1061 GetVCallVisibilityLevel(B.getType()->getAsCXXRecordDecl()));
tools/clang/lib/CodeGen/CGValue.h 229 assert((!Alignment.isZero() || Type->isIncompleteType()) &&
tools/clang/lib/CodeGen/CodeGenFunction.cpp 108 return getNaturalTypeAlignment(T->getPointeeType(), BaseInfo, TBAAInfo,
122 if (auto TT = T->getAs<TypedefType>()) {
134 if (T->isIncompleteType()) {
141 if (forPointeeType && (RD = T->getAsCXXRecordDecl())) {
191 switch (type->getTypeClass()) {
548 const ExtVectorType *HintEltQTy = HintQTy->getAs<ExtVectorType>();
550 HintQTy->isSignedIntegerType() ||
551 (HintEltQTy && HintEltQTy->getElementType()->isSignedIntegerType());
620 auto *PT = MD->parameters()[1]->getType()->getAs<PointerType>();
806 auto Nullability = FnRetTy->getNullability(getContext());
856 if (const auto *SrcFnTy = FD->getType()->getAs<FunctionType>())
895 if (RetTy->isVoidType()) {
934 RetTy->isObjCRetainableType())
964 if (!LambdaThisCaptureField->getType()->isPointerType()) {
1005 getContext().getTypeAlignInChars(ThisTy->getPointeeType()),
1025 if (Ty->isVariablyModifiedType())
1134 if (const RecordType *RT = T.getCanonicalType()->getAs<RecordType>()) {
1218 !FD->getReturnType()->isVoidType() && Builder.GetInsertBlock()) {
1622 if (const RecordType *RT = Ty->getAs<RecordType>()) {
1856 assert(type->isVariablyModifiedType() &&
1864 assert(type->isVariablyModifiedType());
1941 size->getType()->isSignedIntegerType()) {
1997 } while (type->isVariablyModifiedType());
2001 if (getContext().getBuiltinVaListType()->isArrayType())
2358 if (Ty->getPointeeType().isVolatileQualified())
tools/clang/lib/CodeGen/CodeGenFunction.h 853 if (VarTy->isReferenceType()) {
1097 expr->getType()->isFunctionType() ||
2314 if (const RecordType *RT = T->getAs<RecordType>()) {
4268 ((*I)->isVariablyModifiedType() ||
4269 (*I).getNonReferenceType()->isObjCRetainableType() ||
tools/clang/lib/CodeGen/CodeGenModule.cpp 1005 FD->getType()->castAs<FunctionType>()->getCallConv() == CC_X86RegCall) {
1298 if (ty->isPointerType()) {
1299 QualType pointeeTy = ty->getPointeeType();
1340 bool isPipe = ty->isPipeType();
1341 if (ty->isImageType() || isPipe)
1351 ->getAs<PipeType>()
1365 ->getAs<PipeType>()
1377 if (ty->isImageType()) {
1399 if (ty->isImageType() || ty->isPipeType()) {
1399 if (ty->isImageType() || ty->isPipeType()) {
1474 CollectMostBases(B.getType()->getAsCXXRecordDecl());
2274 if (Ty->isRecordType()) {
2566 if (const auto *RT = T->getBaseElementTypeUnsafe()->getAs<RecordType>())
3382 if (!Ty.isConstant(Context) && !Ty->isReferenceType())
3387 = Context.getBaseElementType(Ty)->getAsCXXRecordDecl())
3539 Context.getBaseElementType(D->getType())->getAsCXXRecordDecl();
3862 if (getLangOpts().OpenCL && ASTTy->isSamplerT())
3909 assert(!ASTTy->isIncompleteType() && "Unexpected incomplete type");
3918 if (D->getType()->isReferenceType())
4148 if (const auto *RT = VarType->getAs<RecordType>()) {
4846 assert(!E->getType()->isPointerType() && "Strings are always arrays");
5738 if (ForEH && Ty->isObjCObjectPointerType() &&
5770 if (isExternallyVisible(T->getLinkage())) {
5799 if (!Ty->isPointerType())
5804 Ty->getPointeeType().getCVRQualifiers()));
5809 if (auto *FnType = Ty->getAs<FunctionProtoType>()) {
5819 if (auto *FnType = Ty->getAs<FunctionNoProtoType>())
tools/clang/lib/CodeGen/CodeGenTBAA.cpp 97 if (QTy->isReferenceType())
99 if (const RecordType *TTy = QTy->getAs<RecordType>()) {
220 if (AccessType->isIncompleteType())
245 if (const RecordType *TTy = QTy->getAs<RecordType>()) {
tools/clang/lib/CodeGen/CodeGenTypes.cpp 138 if (!isSafeToConvert(I.getType()->castAs<RecordType>()->getDecl(), CGT,
160 if (const auto *AT = T->getAs<AtomicType>())
164 if (const auto *RT = T->getAs<RecordType>())
197 if (const auto *MPT = Ty->getAs<MemberPointerType>())
201 const TagType *TT = Ty->getAs<TagType>();
323 if (const RecordType *RT = FT->getReturnType()->getAs<RecordType>())
327 if (const RecordType *RT = FPT->getParamType(i)->getAs<RecordType>())
704 return isPaddedAtomicType(type->castAs<AtomicType>());
747 ConvertRecordDeclType(I.getType()->castAs<RecordType>()->getDecl());
793 assert((T->isAnyPointerType() || T->isBlockPointerType()) && "Invalid type");
793 assert((T->isAnyPointerType() || T->isBlockPointerType()) && "Invalid type");
798 if (T->getAs<PointerType>())
812 if (const RecordType *RT = T->getAs<RecordType>()) {
818 if (const MemberPointerType *MPT = T->getAs<MemberPointerType>())
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp 582 MPT->getPointeeType()->getAs<FunctionProtoType>();
852 E->getType()->castAs<MemberPointerType>();
903 E->getType()->castAs<MemberPointerType>();
996 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
1020 const MemberPointerType *MPT = MPType->castAs<MemberPointerType>();
1181 cast<CXXRecordDecl>(ElementType->castAs<RecordType>()->getDecl());
1265 if (const RecordType *RecordTy = ThrowType->getAs<RecordType>()) {
1343 PathElement.Base->getType()->getAsCXXRecordDecl());
1384 cast<CXXRecordDecl>(SrcRecordTy->castAs<RecordType>()->getDecl());
1411 const CXXRecordDecl *SrcDecl = SrcRecordTy->getAsCXXRecordDecl();
1412 const CXXRecordDecl *DestDecl = DestRecordTy->getAsCXXRecordDecl();
1427 if (DestTy->isReferenceType()) {
1450 cast<CXXRecordDecl>(SrcRecordTy->castAs<RecordType>()->getDecl());
1877 auto *BRD = B.getType()->getAsCXXRecordDecl();
1896 auto *BRD = B.getType()->getAsCXXRecordDecl();
2521 if (RetQT->isReferenceType())
2705 if (VD->getType()->isReferenceType()) {
2726 if (VD->getType()->isReferenceType())
2896 const CXXRecordDecl *RD = Ty->getAsCXXRecordDecl();
3139 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl());
3290 switch (Ty->getLinkage()) {
3363 llvmVisibility = CodeGenModule::GetLLVMVisibility(Ty->getVisibility());
3368 auto RD = Ty->getAsCXXRecordDecl();
3406 switch (Ty->getTypeClass()) {
3603 cast<CXXRecordDecl>(Base->getType()->castAs<RecordType>()->getDecl());
3702 cast<CXXRecordDecl>(Base.getType()->castAs<RecordType>()->getDecl());
3751 if (auto *Proto = Type->getAs<FunctionProtoType>()) {
3866 if (CanTy->getVisibility() != DefaultVisibility)
4103 bool EndCatchMightThrow = CaughtType->isRecordType();
4116 if (!PointeeType->isRecordType()) {
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp 87 CD->getType()->castAs<FunctionProtoType>()->isVariadic())
335 const CXXRecordDecl *VBase = I.getType()->getAsCXXRecordDecl();
895 const CXXRecordDecl *SrcDecl = SrcRecordTy->getAsCXXRecordDecl();
909 const CXXRecordDecl *BaseDecl = Base.getType()->getAsCXXRecordDecl();
927 const CXXRecordDecl *SrcDecl = SrcRecordTy->getAsCXXRecordDecl();
961 const CXXRecordDecl *SrcDecl = SrcRecordTy->getAsCXXRecordDecl();
995 llvm::ConstantInt::get(CGF.Int32Ty, DestTy->isReferenceType())};
1178 const CXXRecordDecl *VBase = S.getType()->getAsCXXRecordDecl();
1213 MD->getType()->castAs<FunctionProtoType>()->getCallConv();
1278 const FunctionProtoType *FPT = CD->getType()->castAs<FunctionProtoType>();
1461 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
1554 const FunctionProtoType *FPT = D->getType()->castAs<FunctionProtoType>();
2098 const CXXRecordDecl *VBase = I.getType()->getAsCXXRecordDecl();
2717 const MemberPointerType *DstTy = MPType->castAs<MemberPointerType>();
2738 ->castAs<MemberPointerType>();
2754 if (BS.getType()->getAsCXXRecordDecl()->getCanonicalDecl() ==
2779 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
3093 E->getSubExpr()->getType()->castAs<MemberPointerType>();
3094 const MemberPointerType *DstTy = E->getType()->castAs<MemberPointerType>();
3289 E->getSubExpr()->getType()->castAs<MemberPointerType>();
3290 const MemberPointerType *DstTy = E->getType()->castAs<MemberPointerType>();
3329 MPT->getPointeeType()->castAs<FunctionProtoType>();
3481 switch (Ty->getLinkage()) {
3535 serializeClassHierarchy(Classes, Base.getType()->getAsCXXRecordDecl());
3757 QualType PointeeType = T->getPointeeType();
3766 if (const auto *MPTy = T->getAs<MemberPointerType>())
3772 if (T->isPointerType())
3788 bool IsReference = CatchHandlerType->isReferenceType();
3974 const auto *FPT = CD->getType()->castAs<FunctionProtoType>();
4004 assert(!T->isReferenceType());
4006 CXXRecordDecl *RD = T->getAsCXXRecordDecl();
4047 if (T->isPointerType())
4048 PointeeType = T->getPointeeType();
4049 if (const CXXRecordDecl *RD = PointeeType->getAsCXXRecordDecl()) {
4086 assert(!T->isReferenceType());
4107 bool IsPointer = T->isPointerType();
4109 MostDerivedClass = T->getPointeeType()->getAsCXXRecordDecl();
4109 MostDerivedClass = T->getPointeeType()->getAsCXXRecordDecl();
4111 MostDerivedClass = T->getAsCXXRecordDecl();
4163 if (IsPointer && T->getPointeeType()->isObjectType())
4163 if (IsPointer && T->getPointeeType()->isObjectType())
4174 if (T->isNullPtrType())
4244 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
tools/clang/lib/CodeGen/SwiftCallingConv.cpp 67 if (auto recType = type->getAs<RecordType>()) {
71 } else if (type->isArrayType()) {
84 } else if (auto complexType = type->getAs<ComplexType>()) {
92 } else if (type->getAs<MemberPointerType>()) {
139 auto baseRecord = baseSpecifier.getType()->getAsCXXRecordDecl();
164 auto baseRecord = vbaseSpecifier.getType()->getAsCXXRecordDecl();
tools/clang/lib/CodeGen/TargetInfo.cpp 76 T->isMemberFunctionPointerType();
152 const RecordType *RT = T->getAs<RecordType>();
162 if (const auto *RT = Ty->getAs<RecordType>())
175 if (const RecordType *UT = Ty->getAsUnionType()) {
494 const RecordType *RT = FT->getAs<RecordType>();
512 const RecordType *RT = T->getAs<RecordType>();
540 const RecordType *RT = T->getAs<RecordType>();
698 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
701 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
706 if (RetTy->isVoidType())
713 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
716 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
895 } else if (const EnumType *EnumTy = Ty->getAs<EnumType>()) {
898 } else if (Ty->isFloatingType()) {
903 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
908 if (RetTy->isVoidType())
916 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
919 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
953 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
962 } else if (const VectorType *VT = Ty->getAs<VectorType>()) {
1246 if (Ty->isVectorType()) {
1257 if (Ty->getAs<BuiltinType>() || Ty->hasPointerRepresentation() ||
1257 if (Ty->getAs<BuiltinType>() || Ty->hasPointerRepresentation() ||
1258 Ty->isAnyComplexType() || Ty->isEnumeralType() ||
1258 Ty->isAnyComplexType() || Ty->isEnumeralType() ||
1259 Ty->isBlockPointerType() || Ty->isMemberPointerType())
1259 Ty->isBlockPointerType() || Ty->isMemberPointerType())
1267 const RecordType *RT = Ty->getAs<RecordType>();
1288 if (const ComplexType *CTy = Ty->getAs<ComplexType>())
1294 if (!Ty->getAs<BuiltinType>() && !Ty->hasPointerRepresentation() &&
1294 if (!Ty->getAs<BuiltinType>() && !Ty->hasPointerRepresentation() &&
1295 !Ty->isEnumeralType() && !Ty->isBlockPointerType())
1295 !Ty->isEnumeralType() && !Ty->isBlockPointerType())
1326 if (!addBaseAndFieldSizes(Context, Base.getType()->getAsCXXRecordDecl(),
1341 const RecordType *RT = Ty->getAs<RecordType>();
1381 if (RetTy->isVoidType())
1393 if (const VectorType *VT = RetTy->getAs<VectorType>()) {
1419 if (const RecordType *RT = RetTy->getAs<RecordType>()) {
1426 if (!IsRetSmallStructInRegABI && !RetTy->isAnyComplexType())
1457 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
1460 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
1465 return Ty->getAs<VectorType>() && Context.getTypeSize(Ty) == 128;
1469 const RecordType *RT = Ty->getAs<RecordType>();
1625 return (Ty->isIntegralOrEnumerationType() || Ty->isPointerType() ||
1625 return (Ty->isIntegralOrEnumerationType() || Ty->isPointerType() ||
1626 Ty->isReferenceType());
1639 const RecordType *RT = Ty->getAs<RecordType>();
1659 if (Ty->isBuiltinType() || Ty->isVectorType())
1659 if (Ty->isBuiltinType() || Ty->isVectorType())
1708 if (const VectorType *VT = Ty->getAs<VectorType>()) {
1726 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
1731 if (Ty->isPromotableIntegerType()) {
1759 if ((Ty->isVectorType() || Ty->isBuiltinType()) &&
1759 if ((Ty->isVectorType() || Ty->isBuiltinType()) &&
1778 if (IsHva && !Ty->isVectorType() && !Ty->isBuiltinType()) {
1778 if (IsHva && !Ty->isVectorType() && !Ty->isBuiltinType()) {
2570 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
2600 if (const EnumType *ET = Ty->getAs<EnumType>()) {
2606 if (Ty->hasPointerRepresentation()) {
2611 if (Ty->isMemberPointerType()) {
2612 if (Ty->isMemberFunctionPointerType()) {
2634 if (const VectorType *VT = Ty->getAs<VectorType>()) {
2653 if (ElementType->isSpecificBuiltinType(BuiltinType::Double))
2660 (ElementType->isSpecificBuiltinType(BuiltinType::LongLong) ||
2661 ElementType->isSpecificBuiltinType(BuiltinType::ULongLong) ||
2662 ElementType->isSpecificBuiltinType(BuiltinType::Long) ||
2663 ElementType->isSpecificBuiltinType(BuiltinType::ULong)))
2678 (ElementType->isSpecificBuiltinType(BuiltinType::Int128) ||
2679 ElementType->isSpecificBuiltinType(BuiltinType::UInt128)))
2702 if (const ComplexType *CT = Ty->getAs<ComplexType>()) {
2706 if (ET->isIntegralOrEnumerationType()) {
2782 if (const RecordType *RT = Ty->getAs<RecordType>()) {
2810 assert(!I.isVirtual() && !I.getType()->isDependentType() &&
2813 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
2908 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
2911 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
2919 if (const VectorType *VecTy = Ty->getAs<VectorType>()) {
2926 (EltTy->isSpecificBuiltinType(BuiltinType::Int128) ||
2927 EltTy->isSpecificBuiltinType(BuiltinType::UInt128)))
2946 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
2949 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
3065 if (const RecordType *RT = Ty->getAs<RecordType>()) {
3072 assert(!I.isVirtual() && !I.getType()->isDependentType() &&
3075 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
3328 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
3331 if (RetTy->isIntegralOrEnumerationType() &&
3332 RetTy->isPromotableIntegerType())
3473 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
3476 if (Ty->isIntegralOrEnumerationType() &&
3477 Ty->isPromotableIntegerType())
3548 auto RT = Ty->getAs<RecordType>();
3571 if (FD->getType()->isRecordType() && !FD->getType()->isUnionType()) {
3571 if (FD->getType()->isRecordType() && !FD->getType()->isUnionType()) {
3920 if (!Ty->isBuiltinType() && !Ty->isVectorType() &&
3920 if (!Ty->isBuiltinType() && !Ty->isVectorType() &&
3932 if (Ty->isVoidType())
3935 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
3942 const RecordType *RT = Ty->getAs<RecordType>();
3963 if (IsReturnType || Ty->isBuiltinType() || Ty->isVectorType())
3963 if (IsReturnType || Ty->isBuiltinType() || Ty->isVectorType())
3970 (IsReturnType || Ty->isBuiltinType() || Ty->isVectorType())) {
3970 (IsReturnType || Ty->isBuiltinType() || Ty->isVectorType())) {
3975 } else if (!Ty->isBuiltinType() && !Ty->isVectorType()) {
3975 } else if (!Ty->isBuiltinType() && !Ty->isVectorType()) {
3982 if (Ty->isMemberPointerType()) {
3990 if (RT || Ty->isAnyComplexType() || Ty->isMemberPointerType()) {
3990 if (RT || Ty->isAnyComplexType() || Ty->isMemberPointerType()) {
4000 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
4113 if (isAggregateTypeForABI(Ty) || Ty->isMemberPointerType()) {
4157 if (const ComplexType *CTy = Ty->getAs<ComplexType>())
4160 if (Ty->isVectorType())
4194 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) {
4208 bool isI64 = Ty->isIntegerType() && getContext().getTypeSize(Ty) == 64;
4210 Ty->isIntegerType() || Ty->isPointerType() || Ty->isAggregateType();
4210 Ty->isIntegerType() || Ty->isPointerType() || Ty->isAggregateType();
4210 Ty->isIntegerType() || Ty->isPointerType() || Ty->isAggregateType();
4211 bool isF64 = Ty->isFloatingType() && getContext().getTypeSize(Ty) == 64;
4215 bool isIndirect = Ty->isAggregateType();
4403 if (VT->getElementType()->isSpecificBuiltinType(BuiltinType::Double)) {
4406 } else if (VT->getElementType()->
4515 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
4519 if (Ty->isPromotableIntegerType())
4524 if (const BuiltinType *BT = Ty->getAs<BuiltinType>())
4540 if (const ComplexType *CTy = Ty->getAs<ComplexType>())
4550 } else if (Ty->isVectorType()) {
4606 } else if (const RecordType *RT = Ty->getAs<RecordType>()) {
4662 if (const ComplexType *CT = Ty->getAs<ComplexType>()) {
4699 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
4710 if (const VectorType *VT = Ty->getAs<VectorType>()) {
4735 if (Ty->isAnyComplexType())
4740 if (Ty->isVectorType() && !IsQPXVectorTy(Ty)) {
4804 if (RetTy->isVoidType())
4807 if (RetTy->isAnyComplexType())
4812 if (RetTy->isVectorType() && !IsQPXVectorTy(RetTy)) {
4871 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) {
5137 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
5140 return (Ty->isPromotableIntegerType() && isDarwinPCS()
5204 if (RetTy->isVoidType())
5208 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 128)
5213 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
5216 return (RetTy->isPromotableIntegerType() && isDarwinPCS()
5255 if (const VectorType *VT = Ty->getAs<VectorType>()) {
5283 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
5286 } else if (const VectorType *VT = Ty->getAs<VectorType>()) {
5881 if ((Ty->isFloat16Type() || Ty->isHalfType()) &&
5881 if ((Ty->isFloat16Type() || Ty->isHalfType()) &&
5891 if (const EnumType *EnumTy = Ty->getAs<EnumType>()) {
5895 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
5992 if (Ty->isVectorType())
5996 if (Ty->isRealFloatingType())
6000 if (Ty->getAs<BuiltinType>() || Ty->isPointerType())
6000 if (Ty->getAs<BuiltinType>() || Ty->isPointerType())
6004 if (const ComplexType *CT = Ty->getAs<ComplexType>())
6011 const RecordType *RT = Ty->getAs<RecordType>();
6071 if (RetTy->isVoidType())
6074 if (const VectorType *VT = RetTy->getAs<VectorType>()) {
6080 (VT->getElementType()->isFloat16Type() ||
6081 VT->getElementType()->isHalfType()))
6088 if ((RetTy->isFloat16Type() || RetTy->isHalfType()) &&
6088 if ((RetTy->isFloat16Type() || RetTy->isHalfType()) &&
6098 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
6101 return RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
6114 if (RetTy->isAnyComplexType())
6177 if (const VectorType *VT = Ty->getAs<VectorType> ()) {
6182 (VT->getElementType()->isFloat16Type() ||
6183 VT->getElementType()->isHalfType()))
6216 } else if (const RecordType *RT = Ty->getAs<RecordType>()) {
6233 if (const VectorType *VT = Ty->getAs<VectorType>())
6234 return (VT->getElementType()->isFloat16Type() ||
6235 VT->getElementType()->isHalfType());
6257 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) {
6262 } else if (const VectorType *VT = Ty->getAs<VectorType>()) {
6369 if (!Context.getTargetInfo().hasFloat16Type() && T->isFloat16Type())
6372 (T->isFloat128Type() ||
6373 (T->isRealFloatingType() && Context.getTypeSize(T) == 128)))
6375 if (!Context.getTargetInfo().hasInt128Type() && T->isIntegerType() &&
6378 if (const auto *AT = T->getAsArrayTypeUnsafe())
6380 const auto *RT = T->getAs<RecordType>();
6411 if (RetTy->isVoidType())
6420 if (!RetTy->isScalarType())
6424 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
6427 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
6433 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
6440 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
6586 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
6590 if (Ty->isPromotableIntegerType())
6594 if (const BuiltinType *BT = Ty->getAs<BuiltinType>())
6606 return (Ty->isAnyComplexType() ||
6607 Ty->isVectorType() ||
6613 Ty->isVectorType() &&
6618 if (const BuiltinType *BT = Ty->getAs<BuiltinType>())
6631 if (const RecordType *RT = Ty->getAsStructureType()) {
6830 if (RetTy->isVoidType())
6863 if (const RecordType *RT = Ty->getAs<RecordType>()) {
7048 if (Ty->isComplexType())
7051 const RecordType *RT = Ty->getAs<RecordType>();
7072 const BuiltinType *BT = Ty->getAs<BuiltinType>();
7117 if (isAggregateTypeForABI(Ty) || Ty->isVectorType()) {
7138 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
7142 if (Ty->isIntegralOrEnumerationType())
7151 const RecordType *RT = RetTy->getAs<RecordType>();
7171 const BuiltinType *BT = b->getType()->getAs<BuiltinType>();
7194 if (RetTy->isVoidType())
7202 if (isAggregateTypeForABI(RetTy) || RetTy->isVectorType()) {
7204 if (RetTy->isAnyComplexType())
7210 (RetTy->isVectorType() && !RetTy->hasFloatingRepresentation())) {
7210 (RetTy->isVectorType() && !RetTy->hasFloatingRepresentation())) {
7222 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
7225 if (RetTy->isPromotableIntegerType())
7228 if ((RetTy->isUnsignedIntegerOrEnumerationType() ||
7229 RetTy->isSignedIntegerOrEnumerationType()) && Size == 32 && !IsO32)
7256 if ((Ty->isIntegerType() &&
7258 (Ty->isPointerType() && PtrWidth < SlotSizeInBits)) {
7261 Ty->isSignedIntegerType());
7285 llvm::Type *IntTy = (OrigTy->isIntegerType() ? Temp.getElementType()
7288 if (OrigTy->isPointerType())
7302 if (Ty->isUnsignedIntegerOrEnumerationType() && TySize == 32)
7472 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
7475 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty)
7501 if (RetTy->isVoidType())
7505 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 64)
7510 if (const EnumType *EnumTy = RetTy->getAs<EnumType>())
7513 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy)
7616 const RecordType *RT = Ty->getAs<RecordType>();
7650 if (const auto *EnumTy = Ty->getAs<EnumType>())
7654 if (Ty->isPromotableIntegerType()) {
7717 if (const VectorType *VT = Ty->getAs<VectorType>()) {
7731 if (const RecordType *RT = Ty->getAs<RecordType>()) {
7780 if (const RecordType *RT = RetTy->getAs<RecordType>()) {
7847 if (const RecordType *RT = Ty->getAs<RecordType>()) {
8135 if (Ty->isAnyComplexType()) {
8305 if (Ty->isVoidType())
8316 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
8320 if (Size < 64 && Ty->isIntegerType())
8536 const RecordType *RT = Ty->getAs<RecordType>();
8547 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
8572 return Ty->isPromotableIntegerType() ?
8580 if (RetTy->isAnyComplexType())
9185 if (const ArrayType *AT = QT->getAsArrayTypeUnsafe())
9192 if (const BuiltinType *BT = QT->getAs<BuiltinType>())
9195 if (const PointerType *PT = QT->getAs<PointerType>())
9198 if (const EnumType *ET = QT->getAs<EnumType>())
9201 if (const RecordType *RT = QT->getAsStructureType())
9204 if (const RecordType *RT = QT->getAsUnionType())
9207 if (const FunctionType *FT = QT->getAs<FunctionType>())
9228 if (const ArrayType *AT = QT->getAsArrayTypeUnsafe()) {
9327 bool IsInt = Ty->isIntegralOrEnumerationType();
9328 bool IsFloat = Ty->isRealFloatingType();
9356 if (auto CTy = Ty->getAs<ComplexType>()) {
9384 if (const auto *RTy = Ty->getAs<RecordType>()) {
9534 if (IsFixed && Ty->isFloatingType() && FLen >= Size && ArgFPRsLeft) {
9541 if (IsFixed && Ty->isComplexType() && FLen && ArgFPRsLeft >= 2) {
9542 QualType EltTy = Ty->castAs<ComplexType>()->getElementType();
9549 if (IsFixed && FLen && Ty->isStructureOrClassType()) {
9586 if (!isAggregateTypeForABI(Ty) && !Ty->isVectorType()) {
9588 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
9593 if (Size < XLen && Ty->isIntegralOrEnumerationType() && !MustUseStack) {
9622 if (RetTy->isVoidType())
9658 if (XLen == 64 && Ty->isUnsignedIntegerOrEnumerationType() && TySize == 32)
tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp 141 const ObjCObjectType *ObjTy = ClassRec->getAs<ObjCObjectType>();
842 bool LitIsFloat = ArgTy->isFloatingType();
946 if (T->isObjCObjectPointerType()) {
953 } else if (!T->isPointerType()) {
1009 if (MK == NSAPI::NSNumberWithBool && OrigTy->isBooleanType())
1016 if (OrigTy->getAs<EnumType>() || isEnumConstant(OrigArg))
1018 if ((MK==NSAPI::NSNumberWithInteger) == OrigTy->isSignedIntegerType() &&
1132 if (OrigTy->isArrayType())
1142 if (const PointerType *PT = OrigTy->getAs<PointerType>()) {
tools/clang/lib/Frontend/ASTUnit.cpp 2089 Context.getPreferredType()->isAnyPointerType());
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp 232 else if (TD->getUnderlyingType()->isFunctionPointerType())
508 const auto *BPT = T->castAs<BlockPointerType>();
523 if (T->isObjCQualifiedIdType()) {
528 else if (T->isObjCQualifiedClassType())
530 else if (T->isObjCObjectPointerType() &&
531 T->getPointeeType()->isObjCQualifiedInterfaceType()) {
531 T->getPointeeType()->isObjCQualifiedInterfaceType()) {
533 T->getAsObjCInterfacePointerType()) {
552 if (const PointerType *PT = OCT->getAs<PointerType>()) {
554 PT->getPointeeType()->isObjCQualifiedIdType())
622 const PointerType *PT = funcType->getAs<PointerType>();
854 if (!isa<TypedefType>(IvarT) && IvarT->isRecordType()) {
855 RecordDecl *RD = IvarT->castAs<RecordType>()->getDecl();
1206 if (T->isObjCQualifiedIdType())
1208 else if (T->isFunctionPointerType() ||
1209 T->isBlockPointerType()) {
1214 if (const PointerType* PT = retType->getAs<PointerType>())
1216 else if (const BlockPointerType *BPT = retType->getAs<BlockPointerType>())
1218 if ((FPRetType = PointeeTy->getAs<FunctionType>())) {
1291 if (PDecl->getType()->isObjCQualifiedIdType()) {
1699 if (ElementType->isObjCQualifiedIdType() ||
1700 ElementType->isObjCQualifiedInterfaceType())
1715 if (VD->getType()->isObjCQualifiedIdType() ||
1716 VD->getType()->isObjCQualifiedInterfaceType())
1962 if (const ObjCObjectPointerType *Ptr = t->getAs<ObjCObjectPointerType>()) {
2106 const auto *FT = msgSendType->castAs<FunctionType>();
2142 if (T->isObjCQualifiedIdType())
2144 if (const PointerType *PT = T->getAs<PointerType>()) {
2145 if (PT->getPointeeType()->isObjCQualifiedIdType())
2148 if (T->isObjCObjectPointerType()) {
2149 T = T->getPointeeType();
2150 return T->isObjCQualifiedInterfaceType();
2152 if (T->isArrayType()) {
2201 const FunctionType *funcType = FD->getType()->getAs<FunctionType>();
2273 const Type* TypePtr = QT->getAs<Type>();
2279 TypePtr = QT->getAs<Type>();
2376 const FunctionType *funcType = FD->getType()->getAs<FunctionType>();
2654 if (SubExpr->getType()->isIntegralType(*Context) && type->isBooleanType())
2654 if (SubExpr->getType()->isIntegralType(*Context) && type->isBooleanType())
2687 const FunctionType *FT = msgSendType->getAs<FunctionType>();
2754 expType->getPointeeType()->castAs<ObjCObjectType>()->getInterface();
2754 expType->getPointeeType()->castAs<ObjCObjectType>()->getInterface();
2808 const FunctionType *FT = msgSendType->castAs<FunctionType>();
2896 expType->getPointeeType()->castAs<ObjCObjectType>()->getInterface();
2896 expType->getPointeeType()->castAs<ObjCObjectType>()->getInterface();
2930 if (const PointerType* PT = T->getAs<PointerType>()) {
2959 const FunctionType *FT = msgSendType->castAs<FunctionType>();
3215 if (resultType->isRecordType())
3217 else if (resultType->isRealFloatingType())
3311 = Exp->getClassReceiver()->castAs<ObjCObjectType>()->getInterface();
3404 CastKind CK = recExpr->getType()->isObjCObjectPointerType()
3405 ? CK_BitCast : recExpr->getType()->isBlockPointerType()
3436 if (SubExpr->getType()->isIntegralType(*Context) &&
3437 type->isBooleanType()) {
3439 } else if (type->isObjCObjectPointerType()) {
3440 if (SubExpr->getType()->isBlockPointerType()) {
3442 } else if (SubExpr->getType()->isPointerType()) {
3455 if (CE->getType()->isObjCQualifiedIdType()) {
3459 if (userExpr->getType()->isIntegralType(*Context)) {
3461 } else if (userExpr->getType()->isBlockPointerType()) {
3463 } else if (userExpr->getType()->isPointerType()) {
3492 QualType t = PI->getType()->isObjCQualifiedIdType()
3532 const FunctionType *FT = msgSendType->castAs<FunctionType>();
3634 if (Type->isArrayType()) {
3638 else if (Type->isRecordType()) {
3639 RecordDecl *RD = Type->castAs<RecordType>()->getDecl();
3661 else if (Type->isEnumeralType()) {
3662 EnumDecl *ED = Type->castAs<EnumType>()->getDecl();
3704 else if (EleboratedType && Type->isArrayType()) {
3727 if (Type->isArrayType())
3733 if (Type->isRecordType()) {
3734 TD = Type->castAs<RecordType>()->getDecl();
3736 else if (Type->isEnumeralType()) {
3737 TD = Type->castAs<EnumType>()->getDecl();
4151 else if (VD->getType()->isBlockPointerType())
4168 else if (VD->getType()->isBlockPointerType())
4357 if (VD->getType()->isObjCObjectPointerType() ||
4358 VD->getType()->isBlockPointerType())
4507 if (T->isFunctionPointerType()) {
4509 if (const PointerType* PT = T->getAs<PointerType>()) {
4511 if (const FunctionType *FT = PointeeTy->getAs<FunctionType>()) {
4555 CPT = DRE->getType()->getAs<BlockPointerType>();
4557 CPT = MExpr->getType()->getAs<BlockPointerType>();
4563 CPT = IEXPR->getType()->getAs<BlockPointerType>();
4578 CPT = IRE->getType()->getAs<BlockPointerType>();
4581 CPT = POE->getType()->castAs<BlockPointerType>();
4586 const FunctionType *FT = CPT->getPointeeType()->getAs<FunctionType>();
4727 const Type* TypePtr = QT->getAs<Type>();
4802 const PointerType *PT = QT->getAs<PointerType>();
4804 FTP = PT->getPointeeType()->getAs<FunctionProtoType>();
4806 const BlockPointerType *BPT = QT->getAs<BlockPointerType>();
4808 FTP = BPT->getPointeeType()->getAs<FunctionProtoType>();
4820 const PointerType *PT = QT->getAs<PointerType>();
4822 FTP = PT->getPointeeType()->getAs<FunctionProtoType>();
4824 const BlockPointerType *BPT = QT->getAs<BlockPointerType>();
4826 FTP = BPT->getPointeeType()->getAs<FunctionProtoType>();
4830 if (I->isObjCQualifiedIdType())
4832 if (I->isObjCObjectPointerType() &&
4833 I->getPointeeType()->isObjCQualifiedInterfaceType())
4833 I->getPointeeType()->isObjCQualifiedInterfaceType())
5066 if (Ty->isBlockPointerType())
5130 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType())
5130 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType())
5181 BlockDeclRefs[i]->getType()->isObjCObjectPointerType() ||
5182 BlockDeclRefs[i]->getType()->isBlockPointerType())
5228 InnerBlockDeclRefs[i]->getType()->isObjCObjectPointerType() ||
5229 InnerBlockDeclRefs[i]->getType()->isBlockPointerType())
5588 else if (ND->getType()->isFunctionPointerType())
5605 else if (TD->getUnderlyingType()->isFunctionPointerType())
5632 if (CE->getCallee()->getType()->isBlockPointerType()) {
5670 if (FD->getType()->isObjCQualifiedIdType() ||
5671 FD->getType()->isObjCQualifiedInterfaceType())
5747 else if (VD->getType()->isFunctionPointerType()) {
5754 } else if (VD->getType()->isRecordType()) {
5755 RecordDecl *RD = VD->getType()->castAs<RecordType>()->getDecl();
5783 else if (TD->getUnderlyingType()->isFunctionPointerType())
7452 if (BaseExpr->getType()->isObjCObjectPointerType()) {
7454 dyn_cast<ObjCInterfaceType>(BaseExpr->getType()->getPointeeType());
7495 if (!isa<TypedefType>(IvarT) && IvarT->isRecordType()) {
7496 RecordDecl *RD = IvarT->castAs<RecordType>()->getDecl();
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp 419 const auto *BPT = T->castAs<BlockPointerType>();
433 if (T->isObjCQualifiedIdType())
435 else if (T->isObjCQualifiedClassType())
437 else if (T->isObjCObjectPointerType() &&
438 T->getPointeeType()->isObjCQualifiedInterfaceType()) {
438 T->getPointeeType()->isObjCQualifiedInterfaceType()) {
440 T->getAsObjCInterfacePointerType()) {
459 if (const PointerType *PT = OCT->getAs<PointerType>()) {
461 PT->getPointeeType()->isObjCQualifiedIdType())
558 const PointerType *PT = funcType->getAs<PointerType>();
1038 if (T->isObjCQualifiedIdType())
1040 else if (T->isFunctionPointerType() ||
1041 T->isBlockPointerType()) {
1046 if (const PointerType* PT = retType->getAs<PointerType>())
1048 else if (const BlockPointerType *BPT = retType->getAs<BlockPointerType>())
1050 if ((FPRetType = PointeeTy->getAs<FunctionType>())) {
1123 if (PDecl->getType()->isObjCQualifiedIdType()) {
1490 if (ElementType->isObjCQualifiedIdType() ||
1491 ElementType->isObjCQualifiedInterfaceType())
1506 if (VD->getType()->isObjCQualifiedIdType() ||
1507 VD->getType()->isObjCQualifiedInterfaceType())
1685 CastKind CK = syncExpr->getType()->isObjCObjectPointerType()
1687 syncExpr->getType()->isBlockPointerType()
1856 t->getAs<ObjCObjectPointerType>()) {
2021 const auto *FT = msgSendType->castAs<FunctionType>();
2058 if (T->isObjCQualifiedIdType())
2060 if (const PointerType *PT = T->getAs<PointerType>()) {
2061 if (PT->getPointeeType()->isObjCQualifiedIdType())
2064 if (T->isObjCObjectPointerType()) {
2065 T = T->getPointeeType();
2066 return T->isObjCQualifiedInterfaceType();
2068 if (T->isArrayType()) {
2117 const FunctionType *funcType = FD->getType()->getAs<FunctionType>();
2185 const Type* TypePtr = QT->getAs<Type>();
2191 TypePtr = QT->getAs<Type>();
2288 const FunctionType *funcType = FD->getType()->getAs<FunctionType>();
2608 const auto *FT = msgSendType->castAs<FunctionType>();
2642 if (resultType->isRecordType())
2644 else if (resultType->isRealFloatingType())
2740 Exp->getClassReceiver()->castAs<ObjCObjectType>()->getInterface();
2833 CastKind CK = recExpr->getType()->isObjCObjectPointerType()
2834 ? CK_BitCast : recExpr->getType()->isBlockPointerType()
2865 if (SubExpr->getType()->isIntegralType(*Context) &&
2866 type->isBooleanType()) {
2868 } else if (type->isObjCObjectPointerType()) {
2869 if (SubExpr->getType()->isBlockPointerType()) {
2871 } else if (SubExpr->getType()->isPointerType()) {
2884 if (CE->getType()->isObjCQualifiedIdType()) {
2888 if (userExpr->getType()->isIntegralType(*Context)) {
2890 } else if (userExpr->getType()->isBlockPointerType()) {
2892 } else if (userExpr->getType()->isPointerType()) {
2921 QualType t = PI->getType()->isObjCQualifiedIdType()
2961 const auto *FT = msgSendType->castAs<FunctionType>();
3361 else if (VD->getType()->isBlockPointerType())
3378 else if (VD->getType()->isBlockPointerType())
3566 VD->getType()->isObjCObjectPointerType() ||
3567 VD->getType()->isBlockPointerType())
3723 CPT = DRE->getType()->getAs<BlockPointerType>();
3725 CPT = MExpr->getType()->getAs<BlockPointerType>();
3731 CPT = IEXPR->getType()->getAs<BlockPointerType>();
3746 CPT = IRE->getType()->getAs<BlockPointerType>();
3749 CPT = POE->getType()->castAs<BlockPointerType>();
3754 const FunctionType *FT = CPT->getPointeeType()->getAs<FunctionType>();
3896 const Type* TypePtr = QT->getAs<Type>();
3956 const PointerType *PT = QT->getAs<PointerType>();
3958 FTP = PT->getPointeeType()->getAs<FunctionProtoType>();
3960 const BlockPointerType *BPT = QT->getAs<BlockPointerType>();
3962 FTP = BPT->getPointeeType()->getAs<FunctionProtoType>();
3974 const PointerType *PT = QT->getAs<PointerType>();
3976 FTP = PT->getPointeeType()->getAs<FunctionProtoType>();
3978 const BlockPointerType *BPT = QT->getAs<BlockPointerType>();
3980 FTP = BPT->getPointeeType()->getAs<FunctionProtoType>();
3984 if (I->isObjCQualifiedIdType())
3986 if (I->isObjCObjectPointerType() &&
3987 I->getPointeeType()->isObjCQualifiedInterfaceType())
3987 I->getPointeeType()->isObjCQualifiedInterfaceType())
4223 if (Ty->isBlockPointerType())
4263 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType())
4263 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType())
4335 BlockDeclRefs[i]->getType()->isObjCObjectPointerType() ||
4336 BlockDeclRefs[i]->getType()->isBlockPointerType())
4381 InnerBlockDeclRefs[i]->getType()->isObjCObjectPointerType() ||
4382 InnerBlockDeclRefs[i]->getType()->isBlockPointerType())
4690 else if (ND->getType()->isFunctionPointerType())
4707 else if (TD->getUnderlyingType()->isFunctionPointerType())
4734 if (CE->getCallee()->getType()->isBlockPointerType()) {
4768 if (FD->getType()->isObjCQualifiedIdType() ||
4769 FD->getType()->isObjCQualifiedInterfaceType())
4845 else if (VD->getType()->isFunctionPointerType()) {
4852 } else if (VD->getType()->isRecordType()) {
4853 RecordDecl *RD = VD->getType()->castAs<RecordType>()->getDecl();
4881 else if (TD->getUnderlyingType()->isFunctionPointerType())
5805 if (BaseExpr->getType()->isObjCObjectPointerType()) {
5807 dyn_cast<ObjCInterfaceType>(BaseExpr->getType()->getPointeeType());
5846 if (BaseExpr->getType()->isObjCObjectPointerType()) {
5848 dyn_cast<ObjCInterfaceType>(BaseExpr->getType()->getPointeeType());
tools/clang/lib/Index/IndexBody.cpp 102 if (auto *CXXRD = BaseTy->getPointeeCXXRecordDecl())
276 if (const auto *Ptr = recT->getAs<ObjCObjectPointerType>())
279 addReceivers(recT->getAs<ObjCObjectType>());
tools/clang/lib/Index/IndexDecl.cpp 391 if (auto *TT = TInfo->getType()->getAs<TypedefType>()) {
tools/clang/lib/Index/IndexSymbol.cpp 36 if (!D->getReturnType()->isVoidType())
tools/clang/lib/Index/IndexTypeSourceInfo.cpp 59 TagDecl *Underlying = ND->getUnderlyingType()->getAsTagDecl();
66 if (auto *CD = TL.getType()->getAsCXXRecordDecl()) {
tools/clang/lib/Index/USRGeneration.cpp 651 if (const PackExpansionType *Expansion = T->getAs<PackExpansionType>()) {
656 if (const BuiltinType *BT = T->getAs<BuiltinType>()) {
780 if (const PointerType *PT = T->getAs<PointerType>()) {
785 if (const ObjCObjectPointerType *OPT = T->getAs<ObjCObjectPointerType>()) {
790 if (const RValueReferenceType *RT = T->getAs<RValueReferenceType>()) {
795 if (const ReferenceType *RT = T->getAs<ReferenceType>()) {
800 if (const FunctionProtoType *FT = T->getAs<FunctionProtoType>()) {
813 if (const BlockPointerType *BT = T->getAs<BlockPointerType>()) {
818 if (const ComplexType *CT = T->getAs<ComplexType>()) {
823 if (const TagType *TT = T->getAs<TagType>()) {
828 if (const ObjCInterfaceType *OIT = T->getAs<ObjCInterfaceType>()) {
833 if (const ObjCObjectType *OIT = T->getAs<ObjCObjectType>()) {
840 if (const TemplateTypeParmType *TTP = T->getAs<TemplateTypeParmType>()) {
845 = T->getAs<TemplateSpecializationType>()) {
853 if (const DependentNameType *DNT = T->getAs<DependentNameType>()) {
859 if (const InjectedClassNameType *InjT = T->getAs<InjectedClassNameType>()) {
863 if (const auto *VT = T->getAs<VectorType>()) {
864 Out << (T->isExtVectorType() ? ']' : '[');
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp 114 FnD->getAsFunction()->getReturnType()->getContainedAutoType()) &&
tools/clang/lib/Parse/ParseDecl.cpp 2406 getCurScope(), ThisVarDecl->getType()->getCanonicalTypeInternal(),
2426 getCurScope(), ThisVarDecl->getType()->getCanonicalTypeInternal(),
tools/clang/lib/Parse/ParseExpr.cpp 1026 if (Typ.get()->isObjCObjectOrInterfaceType()) {
1495 if (!Ty.isNull() && Ty->isFunctionType()) {
2551 if (QT->isVectorType())
tools/clang/lib/Parse/ParseExprCXX.cpp 1852 getCurScope(), TypeRep.get()->getCanonicalTypeInternal(),
3028 getCurScope(), TypeRep.get()->getCanonicalTypeInternal(),
tools/clang/lib/Parse/ParseObjc.cpp 1630 if (!BaseT.isNull() && BaseT->acceptsObjCTypeParams()) {
2988 if (!Type.get().isNull() && Type.get()->isObjCObjectOrInterfaceType()) {
tools/clang/lib/Parse/ParseOpenMP.cpp 440 getCurScope(), OmpPrivParm->getType()->getCanonicalTypeInternal(),
tools/clang/lib/Parse/Parser.cpp 1647 (Ty.get()->isObjCObjectType() ||
1648 Ty.get()->isObjCObjectPointerType())) {
1896 (Ty.get()->isObjCObjectType() ||
1897 Ty.get()->isObjCObjectPointerType())) {
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp 345 if (const auto *Ty = FD->getTypeSourceInfo()->getType()->
370 const auto *FPT = FD->getType()->castAs<FunctionProtoType>();
650 ReturnsVoid = FD->getReturnType()->isVoidType();
654 ReturnsVoid = MD->getReturnType()->isVoidType();
659 BlockType->getPointeeType()->getAs<FunctionType>()) {
659 BlockType->getPointeeType()->getAs<FunctionType>()) {
660 if (FT->getReturnType()->isVoidType())
756 if (VariableTy->isBlockPointerType() &&
1013 if (VD->getType()->isBlockPointerType() && !VD->hasAttr<BlocksAttr>())
tools/clang/lib/Sema/CodeCompleteConsumer.cpp 499 return Function->getType()->getAs<FunctionType>();
504 ->getAs<FunctionType>();
tools/clang/lib/Sema/DeclSpec.cpp 373 return E->getType()->isFunctionType();
389 return QT->isFunctionType();
tools/clang/lib/Sema/JumpDiagnostics.cpp 138 if (VD->getType()->isVariablyModifiedType())
211 if (TD->getUnderlyingType()->isVariablyModifiedType())
tools/clang/lib/Sema/Sema.cpp 464 Optional<NullabilityKind> ExprNullability = SrcType->getNullability(Context);
468 Optional<NullabilityKind> TypeNullability = DstType->getNullability(Context);
485 if (E->IgnoreParenImpCasts()->getType()->isNullPtrType())
561 switch (ScalarTy->getScalarTypeKind()) {
651 !isExternalFormalLinkage(VD->getType()->getLinkage()) &&
732 S.Diag(VD->getLocation(), isExternallyVisible(VD->getType()->getLinkage())
833 if (CXXRecordDecl *FriendD = TSI->getType()->getAsCXXRecordDecl())
1684 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
1686 auto *FPT = DD->getType()->getAs<FunctionProtoType>();
1724 if (VD->getType()->isStructureOrClassType())
2010 QualType PointeeTy = ExprTy->getPointeeType();
2012 FunTy = PointeeTy->getAs<FunctionType>();
2014 FunTy = ExprTy->getAs<FunctionType>();
2286 if (QT->isExtVectorType()) {
2287 auto TypePtr = QT->castAs<ExtVectorType>()->getElementType().getTypePtr();
tools/clang/lib/Sema/SemaAccess.cpp 301 if (const RecordType *RT = T->getAs<RecordType>()) {
304 = T->getAs<InjectedClassNameType>()) {
307 assert(T->isDependentType() && "non-dependent base wasn't a record?");
548 return MatchesFriend(S, EC, T->getType()->getCanonicalTypeUnqualified());
654 if (const RecordType *RT = T->getAs<RecordType>()) {
657 = T->getAs<InjectedClassNameType>()) {
660 assert(T->isDependentType() && "non-dependent base wasn't a record?");
1554 BaseType = BaseType->castAs<PointerType>()->getPointeeType();
1755 const RecordType *RT = ObjectExpr->getType()->castAs<RecordType>();
1837 BaseD = cast<CXXRecordDecl>(Base->castAs<RecordType>()->getDecl());
1838 DerivedD = cast<CXXRecordDecl>(Derived->castAs<RecordType>()->getDecl());
tools/clang/lib/Sema/SemaAttr.cpp 141 CXXRecordDecl *RD = Canonical->getAsCXXRecordDecl();
tools/clang/lib/Sema/SemaCUDA.cpp 305 const RecordType *BaseType = B->getType()->getAs<RecordType>();
348 Context.getBaseElementType(F->getType())->getAs<RecordType>();
470 if (CXXRecordDecl *RD = BS.getType()->getAsCXXRecordDecl())
479 ->getBaseElementTypeUnsafe()
508 Context, VD->getType()->isReferenceType());
512 if (CXXRecordDecl *RD = VD->getType()->getAsCXXRecordDecl())
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp 32 const Type *Ty = T->getCanonicalTypeInternal().getTypePtr();
54 if (!T->isDependentType())
55 if (const TagType *Tag = T->getAs<TagType>())
213 tag = type->getAsTagDecl();
331 if (T->isDependentType())
334 if (TD->getUnderlyingType()->isRecordType())
336 if (TD->getUnderlyingType()->isEnumeralType()) {
397 isDependent = ObjectType->isDependentType();
506 isDependent = ObjectType->isDependentType();
759 if (T->isEnumeralType())
858 if (!T->isDependentType() && !T->getAs<TagType>()) {
858 if (!T->isDependentType() && !T->getAs<TagType>()) {
962 if (!T->isDependentType() && !T->getAs<TagType>()) {
962 if (!T->isDependentType() && !T->getAs<TagType>()) {
tools/clang/lib/Sema/SemaCast.cpp 63 src.get()->getType()->getAsPlaceholderType()) {
266 DestType->isDependentType() || Ex.get()->isTypeDependent();
355 if (!Operand->isTypeDependent() && !TSI->getType()->isDependentType()) {
388 if (!destType->isRecordType() && !srcType->isRecordType())
388 if (!destType->isRecordType() && !srcType->isRecordType())
459 if (auto Ptr = From->getAs<PointerType>()) {
464 if (auto Ptr = To->getAs<PointerType>()) {
469 auto RecFrom = From->getAs<RecordType>();
470 auto RecTo = To->getAs<RecordType>();
517 if (T->isAnyPointerType()) return Ptr;
518 if (T->isMemberPointerType()) return MemPtr;
519 if (T->isBlockPointerType()) return BlockPtr;
522 if (T->isConstantArrayType() || T->isIncompleteArrayType()) return Array;
522 if (T->isConstantArrayType() || T->isIncompleteArrayType()) return Array;
529 return T->getPointeeType();
534 if (T2->isReferenceType()) {
539 T2 = T2->getPointeeType();
602 if (!DestType->isReferenceType()) {
603 assert((SrcType->isAnyPointerType() || SrcType->isMemberPointerType() ||
603 assert((SrcType->isAnyPointerType() || SrcType->isMemberPointerType() ||
604 SrcType->isBlockPointerType()) &&
606 assert((DestType->isAnyPointerType() || DestType->isMemberPointerType() ||
606 assert((DestType->isAnyPointerType() || DestType->isMemberPointerType() ||
607 DestType->isBlockPointerType()) &&
636 if (UnwrappedSrcType->isObjCObjectType() ||
637 UnwrappedDestType->isObjCObjectType())
725 const PointerType *DestPointer = DestType->getAs<PointerType>();
729 } else if ((DestReference = DestType->getAs<ReferenceType>())) {
738 const RecordType *DestRecord = DestPointee->getAs<RecordType>();
739 if (DestPointee->isVoidType()) {
762 if (const PointerType *SrcPointer = SrcType->getAs<PointerType>()) {
785 const RecordType *SrcRecord = SrcPointee->getAs<RecordType>();
802 assert((DestRecord || DestPointee->isVoidType()) &&
848 if (!Self.getLangOpts().RTTI && !DestPointee->isVoidType()) {
889 const CXXRecordDecl *SrcPointeeRD = SrcType->getPointeeCXXRecordDecl();
891 SrcPointeeRD ? SrcPointeeRD : SrcType->getAsCXXRecordDecl();
899 const CXXRecordDecl *DestRD = DestType->getPointeeCXXRecordDecl();
931 const CXXRecordDecl *BaseRD = IElem->Base->getType()->getAsCXXRecordDecl();
1030 if (DestType->isVoidType()) {
1046 if (ValueKind == VK_RValue && !DestType->isRecordType() &&
1083 auto *SrcPtrType = SrcType->getAs<PointerType>();
1086 auto *DestPtrType = DestType->getAs<PointerType>();
1161 if (const EnumType *Enum = SrcType->getAs<EnumType>()) {
1163 if (DestType->isBooleanType()) {
1166 } else if (DestType->isIntegralType(Self.Context)) {
1169 } else if (DestType->isRealFloatingType()) {
1184 if (DestType->isEnumeralType()) {
1185 if (SrcType->isIntegralOrEnumerationType()) {
1188 } else if (SrcType->isRealFloatingType()) {
1212 if (const PointerType *SrcPointer = SrcType->getAs<PointerType>()) {
1214 if (SrcPointee->isVoidType()) {
1215 if (const PointerType *DestPointer = DestType->getAs<PointerType>()) {
1217 if (DestPointee->isIncompleteOrObjectType()) {
1243 DestPointee->isFunctionType()) {
1249 else if (DestType->isObjCObjectPointerType()) {
1255 else if (CStyle && DestType->isBlockPointerType()) {
1263 if (SrcType->isObjCObjectPointerType() &&
1264 DestType->isObjCObjectPointerType()) {
1276 if (auto SrcPointer = SrcType->getAs<PointerType>())
1277 if (auto DestPointer = DestType->getAs<PointerType>())
1278 if (SrcPointer->getPointeeType()->getAs<RecordType>() &&
1279 DestPointer->getPointeeType()->getAs<RecordType>())
1294 const RValueReferenceType *R = DestType->getAs<RValueReferenceType>();
1359 const ReferenceType *DestReference = DestType->getAs<ReferenceType>();
1396 const PointerType *DestPointer = DestType->getAs<PointerType>();
1401 const PointerType *SrcPointer = SrcType->getAs<PointerType>();
1535 const MemberPointerType *DestMemPtr = DestType->getAs<MemberPointerType>();
1552 const MemberPointerType *SrcMemPtr = SrcType->getAs<MemberPointerType>();
1652 if (DestType->isRecordType()) {
1683 if (InitSeq.Failed() && (CStyle || !DestType->isReferenceType()))
1710 if (const ReferenceType *DestTypeTmp =DestType->getAs<ReferenceType>()) {
1731 if (!SrcType->isRecordType()) {
1760 if (!DestType->isPointerType() &&
1761 !DestType->isMemberPointerType() &&
1762 !DestType->isObjCObjectPointerType()) {
1772 if (DestType->isFunctionPointerType() ||
1773 DestType->isMemberFunctionPointerType()) {
1818 if (!SrcType->getAs<PointerType>() || !DestType->getAs<PointerType>()) {
1818 if (!SrcType->getAs<PointerType>() || !DestType->getAs<PointerType>()) {
1821 SrcTy = SrcType->getPointeeType();
1822 DestTy = DestType->getPointeeType();
1824 if (!DestType->getAs<ReferenceType>()) {
1828 DestTy = DestType->getPointeeType();
1836 if (DestTy->isAnyCharacterType() || DestTy->isVoidType() ||
1836 if (DestTy->isAnyCharacterType() || DestTy->isVoidType() ||
1837 SrcTy->isAnyCharacterType() || SrcTy->isVoidType()) {
1837 SrcTy->isAnyCharacterType() || SrcTy->isVoidType()) {
1841 if (SrcTy->getAs<TagType>() || DestTy->getAs<TagType>()) {
1841 if (SrcTy->getAs<TagType>() || DestTy->getAs<TagType>()) {
1846 if ((SrcTy->isUnsignedIntegerType() && DestTy->isSignedIntegerType()) ||
1846 if ((SrcTy->isUnsignedIntegerType() && DestTy->isSignedIntegerType()) ||
1847 (SrcTy->isSignedIntegerType() && DestTy->isUnsignedIntegerType())) {
1847 (SrcTy->isSignedIntegerType() && DestTy->isUnsignedIntegerType())) {
1861 if (const PointerType *SrcPtrTy = SrcType->getAs<PointerType>())
1865 DT = DestType->getPointeeType();
1866 if (!DT.getUnqualifiedType()->isVoidType())
1881 !SrcType->isFunctionPointerType() || !DstType->isFunctionPointerType())
1881 !SrcType->isFunctionPointerType() || !DstType->isFunctionPointerType())
1884 SrcType->castAs<PointerType>()->getPointeeType()->castAs<FunctionType>();
1884 SrcType->castAs<PointerType>()->getPointeeType()->castAs<FunctionType>();
1886 DstType->castAs<PointerType>()->getPointeeType()->castAs<FunctionType>();
1886 DstType->castAs<PointerType>()->getPointeeType()->castAs<FunctionType>();
1971 if (CStyle && SrcType->isIntegralType(Self.Context)
1972 && !SrcType->isBooleanType()
1973 && !SrcType->isEnumeralType()
1982 unsigned Diag = DestType->isVoidPointerType() ?
2038 if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {
2086 const MemberPointerType *DestMemPtr = DestType->getAs<MemberPointerType>(),
2087 *SrcMemPtr = SrcType->getAs<MemberPointerType>();
2127 if (SrcType->isNullPtrType() && DestType->isIntegralType(Self.Context)) {
2127 if (SrcType->isNullPtrType() && DestType->isIntegralType(Self.Context)) {
2143 bool destIsVector = DestType->isVectorType();
2144 bool srcIsVector = SrcType->isVectorType();
2149 if ((!destIsVector && !DestType->isIntegralType(Self.Context)) ||
2150 (!srcIsVector && !SrcType->isIntegralType(Self.Context)))
2182 if (SrcType->isIntegralOrEnumerationType() ||
2183 SrcType->isAnyPointerType() ||
2184 SrcType->isMemberPointerType() ||
2185 SrcType->isBlockPointerType()) {
2191 bool destIsPtr = DestType->isAnyPointerType() ||
2192 DestType->isBlockPointerType();
2193 bool srcIsPtr = SrcType->isAnyPointerType() ||
2194 SrcType->isBlockPointerType();
2201 if (DestType->isIntegralType(Self.Context)) {
2207 !DestType->isBooleanType();
2218 if (SrcType->isIntegralOrEnumerationType()) {
2237 if ((SrcType->isBlockPointerType() && DestType->isObjCObjectPointerType()) ||
2237 if ((SrcType->isBlockPointerType() && DestType->isObjCObjectPointerType()) ||
2238 (DestType->isBlockPointerType() && SrcType->isObjCObjectPointerType()))
2238 (DestType->isBlockPointerType() && SrcType->isObjCObjectPointerType()))
2251 assert(SrcType->isPointerType() && DestType->isPointerType());
2251 assert(SrcType->isPointerType() && DestType->isPointerType());
2253 !DestType->getPointeeType().getQualifiers().isAddressSpaceSupersetOf(
2254 SrcType->getPointeeType().getQualifiers())) {
2259 } else if (DestType->isObjCObjectPointerType()) {
2261 } else if (DestType->isBlockPointerType()) {
2262 if (!SrcType->isBlockPointerType()) {
2273 if (CStyle && DestType->isObjCObjectPointerType()) {
2284 if (SrcType->isFunctionPointerType()) {
2285 if (DestType->isFunctionPointerType()) {
2304 if (DestType->isFunctionPointerType()) {
2332 auto SrcPtrType = SrcType->getAs<PointerType>();
2335 auto DestPtrType = DestType->getAs<PointerType>();
2421 if (DestType->isVoidType()) {
2438 if (DestType->isDependentType() || SrcExpr.get()->isTypeDependent() ||
2444 if (ValueKind == VK_RValue && !DestType->isRecordType() &&
2452 if (const VectorType *vecTy = DestType->getAs<VectorType>())
2454 && (SrcExpr.get()->getType()->isIntegerType()
2455 || SrcExpr.get()->getType()->isFloatingType())) {
2556 if (DestType.getUnqualifiedType()->isVoidType())
2558 if ((SrcType->isAnyPointerType() || SrcType->isBlockPointerType())
2558 if ((SrcType->isAnyPointerType() || SrcType->isBlockPointerType())
2559 && (DestType->isAnyPointerType() || DestType->isBlockPointerType()))
2559 && (DestType->isAnyPointerType() || DestType->isBlockPointerType()))
2561 if (SrcType->isIntegerType() && DestType->isIntegerType() &&
2561 if (SrcType->isIntegerType() && DestType->isIntegerType() &&
2562 (SrcType->isBooleanType() == DestType->isBooleanType()) &&
2562 (SrcType->isBooleanType() == DestType->isBooleanType()) &&
2563 (SrcType->isEnumeralType() == DestType->isEnumeralType()))
2563 (SrcType->isEnumeralType() == DestType->isEnumeralType()))
2565 if (SrcType->isRealFloatingType() && DestType->isRealFloatingType())
2565 if (SrcType->isRealFloatingType() && DestType->isRealFloatingType())
2567 if (SrcType->isEnumeralType() && DestType->isEnumeralType())
2567 if (SrcType->isEnumeralType() && DestType->isEnumeralType())
2569 if (SrcType->isComplexType() && DestType->isComplexType())
2569 if (SrcType->isComplexType() && DestType->isComplexType())
2571 if (SrcType->isComplexIntegerType() && DestType->isComplexIntegerType())
2571 if (SrcType->isComplexIntegerType() && DestType->isComplexIntegerType())
2593 if (DestType->isVoidType()) {
2619 assert(!SrcType->isPlaceholderType());
2631 if (!DestType->isScalarType() && !DestType->isVectorType()) {
2631 if (!DestType->isScalarType() && !DestType->isVectorType()) {
2632 const RecordType *DestRecordTy = DestType->getAs<RecordType>();
2659 if (Self.getLangOpts().OpenCL && DestType->isEventT()) {
2685 if (!SrcType->isScalarType() && !SrcType->isVectorType()) {
2685 if (!SrcType->isScalarType() && !SrcType->isVectorType()) {
2693 if (DestType->isExtVectorType()) {
2698 if (const VectorType *DestVecTy = DestType->getAs<VectorType>()) {
2700 (SrcType->isIntegerType() || SrcType->isFloatingType())) {
2700 (SrcType->isIntegerType() || SrcType->isFloatingType())) {
2709 if (SrcType->isVectorType()) {
2728 if (!DestType->isArithmeticType()) {
2729 if (!SrcType->isIntegralType(Self.Context) && SrcType->isArithmeticType()) {
2729 if (!SrcType->isIntegralType(Self.Context) && SrcType->isArithmeticType()) {
2738 } else if (!SrcType->isArithmeticType()) {
2739 if (!DestType->isIntegralType(Self.Context) &&
2740 DestType->isArithmeticType()) {
2751 if (DestType->isHalfType()) {
2765 const PointerType *CastPtr = DestType->getAs<PointerType>();
2767 if (const PointerType *ExprPtr = SrcType->getAs<PointerType>()) {
2770 if (CastPtr->getPointeeType()->isObjCLifetimeType() &&
2771 ExprPtr->getPointeeType()->isObjCLifetimeType() &&
2850 if (!((SrcType->isAnyPointerType() && DestType->isAnyPointerType()) ||
2850 if (!((SrcType->isAnyPointerType() && DestType->isAnyPointerType()) ||
2851 DestType->isLValueReferenceType()))
tools/clang/lib/Sema/SemaChecking.cpp 137 if (!Ty->isIntegerType()) {
212 if (!Ty->isIntegerType()) {
231 const auto *PtrTy = Ty->getAs<PointerType>();
232 if (!(PtrTy && PtrTy->getPointeeType()->isIntegerType() &&
265 if (CE->getCallee()->getType()->isBlockPointerType()) {
288 if (!ChainResult.get()->getType()->isPointerType()) {
478 return Arg->getType()->isBlockPointerType();
487 BPT->getPointeeType()->castAs<FunctionProtoType>()->getParamTypes();
494 if (!(*I)->isPointerType() || !(*I)->getPointeeType()->isVoidType() ||
494 if (!(*I)->isPointerType() || !(*I)->getPointeeType()->isVoidType() ||
494 if (!(*I)->isPointerType() || !(*I)->getPointeeType()->isVoidType() ||
495 (*I)->getPointeeType().getQualifiers().getAddressSpace() !=
586 BPT->getPointeeType()->castAs<FunctionProtoType>()->getNumParams();
644 if (!Arg0->getType()->isQueueT()) {
652 if (!Arg1->getType()->isIntegerType()) {
679 if (BPT->getPointeeType()->castAs<FunctionProtoType>()->getNumParams() > 0) {
703 if (!Arg3->getType()->isIntegerType()) {
716 !Arg4->getType()->getPointeeOrArrayElementType()->isClkEventT()) {
727 !(Arg5->getType()->isPointerType() &&
728 Arg5->getType()->getPointeeType()->isClkEventT())) {
728 Arg5->getType()->getPointeeType()->isClkEventT())) {
757 if (!Arg0->getType()->isPipeType()) {
809 const PointerType *ArgTy = ArgIdx->getType()->getAs<PointerType>();
814 EltTy, ArgTy->getPointeeType()->getCanonicalTypeInternal())) {
847 if (!Call->getArg(1)->getType()->isReserveIDT()) {
856 if (!Arg2->getType()->isIntegerType() &&
857 !Arg2->getType()->isUnsignedIntegerType()) {
890 if (!Call->getArg(1)->getType()->isIntegerType() &&
891 !Call->getArg(1)->getType()->isUnsignedIntegerType()) {
919 if (!Call->getArg(1)->getType()->isReserveIDT()) {
938 if (!Call->getArg(0)->getType()->isPipeType()) {
962 if (!RT->isPointerType() || RT->getPointeeType()
962 if (!RT->isPointerType() || RT->getPointeeType()
969 if (RT->getPointeeType().getAddressSpace() != LangAS::opencl_generic) {
976 RT = RT->getPointeeType();
1008 if (const ArrayType *Ty = ArgTy->getAsArrayTypeUnsafe())
1010 if (ArgTy->isFunctionType()) {
1019 if (!ParamTy->isPointerType())
1021 if (ParamTy->isFunctionPointerType())
1023 if (ParamTy->isVoidPointerType())
1039 if (S.RequireCompleteType(TheCall->getBeginLoc(), ParamTy->getPointeeType(),
1043 assert(ParamTy->getPointeeType()->isObjectType() &&
1043 assert(ParamTy->getPointeeType()->isObjectType() &&
1379 if (!PtrArgType->isPointerType() ||
1380 !PtrArgType->getPointeeType()->isRecordType()) {
1380 !PtrArgType->getPointeeType()->isRecordType()) {
1390 if (!FnPtrArgType->isPointerType()) {
1398 FnPtrArgType->getPointeeType()->getAs<FunctionType>();
1398 FnPtrArgType->getPointeeType()->getAs<FunctionType>();
1416 !PT->isPointerType() || !PT->getPointeeType()->isCharType() ||
1416 !PT->isPointerType() || !PT->getPointeeType()->isCharType() ||
1416 !PT->isPointerType() || !PT->getPointeeType()->isCharType() ||
1417 !PT->getPointeeType().isConstQualified()) {
1760 const PointerType *pointerType = PointerArg->getType()->getAs<PointerType>();
1794 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
1794 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
1795 !ValType->isBlockPointerType() && !ValType->isFloatingType()) {
1795 !ValType->isBlockPointerType() && !ValType->isFloatingType()) {
1971 if (Arg->getType()->getAsPlaceholderType() ||
4113 = Expr->IgnoreImplicit()->getType()->getNullability(S.Context)) {
4120 if (const RecordType *UT = Expr->getType()->getAsUnionType()) {
4198 if (auto nullability = type->getNullability(ctx))
4265 if (auto pointerType = type->getAs<PointerType>())
4267 else if (auto blockType = type->getAs<BlockPointerType>())
4272 Proto = type->getAs<FunctionProtoType>();
4449 if (!Ty->isBlockPointerType() && !Ty->isFunctionPointerType() &&
4449 if (!Ty->isBlockPointerType() && !Ty->isFunctionPointerType() &&
4450 !Ty->isFunctionProtoType())
4456 } else if (Ty->isBlockPointerType()) {
4693 const PointerType *pointerType = Ptr->getType()->getAs<PointerType>();
4704 if (!AtomTy->isAtomicType()) {
4716 ValType = AtomTy->castAs<AtomicType>()->getValueType();
4728 if (IsAddSub && !ValType->isIntegerType()
4729 && !ValType->isPointerType()) {
4735 const BuiltinType *BT = ValType->getAs<BuiltinType>();
4742 if (!IsAddSub && !IsMinMax && !ValType->isIntegerType()) {
4747 if (IsC11 && ValType->isPointerType() &&
4748 RequireCompleteType(Ptr->getBeginLoc(), ValType->getPointeeType(),
4752 } else if (IsN && !ValType->isIntegerType() && !ValType->isPointerType()) {
4752 } else if (IsN && !ValType->isIntegerType() && !ValType->isPointerType()) {
4761 !AtomTy->isScalarType()) {
4865 if (Form == Init || (Form == Arithmetic && ValType->isIntegerType()))
4883 ValArg->getType()->getAs<PointerType>()) {
5049 const PointerType *pointerType = FirstArg->getType()->getAs<PointerType>();
5057 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
5057 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
5058 !ValType->isBlockPointerType()) {
5420 const PointerType *pointerType = PointerArg->getType()->getAs<PointerType>();
5431 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
5431 if (!ValType->isIntegerType() && !ValType->isAnyPointerType() &&
5432 !ValType->isBlockPointerType() && !ValType->isFloatingType() &&
5432 !ValType->isBlockPointerType() && !ValType->isFloatingType() &&
5433 !ValType->isVectorType()) {
5525 CC = FD->getType()->castAs<FunctionType>()->getCallConv();
5647 else if (IsCRegister || Type->isReferenceType() ||
5648 Type->isSpecificBuiltinType(BuiltinType::Float) || [=] {
5651 if (!Type->isPromotableIntegerType())
5653 if (!Type->isEnumeralType())
5655 const EnumDecl *ED = Type->castAs<EnumType>()->getDecl();
5660 if (Type->isReferenceType()) Reason = 1;
5751 if (Res.isNull() || !Res->isRealFloatingType())
5782 if (!OrigArg->getType()->isRealFloatingType())
5793 if (CastArg->getType()->isSpecificBuiltinType(BuiltinType::Float)) {
5795 (Cast->getType()->isSpecificBuiltinType(BuiltinType::Double) ||
5796 Cast->getType()->isSpecificBuiltinType(BuiltinType::Float) ||
5797 Cast->getType()->isSpecificBuiltinType(BuiltinType::LongDouble)) &&
5844 if ((!Arg1Ty->isVectorType() && !Arg1Ty->isDependentType()) ||
5844 if ((!Arg1Ty->isVectorType() && !Arg1Ty->isDependentType()) ||
5845 (!Arg2Ty->isVectorType() && !Arg2Ty->isDependentType())) {
5845 (!Arg2Ty->isVectorType() && !Arg2Ty->isDependentType())) {
5888 if (!LHSType->isVectorType() || !RHSType->isVectorType())
5888 if (!LHSType->isVectorType() || !RHSType->isVectorType())
5895 numElements = LHSType->castAs<VectorType>()->getNumElements();
5902 if (!RHSType->hasIntegerRepresentation() ||
5903 RHSType->castAs<VectorType>()->getNumElements() != numElements)
5916 QualType eltType = LHSType->castAs<VectorType>()->getElementType();
5964 if (!SrcTy->isVectorType() && !SrcTy->isDependentType())
5964 if (!SrcTy->isVectorType() && !SrcTy->isDependentType())
5968 if (!DstTy->isVectorType() && !DstTy->isDependentType())
5968 if (!DstTy->isVectorType() && !DstTy->isDependentType())
5972 if (!SrcTy->isDependentType() && !DstTy->isDependentType()) {
5972 if (!SrcTy->isDependentType() && !DstTy->isDependentType()) {
5973 unsigned SrcElts = SrcTy->castAs<VectorType>()->getNumElements();
5974 unsigned DstElts = DstTy->castAs<VectorType>()->getNumElements();
6355 if (!FirstArgType->isAnyPointerType())
6364 if (!SecArgType->isIntegerType())
6382 if (!FirstArgType->isAnyPointerType())
6404 if (!FirstArgType->isAnyPointerType())
6409 if (!SecArgType->isIntegerType())
6426 if (!FirstArgType->isAnyPointerType())
6455 if (!ArgTypeA->isAnyPointerType() && !isNull(ArgA))
6459 if (!ArgTypeB->isAnyPointerType() && !isNull(ArgB))
6464 if (ArgTypeA->isAnyPointerType() && !isNull(ArgA) &&
6465 ArgTypeB->isAnyPointerType() && !isNull(ArgB)) {
6466 QualType pointeeA = ArgTypeA->getPointeeType();
6467 QualType pointeeB = ArgTypeB->getPointeeType();
6478 if (!ArgTypeA->isAnyPointerType() && !ArgTypeB->isAnyPointerType())
6478 if (!ArgTypeA->isAnyPointerType() && !ArgTypeB->isAnyPointerType())
6895 } else if (const PointerType *PT = T->getAs<PointerType>()) {
6898 } else if (T->isObjCObjectPointerType()) {
7901 const RecordType *RT = Ty->getAs<RecordType>();
8216 while (const TypedefType *UserTy = TyTy->getAs<TypedefType>()) {
8276 From->isPromotableIntegerType() &&
8281 if (const auto *VecTy = From->getAs<ExtVectorType>())
8283 if (const auto *VecTy = To->getAs<ExtVectorType>())
8365 if (auto EnumTy = ExprTy->getAs<EnumType>()) {
8376 if (ExprTy->isIntegralOrUnscopedEnumerationType() &&
8377 !ExprTy->isCharType()) {
8561 if (ExprTy->isObjCObjectType())
8922 const FunctionProtoType *FT = BuiltinType->getAs<FunctionProtoType>();
8960 if (T->isIntegralOrEnumerationType())
8962 if (T->isRealFloatingType())
8964 if (T->isAnyComplexType())
9074 if (S.getLangOpts().CPlusPlus && !ArgType->isAnyComplexType()) {
9076 if (ArgType->isIntegralOrEnumerationType()) {
9078 } else if (ArgType->isRealFloatingType()) {
9180 if (ArgType->isUnsignedIntegerType()) {
9192 if (ArgType->isPointerType() || ArgType->canDecayToPointerType()) {
9192 if (ArgType->isPointerType() || ArgType->canDecayToPointerType()) {
9194 if (ArgType->isFunctionType())
9196 else if (ArgType->isArrayType())
9264 if (!ArgType->isUnsignedIntegerType()) return;
9346 const Type *Ty = T->getBaseElementTypeUnsafe();
9421 for (const FieldDecl *FD : FT->castAs<RecordType>()->getDecl()->fields())
9463 for (const FieldDecl *FD : FT->castAs<RecordType>()->getDecl()->fields())
9611 if (BId == Builtin::BIbzero && !FirstArgTy->getAs<PointerType>())
9620 if (const PointerType *DestPtrTy = DestTy->getAs<PointerType>()) {
9625 if (PointeeTy->isVoidType())
9650 if (!PointeeTy->isIncompleteType() &&
9691 if (PointeeTy->isRecordType() &&
9701 } else if (DestTy->isArrayType()) {
9738 else if (const auto *RT = PointeeTy->getAs<RecordType>()) {
9797 } else if (!Ty->isVariableArrayType()) {
9997 = FD->getType()->castAs<FunctionProtoType>();
10074 T->getCanonicalTypeInternal().getTypePtr());
10195 return IntRange(MaxWidth, Ty->isUnsignedIntegerOrEnumerationType());
10200 if (const AtomicType *AtomicRHS = Ty->getAs<AtomicType>())
10352 if (BO->getLHS()->getType()->isPointerType())
10428 BitField->getType()->isUnsignedIntegerOrEnumerationType());
10501 return E->getType()->isIntegerType() &&
10502 (!E->getType()->isSignedIntegerType() ||
10503 !E->IgnoreParenImpCasts()->getType()->isSignedIntegerType());
10640 return E->getType()->isEnumeralType();
10676 if (Constant->getType()->isEnumeralType() &&
10683 if (const auto *AT = OtherT->getAs<AtomicType>())
10691 OtherT->isSpecificBuiltinType(BuiltinType::SChar);
10696 !OtherT->isBooleanType() && Other->isKnownToHaveBooleanValue();
10797 if (T->isIntegralType(S.Context)) {
10823 if (!T->hasUnsignedIntegerRepresentation()) {
10846 if (LHS->getType()->hasSignedIntegerRepresentation()) {
10847 assert(!RHS->getType()->hasSignedIntegerRepresentation() &&
10851 } else if (RHS->getType()->hasSignedIntegerRepresentation()) {
10905 if (BitfieldType->isBooleanType())
10908 if (BitfieldType->isEnumeralType()) {
10909 EnumDecl *BitfieldEnumDecl = BitfieldType->castAs<EnumType>()->getDecl();
10922 if (Bitfield->getType()->isBooleanType())
10941 if (const auto *EnumTy = OriginalInit->getType()->getAs<EnumType>()) {
10943 bool SignedBitfield = BitfieldType->isSignedIntegerType();
11006 TruncatedValue.setIsSigned(BitfieldType->isSignedIntegerType());
11048 if (E->getLHS()->getType()->isAtomicType())
11075 return Ty->isSpecificBuiltinType(BuiltinType::SChar) &&
11097 const bool IsBool = T->isSpecificBuiltinType(BuiltinType::Bool);
11127 T->hasUnsignedIntegerRepresentation());
11219 if (E->getLHS()->getType()->isAtomicType())
11223 const auto *ResultBT = E->getLHS()->getType()->getAs<BuiltinType>();
11226 ->getAs<BuiltinType>();
11315 if (T->isAnyPointerType() || T->isBlockPointerType() ||
11315 if (T->isAnyPointerType() || T->isBlockPointerType() ||
11316 T->isMemberPointerType() || !T->isScalarType() || T->isNullPtrType())
11316 T->isMemberPointerType() || !T->isScalarType() || T->isNullPtrType())
11316 T->isMemberPointerType() || !T->isScalarType() || T->isNullPtrType())
11361 ICE->getSubExpr()->getType()->getAs<ObjCObjectPointerType>())
11367 if (ElementType->getAs<ObjCObjectPointerType>() &&
11390 const auto *TargetObjCPtr = TargetType->getAs<ObjCObjectPointerType>();
11419 const auto *TargetObjCPtr = TargetType->getAs<ObjCObjectPointerType>();
11457 if (CC.isValid() && T->isCharType()) {
11484 const auto *LHSEnumType = LHSStrippedType->getAs<EnumType>();
11487 const auto *RHSEnumType = RHSStrippedType->getAs<EnumType>();
11523 else if (E->getType()->isSignedIntegerType())
11708 InnerE->getType()->isBooleanType()) {
11999 if (T->isBooleanType())
12027 if (E->IgnoreParenImpCasts()->getType()->isAtomicType())
12053 << OrigE->getSourceRange() << T->isBooleanType()
12088 if (!CE->getType()->isVoidType() && E->getType()->isAtomicType())
12088 if (!CE->getType()->isVoidType() && E->getType()->isAtomicType())
12146 if (U->getSubExpr()->getType()->isAtomicType())
12157 if (!E->getType()->isIntegerType()) {
12177 if (!DRE->getDecl()->getType()->isReferenceType())
12180 if (!M->getMemberDecl()->getType()->isReferenceType())
12183 if (!Call->getCallReturnType(SemaRef.Context)->isReferenceType())
12335 const bool IsArray = T->isArrayType();
12336 const bool IsFunction = T->isFunctionType();
12388 if (!ReturnType->isPointerType()) {
12391 if (!ReturnType->isIntegerType())
12400 if (!ReturnType->isSpecificBuiltinType(BuiltinType::Bool))
13012 if (!PType->isVariablyModifiedType())
13082 if (CXXRecordDecl *ClassDecl = Param->getType()->getAsCXXRecordDecl()) {
13141 if (T->isDependentType() || Op->getType()->isDependentType())
13141 if (T->isDependentType() || Op->getType()->isDependentType())
13145 const PointerType *DestPtr = T->getAs<PointerType>();
13150 if (DestPointee->isIncompleteType()) return;
13155 const PointerType *SrcPtr = Op->getType()->getAs<PointerType>();
13163 if (SrcPointee->isIncompleteType()) return;
13243 BaseExpr->getType()->getPointeeOrArrayElementType();
13987 LHSType->isObjCRetainableType())
14344 const Type::TypeClass TC1 = T1->getTypeClass();
14345 const Type::TypeClass TC2 = T2->getTypeClass();
14355 if (!T1->isStandardLayoutType() || !T2->isStandardLayoutType())
14355 if (!T1->isStandardLayoutType() || !T2->isStandardLayoutType())
14518 const BuiltinType *BT1 = T1->getAs<BuiltinType>();
14522 const BuiltinType *BT2 = T2->getAs<BuiltinType>();
14572 if (ICE->getType()->isVoidPointerType() &&
14579 if (IsPointerAttr && ArgumentType->isVoidPointerType())
14609 if ((IsPointerAttr && IsSameCharType(ArgumentType->getPointeeType(),
14610 RequiredType->getPointeeType())) ||
14616 ArgumentType->getPointeeType(),
14617 RequiredType->getPointeeType());
14658 (T->isPointerType() && (T->getPointeeType()->isIncompleteType() ||
14686 BaseType = BaseType->getPointeeType();
14687 RecordDecl *RD = BaseType->castAs<RecordType>()->getDecl();
14740 if (!VD->getType()->isReferenceType())
tools/clang/lib/Sema/SemaCodeComplete.cpp 415 if (LHSType->isPointerType()) {
455 if (LHSType->isIntegralOrEnumerationType())
471 if (LHSType->isIntegralOrEnumerationType())
494 if (!ContextType.isNull() && ContextType->isPointerType())
495 return ContextType->getPointeeType();
907 if (const auto *Ref = T->getAs<ReferenceType>()) {
912 if (const auto *Pointer = T->getAs<PointerType>()) {
913 if (Pointer->getPointeeType()->isFunctionType()) {
921 if (const auto *Block = T->getAs<BlockPointerType>()) {
926 if (const auto *Function = T->getAs<FunctionType>()) {
1414 if (VD->getType()->isIntegralOrEnumerationType())
1502 switch (T->getTypeClass()) {
1530 return T->isDependentType() || T->isRecordType();
1530 return T->isDependentType() || T->isRecordType();
1564 return T->isObjCObjectType() || T->isObjCObjectPointerType() ||
1564 return T->isObjCObjectType() || T->isObjCObjectPointerType() ||
1565 T->isObjCIdType() ||
1566 (SemaRef.getLangOpts().CPlusPlus && T->isRecordType());
1604 assert(ThisType->isPointerType());
1605 BaseType = ThisType->getPointeeType();
1607 NamingClass = BaseType->getAsCXXRecordDecl();
2305 if (ReturnType.isNull() || ReturnType->isVoidType()) {
2318 if (ReturnType->isBooleanType()) {
2749 if (Param->getType()->isDependentType() ||
2750 !Param->getType()->isBlockPointerType()) {
2843 if (!ResultType->isVoidType() || SuppressBlock)
2963 if (const auto *Proto = Function->getType()->getAs<FunctionProtoType>())
3074 const auto *Proto = Function->getType()->getAs<FunctionProtoType>();
3173 if (const auto *RecordTy = Ty->getAs<RecordType>())
3175 else if (const auto *InjectedTy = Ty->getAs<InjectedClassNameType>())
3477 ObjCSubsts = CCContext.getBaseType()->getObjCSubstitutions(Method);
3479 if (ParamType->isBlockPointerType() && !DeclaringEntity)
4102 Results.setObjectTypeQualifiers(ThisType->getPointeeType().getQualifiers(),
4207 if (!T.get().isNull() && T.get()->isObjCObjectOrInterfaceType())
4268 if (auto *Specialization = T->getAs<TemplateSpecializationType>()) {
4274 return Argument.getAsType()->getAs<FunctionProtoType>();
4277 if (T->isPointerType())
4278 T = T->getPointeeType();
4279 return T->getAs<FunctionProtoType>();
4370 PreferredTypeIsPointer = Data.PreferredType->isAnyPointerType() ||
4371 Data.PreferredType->isMemberPointerType() ||
4372 Data.PreferredType->isBlockPointerType();
4373 if (Data.PreferredType->isEnumeralType()) {
4374 EnumDecl *Enum = Data.PreferredType->castAs<EnumType>()->getDecl();
4557 (BlockLoc.getTypePtr()->getReturnType()->isVoidType()
4603 M->getReturnType()->isVoidType() || M->isInstanceMethod())
4680 bool IsDependent = BaseType->isDependentType();
4711 if (const auto *Ptr = ConvertedBaseType->getAs<PointerType>())
4718 if (ConvertedBaseType->isObjCObjectPointerType() ||
4719 ConvertedBaseType->isObjCObjectOrInterfaceType()) {
4746 if (const PointerType *Ptr = BaseType->getAs<PointerType>()) {
4749 } else if (BaseType->isObjCObjectPointerType())
4755 if (const RecordType *Record = BaseType->getAs<RecordType>()) {
4760 BaseType->getAs<TemplateSpecializationType>()) {
4768 } else if (const auto *ICNT = BaseType->getAs<InjectedClassNameType>()) {
4772 } else if (!IsArrow && BaseType->isObjCObjectPointerType()) {
4777 BaseType->getAsObjCInterfacePointerType()) {
4786 for (auto *I : BaseType->getAs<ObjCObjectPointerType>()->quals())
4791 } else if ((IsArrow && BaseType->isObjCObjectPointerType()) ||
4792 (!IsArrow && BaseType->isObjCObjectType())) {
4796 BaseType->getAs<ObjCObjectPointerType>())
4799 Class = BaseType->getAs<ObjCObjectType>()->getInterface();
4971 if (!type->isEnumeralType()) {
4980 EnumDecl *Enum = type->castAs<EnumType>()->getDecl();
5152 !FD->getType()->getAs<FunctionProtoType>())
5160 } else if (auto DC = NakedFn->getType()->getAsCXXRecordDecl()) {
5181 if (!T->getPointeeType().isNull())
5182 T = T->getPointeeType();
5184 if (auto FP = T->getAs<FunctionProtoType>()) {
5189 } else if (auto FT = T->getAs<FunctionType>())
5209 isCompleteType(Loc, Type) ? Type->getAsCXXRecordDecl() : nullptr;
5645 const auto *RD = Base.getType()->getAsCXXRecordDecl();
5653 const CXXRecordDecl *RD = FD->getType()->getAsCXXRecordDecl();
6434 Msg->getClassReceiver()->getAs<ObjCObjectType>())
6440 if (const ObjCObjectPointerType *Ptr = T->getAs<ObjCObjectPointerType>())
6666 Context.getTypeDeclType(TD)->getAs<ObjCObjectType>())
6741 if (const ObjCObjectType *Interface = T->getAs<ObjCObjectType>())
6863 if (ReceiverType->isObjCIdType() || ReceiverType->isObjCClassType()) {
6863 if (ReceiverType->isObjCIdType() || ReceiverType->isObjCClassType()) {
6865 if (ReceiverType->isObjCClassType())
6909 if (ReceiverType->isObjCClassType() ||
6910 ReceiverType->isObjCQualifiedClassType()) {
6919 ReceiverType->getAsObjCQualifiedIdType()) {
6927 ReceiverType->getAsObjCInterfacePointerType()) {
6938 else if (ReceiverType->isObjCIdType()) {
7586 bool ReturnTypeMatchesVoid = ReturnType.isNull() || ReturnType->isVoidType();
7605 (ReturnType->isIntegerType() || ReturnType->isBooleanType())) ||
7605 (ReturnType->isIntegerType() || ReturnType->isBooleanType())) ||
7606 (ReturnType.isNull() && (Property->getType()->isIntegerType() ||
7607 Property->getType()->isBooleanType())))) {
7652 Property->getType()->getAs<ObjCObjectPointerType>()) {
7677 (ReturnType.isNull() || ReturnType->isIntegerType())) {
7699 (ReturnType.isNull() || ReturnType->isObjCObjectPointerType())) {
7722 (ReturnType->isObjCObjectPointerType() &&
7723 ReturnType->getAs<ObjCObjectPointerType>()->getInterfaceDecl() &&
7724 ReturnType->getAs<ObjCObjectPointerType>()
7945 (ReturnType->isObjCObjectPointerType() &&
7946 ReturnType->getAs<ObjCObjectPointerType>()->getInterfaceDecl() &&
7947 ReturnType->getAs<ObjCObjectPointerType>()
7968 (ReturnType.isNull() || ReturnType->isObjCObjectPointerType())) {
8109 (ReturnType->isObjCObjectPointerType() &&
8110 ReturnType->getAs<ObjCObjectPointerType>()->getInterfaceDecl() &&
8111 ReturnType->getAs<ObjCObjectPointerType>()
8133 (ReturnType.isNull() || ReturnType->isIntegerType() ||
8134 ReturnType->isBooleanType())) {
8271 if (!Method->getReturnType()->isVoidType()) {
tools/clang/lib/Sema/SemaCoroutine.cpp 52 const FunctionProtoType *FnType = FD->getType()->castAs<FunctionProtoType>();
86 QualType T = MD->getThisType()->castAs<PointerType>()->getPointeeType();
105 auto *RD = CoroTrait->getAsCXXRecordDecl();
129 if (!PromiseType->getAsCXXRecordDecl()) {
241 if (FD->getReturnType()->isUndeducedType())
363 << NameInfo.getName() << Base->getType()->getAsCXXRecordDecl()
377 if (RetType->isReferenceType())
426 if (!AwaitReady->getType()->isDependentType()) {
441 if (!AwaitSuspend->getType()->isDependentType()) {
452 if (RetType->isReferenceType() ||
453 (!RetType->isBooleanType() && !RetType->isVoidType())) {
453 (!RetType->isBooleanType() && !RetType->isVoidType())) {
485 return MD->isInstance() && MD->getThisType()->isDependentType();
490 QualType T = FD->getType()->isDependentType() || IsThisDependentType
523 if (PD->getType()->isDependentType())
700 if (E->getType()->isPlaceholderType()) {
718 if (E->getType()->isPlaceholderType()) {
726 if (Promise->getType()->isDependentType()) {
732 auto *RD = Promise->getType()->getAsCXXRecordDecl();
756 if (E->getType()->isPlaceholderType()) {
762 if (E->getType()->isDependentType()) {
817 if (E->getType()->isPlaceholderType()) {
823 if (E->getType()->isDependentType()) {
860 if (E && E->getType()->isPlaceholderType() &&
861 !E->getType()->isSpecificPlaceholderType(BuiltinType::Overload)) {
885 if (E && (isa<InitListExpr>(E) || !E->getType()->isVoidType())) {
939 auto *PointeeRD = PromiseType->getAsCXXRecordDecl();
998 Fn.CoroutinePromise->getType()->isDependentType()) {
1006 PromiseRecordDecl = Fn.CoroutinePromise->getType()->getAsCXXRecordDecl();
1168 if (PD->getType()->isDependentType())
1230 const auto *FT = OperatorNew->getType()->getAs<FunctionProtoType>();
1421 assert(!GroType->isDependentType() &&
1425 assert(!FnRetType->isDependentType() &&
1428 if (FnRetType->isVoidType()) {
1438 if (GroType->isVoidType()) {
1533 if (PD->getType()->isDependentType())
1543 if (PD->getType()->getAsCXXRecordDecl() ||
1544 PD->getType()->isRValueReferenceType())
tools/clang/lib/Sema/SemaDecl.cpp 188 if (auto *BaseTT = Base.getType()->getAs<TagType>())
190 else if (auto *TST = Base.getType()->getAs<TemplateSpecializationType>()) {
298 if (ObjectType->isRecordType())
2093 R->isFunctionProtoType());
2176 if (NewType->isVariablyModifiedType()) {
2188 !OldType->isDependentType() &&
2189 !NewType->isDependentType() &&
2224 if (!T->isPointerType())
2226 if (!T->isVoidPointerType()) {
2227 QualType PT = T->castAs<PointerType>()->getPointeeType();
2228 if (!PT->isStructureType())
2960 if (auto Oldnullability = OldParam->getType()->getNullability(S.Context)) {
2961 if (auto Newnullability = NewParam->getType()->getNullability(S.Context)) {
3026 const AttributedType *AT = T->getAs<AttributedType>();
3028 AT = AT->getModifiedType()->getAs<AttributedType>();
3290 First->getType().getCanonicalType()->castAs<FunctionType>();
3371 const FunctionType *AdjustedType = New->getType()->getAs<FunctionType>();
3431 if (NewDeclaredReturnType->isObjCObjectPointerType() &&
3432 OldDeclaredReturnType->isObjCObjectPointerType())
3455 AutoType *OldAT = Old->getReturnType()->getContainedAutoType();
3569 auto *OldType = OldQType->castAs<FunctionProtoType>();
3616 const FunctionType *OldFuncType = OldQType->getAs<FunctionType>();
3617 const FunctionType *NewFuncType = NewQType->getAs<FunctionType>();
3662 New->getType()->getAs<FunctionProtoType>() &&
3667 = Old->getType()->getAs<FunctionProtoType>();
3669 = New->getType()->getAs<FunctionProtoType>();
3846 if (New->getType()->isUndeducedType()) {
3858 else if (Old->getType()->isArrayType() && New->getType()->isArrayType()) {
3858 else if (Old->getType()->isArrayType() && New->getType()->isArrayType()) {
3891 else if (New->getType()->isObjCObjectPointerType() &&
3892 Old->getType()->isObjCObjectPointerType()) {
3908 if ((New->getType()->isDependentType() ||
3909 Old->getType()->isDependentType()) && New->isLocalVarDecl()) {
3913 if (!New->getType()->isDependentType() && MergeTypeWithOld)
4530 DS.getRepAsType().get()->getAsStructureType())
4532 else if (const RecordType *UT = DS.getRepAsType().get()->getAsUnionType())
5259 if (Ty->isPointerType() || Ty->isReferenceType())
5259 if (Ty->isPointerType() || Ty->isReferenceType())
5260 Ty = Ty->getPointeeType();
5261 else if (Ty->isArrayType())
5262 Ty = Ty->castAsArrayTypeUnsafe()->getElementType();
5328 if (T.isNull() || !T->isDependentType()) break;
5619 R->isFunctionType())) {
5676 if (!R->isFunctionType() && DiagnoseClassNameShadow(DC, NameInfo))
5686 (TemplateParamLists.size() == 0 || R->isFunctionType()))
5704 } else if (R->isFunctionType()) {
5741 if (T->isDependentType())
5770 if (VLATy->getElementType()->isVariablyModifiedType())
5941 if (T->isVariablyModifiedType()) {
5957 else if (T->isVariableArrayType())
6099 if (!type->isObjCLifetimeType())
6102 lifetime = type->getObjCARCImplicitLifetime();
6504 if (R->isImageType() || R->isPipeType()) {
6504 if (R->isImageType() || R->isPipeType()) {
6517 if (R->isReserveIDT() || R->isClkEventT() || R->isEventT()) {
6517 if (R->isReserveIDT() || R->isClkEventT() || R->isEventT()) {
6517 if (R->isReserveIDT() || R->isClkEventT() || R->isEventT()) {
6527 while (NR->isPointerType()) {
6528 if (NR->isFunctionPointerType()) {
6533 NR = NR->getPointeeType();
6539 if (Context.getBaseElementType(R)->isHalfType()) {
6545 if (R->isSamplerT()) {
6568 if (R->isEventT()) {
6647 if (R->getContainedDeducedType())
6788 if (R->getContainedDeducedType())
7014 if (!R->isIntegralType(Context) && !R->isPointerType()) {
7014 if (!R->isIntegralType(Context) && !R->isPointerType()) {
7542 if (T->isUndeducedType())
7548 if (T->isObjCObjectType()) {
7583 if (T->isBlockPointerType()) {
7607 if (!T->isSamplerT() &&
7680 bool isVM = T->isVariablyModifiedType();
7686 (T->isVariableArrayType() && NewVD->hasGlobalStorage())) {
7700 if ((!FixedTInfo || FixedT.isNull()) && T->isVariableArrayType()) {
7733 if (T->isVoidType()) {
7756 if (NewVD->isConstexpr() && !T->isDependentType() &&
7806 Specifier->getType()->castAs<RecordType>()->getDecl();
8164 (!R->getAsAdjusted<FunctionType>() && R->isFunctionProtoType());
8164 (!R->getAsAdjusted<FunctionType>() && R->isFunctionProtoType());
8191 D.getIdentifierLoc(), R->castAs<FunctionType>()->getReturnType(),
8325 if (PT->isPointerType()) {
8326 QualType PointeeType = PT->getPointeeType();
8327 if (PointeeType->isPointerType())
8344 if (PT->isImageType())
8347 if (PT->isBooleanType() || PT->isEventT() || PT->isReserveIDT())
8347 if (PT->isBooleanType() || PT->isEventT() || PT->isReserveIDT())
8347 if (PT->isBooleanType() || PT->isEventT() || PT->isReserveIDT())
8353 if (!S.getOpenCLOptions().isEnabled("cl_khr_fp16") && PT->isHalfType())
8356 if (PT->isRecordType())
8360 if (PT->isArrayType()) {
8361 const Type *UnderlyingTy = PT->getPointeeOrArrayElementType();
8413 if (!PT->isHalfType()) {
8418 while ((Typedef = PT->getAs<TypedefType>())) {
8449 assert((PT->isArrayType() || PT->isRecordType()) && "Unexpected type.");
8449 assert((PT->isArrayType() || PT->isRecordType()) && "Unexpected type.");
8451 PT->getPointeeOrArrayElementType()->getAs<RecordType>();
8477 assert((FieldTy->isArrayType() || FieldTy->isRecordType()) &&
8477 assert((FieldTy->isArrayType() || FieldTy->isRecordType()) &&
8479 const Type *FieldRecTy = FieldTy->getPointeeOrArrayElementType();
8512 << PT->isUnionType()
8533 << QT->isPointerType()
8570 assert(R->isFunctionType());
8762 NewFD->getReturnType()->isUndeducedType())
8769 NewFD->getReturnType()->isUndeducedType()) {
8777 NewFD->getType()->castAs<FunctionProtoType>();
8905 const FunctionProtoType *FPT = R->getAs<FunctionProtoType>();
8998 } else if (const FunctionProtoType *FT = R->getAs<FunctionProtoType>()) {
9016 assert(R->isFunctionNoProtoType() && NewFD->getNumParams() == 0 &&
9031 NewFD->getReturnType()->isVariablyModifiedType()) {
9101 const FunctionType *FT = NewFD->getType()->castAs<FunctionType>();
9189 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
9370 !NewFD->getType()->getAs<FunctionProtoType>()) {
9376 const FunctionType *FT = NewFD->getType()->getAs<FunctionType>();
9422 if (!R->getAs<FunctionType>()->getReturnType()->isScalarType())
9422 if (!R->getAs<FunctionType>()->getReturnType()->isScalarType())
9453 if (!NewFD->getReturnType()->isVoidType()) {
9494 if(const PipeType *PipeTy = PT->getAs<PipeType>()) {
9496 if (ElemTy->isReferenceType() || ElemTy->isPointerType()) {
9496 if (ElemTy->isReferenceType() || ElemTy->isPointerType()) {
9613 if (NewT->isDependentType() &&
9619 if (OldT->isDependentType() && OldD->isLocalExternDecl())
9745 if (OldFD && !OldFD->getType()->getAs<FunctionProtoType>()) {
9751 if (!NewFD->getType()->getAs<FunctionProtoType>())
9789 if (NewReturnType->isUndeducedType())
9821 OldFD->getType()->getAs<FunctionProtoType>(), OldFD->getLocation(),
9822 NewFD->getType()->getAs<FunctionProtoType>(), NewFD->getLocation()))
10238 assert(!NewFD->getReturnType()->isVariablyModifiedType() &&
10327 MD->getType()->castAs<FunctionProtoType>();
10441 if (!ClassType->isDependentType()) {
10526 if (R->isIncompleteType() && !R->isVoidType())
10526 if (R->isIncompleteType() && !R->isVoidType())
10529 else if (!R.isPODType(Context) && !R->isVoidType() &&
10530 !R->isObjCObjectPointerType())
10548 if (auto *RT = T->getAs<ReferenceType>())
10550 else if (T->isAnyPointerType())
10551 T = T->getPointeeType();
10552 else if (auto *MPT = T->getAs<MemberPointerType>())
10554 if (auto *FPT = T->getAs<FunctionProtoType>())
10560 auto *FPT = NewFD->getType()->castAs<FunctionProtoType>();
10613 assert(T->isFunctionType() && "function decl is not of function type");
10614 const FunctionType* FT = T->castAs<FunctionType>();
10733 assert(T->isFunctionType() && "function decl is not of function type");
10734 const FunctionType *FT = T->castAs<FunctionType>();
10738 if (FT->getReturnType()->isIntegralOrEnumerationType() ||
10739 FT->getReturnType()->isAnyPointerType() ||
10740 FT->getReturnType()->isNullPtrType())
10793 isRecordType = VD->getType()->isRecordType();
10794 isReferenceType = VD->getType()->isReferenceType();
10831 if (FD->getType()->isReferenceType())
10951 if (E->getType()->canDecayToPointerType()) return;
11058 DRE->getDecl()->getType()->isRecordType()) {
11084 if (!DirectInit && !cast<VarDecl>(OrigDecl)->getType()->isRecordType())
11120 DeducedType *Deduced = Type->getContainedDeducedType();
11208 DeduceInit->getType()->isConstantArrayType())
11237 !DeducedType.isNull() && DeducedType->isObjCIdType()) {
11354 const RecordDecl *RD = QT->castAs<RecordType>()->getDecl();
11358 if (auto *OrigRD = OrigTy->getAsRecordDecl())
11419 const RecordDecl *RD = QT->castAs<RecordType>()->getDecl();
11423 if (auto *OrigRD = OrigTy->getAsRecordDecl())
11485 const RecordDecl *RD = QT->castAs<RecordType>()->getDecl();
11489 if (auto *OrigRD = OrigTy->getAsRecordDecl())
11573 if (VDecl->getType()->isUndeducedType()) {
11602 if (!VDecl->getType()->isDependentType()) {
11677 if (getLangOpts().DebuggerCastResultToId && DclT->isObjCObjectPointerType() &&
11732 if (!VDecl->hasLocalStorage() || VDecl->getType()->isRecordType() ||
11733 VDecl->getType()->isReferenceType()) {
11812 } else if (!getLangOpts().C99 && VDecl->getType()->isAggregateType() &&
11850 if (DclT->isDependentType()) {
11864 } else if (DclT->isIntegralOrEnumerationType()) {
11875 else if (Init->getType()->isScopedEnumeralType() &&
11892 } else if (DclT->isFloatingType()) { // also permits complex, which is ok
11914 } else if (getLangOpts().CPlusPlus11 && DclT->isLiteralType(Context)) {
12007 if (Ty->isDependentType()) return;
12044 if (Type->isUndeducedType() &&
12108 if (!Type->isDependentType() && Var->isLocalVarDecl() &&
12115 if (!Type->isDependentType() && !Var->isInvalidDecl() &&
12120 if (!Type->isDependentType() && !Var->isInvalidDecl() &&
12165 if (Type->isIncompleteArrayType()) {
12174 if (Type->isReferenceType()) {
12184 if (Type->isDependentType())
12221 = Context.getBaseElementType(Type)->getAs<RecordType>()) {
12345 if (var->getTypeSourceInfo()->getType()->isBlockPointerType() &&
12405 Context, var->getType()->isReferenceType(), &CacheCulprit);
12477 if (type->isDependentType()) return;
12542 CXXRecordDecl *RD = baseType->getAsCXXRecordDecl();
12552 if (const RecordType *recordType = baseType->getAs<RecordType>())
12563 if (VD->getType()->isDependentType())
12765 !VD->getType()->isIntegralOrEnumerationType())
12797 return VD && !VD->getType()->hasAutoForTrailingReturnType();
12844 ->hasAutoForTrailingReturnType()
12882 DeducedType *DT = D->getType()->getContainedDeducedType();
13124 if (!ReturnTy->isDependentType() && ReturnTy.isPODType(Context)) {
13135 if (T->isDependentType() || !T.isPODType(Context))
13151 T->isObjCLifetimeType()) {
13158 if (T->isArrayType()) {
13170 lifetime = T->getObjCARCImplicitLifetime();
13201 if (T->isObjCObjectType()) {
13219 (T->isArrayType() || T.getAddressSpace() == LangAS::opencl_private))) {
13327 return Prev->getType()->isFunctionNoProtoType();
13563 if (!ResultType->isDependentType() && !ResultType->isVoidType() &&
13563 if (!ResultType->isDependentType() && !ResultType->isVoidType() &&
13612 if (const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>())
13672 return Ty.isNull() || !Ty->isUndeducedType();
13693 if (FD->getReturnType()->getContainedDeducedType())
13778 FD->getReturnType()->isUndeducedType()) {
13782 if (!FD->getReturnType()->getAs<AutoType>()) {
13808 FD->getType()->getAs<FunctionProtoType>();
13840 if (FD->getReturnType()->isRecordType() &&
14229 FD->getParamDecl(FormatIdx)->getType()->isObjCObjectPointerType())
14310 const auto *FPT = FD->getType()->getAs<FunctionProtoType>();
14407 if (T->isDependentType())
14410 if (const BuiltinType *BT = T->getAs<BuiltinType>())
14431 if (!EnumUnderlyingTy->isDependentType() &&
14432 !Prev->getIntegerType()->isDependentType() &&
15104 if (const TagType *TT = TD->getUnderlyingType()->getAs<TagType>()) {
15303 auto *TD = Context.getTagDeclType(PrevTagDecl)->getAsTagDecl();
15778 if (!FieldTy->isDependentType() && !FieldTy->isIntegralOrEnumerationType()) {
15778 if (!FieldTy->isDependentType() && !FieldTy->isIntegralOrEnumerationType()) {
15817 if (!FieldTy->isDependentType()) {
15845 if (BitfieldIsOverwide && !FieldTy->isBooleanType()) {
15996 if (!EltTy->isDependentType()) {
16003 EltTy->isIncompleteType(&Def);
16012 if (T.getQualifiers().hasAddressSpace() || T->isDependentAddressSpaceType() ||
16013 T->getBaseElementTypeUnsafe()->isDependentAddressSpaceType()) {
16022 if (T->isEventT() || T->isImageType() || T->isSamplerT() ||
16022 if (T->isEventT() || T->isImageType() || T->isSamplerT() ||
16022 if (T->isEventT() || T->isImageType() || T->isSamplerT() ||
16023 T->isBlockPointerType()) {
16044 if (!InvalidDecl && T->isVariablyModifiedType()) {
16091 if (T->isReferenceType())
16128 if (const RecordType *RT = EltTy->getAs<RecordType>()) {
16144 if (EltTy->isReferenceType()) {
16181 if (FD->isInvalidDecl() || FD->getType()->isDependentType())
16185 if (const RecordType *RT = EltTy->getAs<RecordType>()) {
16279 if (T->isReferenceType()) {
16285 else if (T->isVariablyModifiedType()) {
16526 if (!BaseElem->isDependentType() && BaseElem.isDestructedType()) {
16602 if (FD->getType()->isObjCObjectPointerType() ||
16607 if (BaseType->isRecordType() &&
16608 BaseType->castAs<RecordType>()->getDecl()->hasObjectMember())
16610 else if (BaseType->isObjCObjectPointerType() ||
16638 if (const auto *RT = FT->getAs<RecordType>()) {
16766 if (FieldType->isIncompleteType() ||
16856 assert((T->isIntegralType(Context) || T->isEnumeralType()) &&
16856 assert((T->isIntegralType(Context) || T->isEnumeralType()) &&
16861 if (T->isSignedIntegerOrEnumerationType())
16873 assert((T->isIntegralType(Context) ||
16874 T->isEnumeralType()) && "Integral type required!");
16885 QualType *Types = T->isSignedIntegerOrEnumerationType()? SignedIntegralTypes
16949 EltTy->isBooleanType() ? CK_IntegralToBoolean
17039 EnumVal.setIsSigned(EltTy->isSignedIntegerOrEnumerationType());
17059 if (!EltTy->isDependentType()) {
17063 EnumVal.setIsSigned(EltTy->isSignedIntegerOrEnumerationType());
17428 if (BestType->isPromotableIntegerType())
17535 NewSign = BestType->isSignedIntegerOrEnumerationType();
tools/clang/lib/Sema/SemaDeclAttr.cpp 151 const auto *PT = T->getAs<ObjCObjectPointerType>();
167 const auto *PT = T->getAs<PointerType>();
171 const auto *RT = PT->getPointeeType()->getAs<RecordType>();
459 return QT->isBooleanType() || QT->isIntegerType();
459 return QT->isBooleanType() || QT->isIntegerType();
486 BaseSpecifier.getType()->getAsRecordDecl(), OO_Star);
489 BaseSpecifier.getType()->getAsRecordDecl(), OO_Arrow);
505 if (QT->isAnyPointerType())
508 if (const auto *RT = QT->getAs<RecordType>()) {
526 if (const auto *RT = QT->getAs<RecordType>())
530 if (const auto *PT = QT->getAs<PointerType>())
531 return PT->getPointeeType()->getAs<RecordType>();
578 const auto *TD = Ty->getAs<TypedefType>();
773 if (!QT->isDependentType() && !typeHasCapability(S, QT)) {
854 if (!Param->getType()->isIntegerType() && !Param->getType()->isCharType()) {
854 if (!Param->getType()->isIntegerType() && !Param->getType()->isCharType()) {
869 if (!FD->getReturnType()->isPointerType()) {
1029 assert(E->getType()->getPointeeCXXRecordDecl() == ClassType &&
1096 if (!cast<ParmVarDecl>(D)->getType()->isPointerType()) {
1126 QualType ThisType = MD->getThisType()->getPointeeType();
1128 if (const CXXRecordDecl *RD = ThisType->getAsCXXRecordDecl()) {
1307 bool BitfieldByteAligned = (!FD->getType()->isDependentType() &&
1308 !FD->getType()->isIncompleteType() &&
1336 if (!VD->getType()->getAs<ObjCObjectPointerType>()) {
1343 if (!PD->getType()->getAs<ObjCObjectPointerType>()) {
1397 if (!QT->isObjCIdType() && !QT->isObjCObjectType()) {
1397 if (!QT->isObjCIdType() && !QT->isObjCObjectType()) {
1399 QT->isBuiltinType() ? diag::err_iboutletcollection_builtintype
1409 if (T->isReferenceType())
1417 if (const RecordType *UT = T->getAsUnionType()) {
1422 if (QT->isAnyPointerType() || QT->isBlockPointerType())
1422 if (QT->isAnyPointerType() || QT->isBlockPointerType())
1428 return T->isAnyPointerType() || T->isBlockPointerType();
1428 return T->isAnyPointerType() || T->isBlockPointerType();
1476 if (T->isDependentType() || S.isValidPointerAttrType(T))
1602 if (!ResultType->isDependentType() &&
1616 if (!Ty->isDependentType() && !Ty->isIntegralType(Context)) {
1616 if (!Ty->isDependentType() && !Ty->isIntegralType(Context)) {
1693 if (!T->isAnyPointerType() && !T->isBlockPointerType())
1693 if (!T->isAnyPointerType() && !T->isBlockPointerType())
1697 if (!T->isIntegerType())
1872 if (ResultType->isAnyPointerType() || ResultType->isBlockPointerType()) {
1872 if (ResultType->isAnyPointerType() || ResultType->isBlockPointerType()) {
2005 if (!VD || (!VD->getType()->isBlockPointerType() &&
2006 !VD->getType()->isFunctionPointerType())) {
2063 if ((count == 1) || !I->getType()->isVectorType()) {
2569 !M->getReturnType()->isObjCObjectPointerType()) {
2582 if (!T->isCARCBridgableType()) {
2589 if (!T->isCARCBridgableType()) {
2609 if (!T->isObjCObjectPointerType()) {
2680 const FunctionType *FT = FD->getType()->castAs<FunctionType>();
2702 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType()) {
2702 if (Ty->isBlockPointerType() || Ty->isFunctionPointerType()) {
2703 const FunctionType *FT = Ty->isFunctionPointerType()
2705 : Ty->castAs<BlockPointerType>()->getPointeeType()->getAs<FunctionType>();
2705 : Ty->castAs<BlockPointerType>()->getPointeeType()->getAs<FunctionType>();
2707 int m = Ty->isFunctionPointerType() ? 0 : 1;
2726 D->getFunctionType()->getReturnType()->isVoidType() &&
2732 if (MD->getReturnType()->isVoidType()) {
2840 if (!ParmType->isExtVectorType() && !ParmType->isFloatingType() &&
2840 if (!ParmType->isExtVectorType() && !ParmType->isFloatingType() &&
2841 (ParmType->isBooleanType() ||
2842 !ParmType->isIntegralType(S.getASTContext()))) {
3114 (!Ty->isPointerType() ||
3115 !Ty->castAs<PointerType>()->getPointeeType()->isCharType())) {
3115 !Ty->castAs<PointerType>()->getPointeeType()->isCharType())) {
3124 (!Ty->isPointerType() ||
3125 !Ty->castAs<PointerType>()->getPointeeType()->isCharType())) {
3125 !Ty->castAs<PointerType>()->getPointeeType()->isCharType())) {
3181 if (!T->getAs<RecordType>()) {
3300 } else if (!Ty->isPointerType() ||
3301 !Ty->castAs<PointerType>()->getPointeeType()->isCharType()) {
3301 !Ty->castAs<PointerType>()->getPointeeType()->isCharType()) {
3445 CalleeType->getPointeeType()->getUnqualifiedDesugaredType();
3487 if (TD && TD->getUnderlyingType()->isUnionType())
3488 RD = TD->getUnderlyingType()->getAsUnionType()->getDecl();
3514 if (FirstType->hasFloatingRepresentation() || FirstType->isVectorType()) {
3514 if (FirstType->hasFloatingRepresentation() || FirstType->isVectorType()) {
3517 << FirstType->isVectorType() << FirstType;
3521 if (FirstType->isIncompleteType())
3527 if (FieldType->isIncompleteType())
3586 if (!T->isDependentType() && !T->isAnyPointerType() &&
3586 if (!T->isDependentType() && !T->isAnyPointerType() &&
3587 !T->isReferenceType() && !T->isMemberPointerType()) {
3587 !T->isReferenceType() && !T->isMemberPointerType()) {
3688 if (!TND->getUnderlyingType()->isDependentType()) {
3774 if (DiagTy->isDependentType() || DiagTy->isIncompleteType())
3774 if (DiagTy->isDependentType() || DiagTy->isIncompleteType())
3959 if (OldTy->isDependentType()) {
3967 if (const auto *VT = OldTy->getAs<VectorType>())
3973 if ((isa<EnumDecl>(D) || OldElemTy->getAs<EnumType>()) &&
3979 OldElemTy->isIntegralOrEnumerationType() || OldElemTy->getAs<EnumType>();
3979 OldElemTy->isIntegralOrEnumerationType() || OldElemTy->getAs<EnumType>();
3981 if (!OldElemTy->getAs<BuiltinType>() && !OldElemTy->isComplexType() &&
3981 if (!OldElemTy->getAs<BuiltinType>() && !OldElemTy->isComplexType() &&
3988 if (!OldElemTy->isComplexType())
3991 if (!OldElemTy->isFloatingType())
3999 OldElemTy->isSignedIntegerType());
4016 } else if (const auto *OldVT = OldTy->getAs<VectorType>()) {
4227 if (!FD->getReturnType()->isVoidType() &&
4228 !FD->getReturnType()->getAs<AutoType>() &&
4229 !FD->getReturnType()->isInstantiationDependentType()) {
4371 if (ParmType->isVoidType())
4373 else if (ParmType->isReferenceType())
4375 else if (ParmType->isArrayType())
4583 if (!Ty->hasPointerRepresentation())
4584 return Ty->isDependentType();
4585 return Ty->getPointeeType().getAddressSpace() == LangAS::Default;
4590 if (const auto *PtrType = Ty->getAs<PointerType>()) {
4592 } else if (const auto *RefType = Ty->getAs<ReferenceType>()) {
4595 return Ty->isDependentType();
4602 if (const auto *PtrType = Ty->getAs<PointerType>()) {
4604 } else if (const auto *RefType = Ty->getAs<ReferenceType>()) {
4607 return Ty->isDependentType();
4785 !getFunctionOrMethodParamType(D, ArgumentIdxAST)->isPointerType())
4867 return QT->isDependentType() || QT->isObjCRetainableType();
4867 return QT->isDependentType() || QT->isObjCRetainableType();
4871 return QT->isDependentType() || QT->isObjCObjectPointerType() ||
4871 return QT->isDependentType() || QT->isObjCObjectPointerType() ||
4872 QT->isObjCNSObjectType();
4876 return QT->isDependentType() || QT->isPointerType() ||
4876 return QT->isDependentType() || QT->isPointerType() ||
4881 if (QT->isDependentType())
4883 QualType PT = QT->getPointeeType();
4884 return !PT.isNull() && PT->getAsCXXRecordDecl() != nullptr;
4960 QualType PT = QT->getPointeeType();
4984 ReturnType = Param->getType()->getPointeeType();
5107 if (!resultType->isReferenceType() &&
5108 (!resultType->isPointerType() || resultType->isObjCRetainableType())) {
5108 (!resultType->isPointerType() || resultType->isObjCRetainableType())) {
5158 if (!T->isVoidPointerType()) {
5268 if (!QT->isDependentType() &&
5269 !QT->isObjCLifetimeType()) {
5279 if (Lifetime == Qualifiers::OCL_None && !QT->isDependentType())
5280 Lifetime = QT->getObjCARCImplicitLifetime();
5284 assert(QT->isDependentType() &&
5471 if (!getFunctionOrMethodResultType(D)->isVoidType()) {
5544 if (!getFunctionOrMethodResultType(D)->isVoidType()) {
5578 if (!getFunctionOrMethodResultType(D)->isVoidType()) {
5598 if (!getFunctionOrMethodParamType(D, 0)->isPointerType()) {
5613 (!getFunctionOrMethodParamType(D, 1)->isUnsignedIntegerType() ||
5738 if (!getFunctionOrMethodResultType(D)->isVoidType()) {
5911 if (VD && VD->getType()->isFunctionPointerType())
5915 if (TD && (TD->getUnderlyingType()->isFunctionPointerType() ||
5916 TD->getUnderlyingType()->isFunctionType()))
6333 if (!Ty->isObjCRetainableType()) {
6347 LifetimeQual = Ty->getObjCARCImplicitLifetime();
6411 while (const auto *TT = T->getAs<TypedefType>()) {
6429 if (!RetTy->isPointerType() && !RetTy->isReferenceType()) {
6429 if (!RetTy->isPointerType() && !RetTy->isReferenceType()) {
7354 if (const auto *FT = FDTy->getAs<FunctionProtoType>()) {
7558 if (const auto *TT = TD->getUnderlyingType()->getAs<TagType>()) {
8255 if (!ReceiverTy.isNull() && ReceiverTy->getAsObjCInterfaceType())
8256 ID = ReceiverTy->getAsObjCInterfaceType()->getInterface();
tools/clang/lib/Sema/SemaDeclCXX.cpp 159 = Method->getType()->getAs<FunctionProtoType>();
810 if (R->isFunctionType())
1007 CXXRecordDecl *RD = TraitTy->getAsCXXRecordDecl();
1139 if (auto *RD = DecompType->getAsCXXRecordDecl())
1170 if (!Src->getType()->isLValueReferenceType())
1260 return Specifier->getType()->getAsCXXRecordDecl()->hasDirectFields();
1309 ClassWithFields = BaseType->getAsCXXRecordDecl();
1363 << DecompType << FD->getType()->isUnionType();
1420 if (DecompType->isDependentType()) {
1438 if (auto *VT = DecompType->getAs<VectorType>()) {
1443 if (auto *CT = DecompType->getAs<ComplexType>()) {
1469 CXXRecordDecl *RD = DecompType->getAsCXXRecordDecl();
1502 if (const ReferenceType *R = NewType->getAs<ReferenceType>()) {
1504 OldType = OldType->getAs<ReferenceType>()->getPointeeType();
1505 } else if (const PointerType *P = NewType->getAs<PointerType>()) {
1507 OldType = OldType->getAs<PointerType>()->getPointeeType();
1508 } else if (const MemberPointerType *M = NewType->getAs<MemberPointerType>()) {
1510 OldType = OldType->getAs<MemberPointerType>()->getPointeeType();
1513 if (!NewType->isFunctionProtoType())
1520 OldType->getAs<FunctionProtoType>(), Old->getLocation(),
1521 NewType->getAs<FunctionProtoType>(), New->getLocation())) {
1585 if (T->isDependentType())
1594 return !T->isLiteralType(SemaRef.Context);
1606 T->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
1637 const FunctionProtoType *FT = FD->getType()->getAs<FunctionProtoType>();
1790 if (TN->getUnderlyingType()->isVariablyModifiedType()) {
1847 if (!VD->getType()->isDependentType() &&
1928 (Field->getType()->isUnionType()
1929 ? !Field->getType()->getAsCXXRecordDecl()->hasVariantMembers()
1930 : Field->getType()->getAsCXXRecordDecl()->isEmpty()))
1948 const RecordDecl *RD = Field->getType()->castAs<RecordType>()->getDecl();
2243 (Dcl->getReturnType()->isVoidType() ||
2244 Dcl->getReturnType()->isDependentType());
2379 CXXRecordDecl *Base = I.getType()->getAsCXXRecordDecl();
2423 !TInfo->getType()->containsUnexpandedParameterPack()) {
2431 if (BaseType->isDependentType()) {
2435 if (CXXRecordDecl *BaseDecl = BaseType->getAsCXXRecordDecl()) {
2456 if (!BaseType->isRecordType()) {
2463 if (BaseType->isUnionType()) {
2472 BaseType->getAsCXXRecordDecl())) {
2489 RecordDecl *BaseDecl = BaseType->castAs<RecordType>()->getDecl();
2604 if (auto Rec = Type->getAs<RecordType>()) {
2665 if (const RecordType *Record = NewBaseType->getAs<RecordType>()) {
2693 if (BaseType->isDependentType())
2741 CXXRecordDecl *DerivedRD = Derived->getAsCXXRecordDecl();
2745 CXXRecordDecl *BaseRD = Base->getAsCXXRecordDecl();
2769 CXXRecordDecl *DerivedRD = Derived->getAsCXXRecordDecl();
2773 CXXRecordDecl *BaseRD = Base->getAsCXXRecordDecl();
2974 MD->getType()->isDependentType()))
3071 const Type *T = FD.getType()->getBaseElementTypeUnsafe();
3102 const auto Base = Specifier->getType()->getAsCXXRecordDecl();
3124 auto Base = P.back().Base->getType()->getAsCXXRecordDecl();
3492 if (FD->getType()->isReferenceType())
3566 if (T->isPointerType() &&
3567 BaseClasses.count(T->getPointeeType())) {
3569 << T->getPointeeType() << FoundVD;
3577 const bool IsReference = FoundVD->getType()->isReferenceType();
3756 if (!FD->getType()->isReferenceType())
3891 if (!FD->getType()->isDependentType() && !InitExpr->isTypeDependent()) {
4243 if (Member->getType()->isDependentType() || Init->isTypeDependent()) {
4357 if (!BaseType->isDependentType() && !BaseType->isRecordType())
4357 if (!BaseType->isDependentType() && !BaseType->isRecordType())
4367 bool Dependent = BaseType->isDependentType() || Init->isTypeDependent();
4372 if (!BaseType->containsUnexpandedParameterPack()) {
4585 return Referenced->getType()->isRValueReferenceType();
4678 if (FieldBaseElementType->isRecordType()) {
4710 if (FieldBaseElementType->isReferenceType()) {
4815 CXXRecordDecl *FieldRD = Field->getType()->getAsCXXRecordDecl();
4840 if (T->isIncompleteArrayType())
5007 = Info.AllBaseFields.lookup(VBase.getType()->getAs<RecordType>())) {
5046 = Info.AllBaseFields.lookup(Base.getType()->getAs<RecordType>())) {
5087 if (F->getType()->isIncompleteArrayType()) {
5120 if (const RecordType *RT = Field->getType()->getAs<RecordType>()) {
5391 const RecordType* RT = FieldType->getAs<RecordType>();
5424 const RecordType *RT = Base.getType()->getAs<RecordType>();
5459 const RecordType *RT = VBase.getType()->castAs<RecordType>();
5506 const auto *RD = Context.getBaseElementType(T)->getAsCXXRecordDecl();
5530 DiagnoseAbstractType(T->getAsCXXRecordDecl());
5676 if (T->isArrayType()) {
5680 CanQualType CT = T->getCanonicalTypeUnqualified().getUnqualifiedType();
6312 if (F->getType()->isReferenceType() ||
6313 (F->getType().isConstQualified() && F->getType()->isScalarType())) {
6321 << F->getType()->isReferenceType()
6746 const RecordType *BaseType = B.getType()->getAs<RecordType>();
6768 if (const RecordType *RecordTy = BaseType->getAs<RecordType>()) {
6819 const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
6834 MD->getCanonicalDecl()->getType()->castAs<FunctionProtoType>();
6897 const FunctionProtoType *Type = MD->getType()->getAs<FunctionProtoType>();
6935 if (ExpectedParams && ArgType->isReferenceType()) {
6937 QualType ReferentType = ArgType->getPointeeType();
7084 const auto *FPT = MD->getType()->castAs<FunctionProtoType>();
7106 if (FD->getType()->isReferenceType())
7109 Classes.push_back(FD->getType()->getAsCXXRecordDecl());
7214 MD->getParamDecl(0)->getType()->getAs<ReferenceType>())
7478 CXXRecordDecl *BaseClass = Base->getType()->getAsCXXRecordDecl();
7508 CXXRecordDecl *FieldRecord = FieldType->getAsCXXRecordDecl();
7516 if (FieldType->isReferenceType() && !FD->hasInClassInitializer()) {
7540 if (FieldType->isRValueReferenceType()) {
7548 if (FieldType->isReferenceType()) {
7580 CXXRecordDecl *UnionFieldRecord = UnionFieldType->getAsCXXRecordDecl();
7937 CXXRecordDecl *SubRD = SubType->getAsCXXRecordDecl();
7996 if (!checkTrivialClassMembers(S, FieldType->getAsCXXRecordDecl(),
8068 const ReferenceType *RT = Param0->getType()->getAs<ReferenceType>();
8085 Param0->getType()->getAs<RValueReferenceType>();
8209 Specifier->getType()->castAs<RecordType>()->getDecl();
8339 if ((!B.getType()->isDependentType() &&
8340 !B.getType()->getAsCXXRecordDecl()->canPassInRegisters()) ||
8356 if (const auto *RT = FT->getBaseElementTypeUnsafe()->getAs<RecordType>())
8676 const FunctionProtoType *Proto = R->getAs<FunctionProtoType>();
8748 if (!declaresSameEntity(ParamType->getAsCXXRecordDecl(), RD)) {
8790 if (const TypedefType *TT = DeclaratorType->getAs<TypedefType>())
8794 DeclaratorType->getAs<TemplateSpecializationType>())
8874 const FunctionProtoType *Proto = R->getAs<FunctionProtoType>();
8948 const FunctionProtoType *Proto = R->getAs<FunctionProtoType>();
9021 } else if (!Proto->getReturnType()->isDependentType()) {
9041 if (ConvType->isArrayType()) {
9045 } else if (ConvType->isFunctionType()) {
9088 if (const ReferenceType *ConvTypeRef = ConvType->getAs<ReferenceType>())
9093 else if (ConvType->isRecordType()) {
9101 } else if (ConvType->isVoidType()) {
9238 } else if (!RetTy.hasQualifiers() && RetTy->isDependentType()) {
9576 CXXRecordDecl *Base = BaseSpec.getType()->getAsCXXRecordDecl();
9590 !FIt->getType()->isIntegralOrEnumerationType()) {
9658 if (const RecordType *RT = Ty->getAs<RecordType>()) {
9668 Ty->getAs<TemplateSpecializationType>()) {
9765 if (const ReferenceType *RT = ArgType->getAs<ReferenceType>())
10190 if (B.getType()->getAsCXXRecordDecl() == Base)
10292 CanQualType CanonicalDesiredBase = DesiredBase->getCanonicalTypeUnqualified()
10295 CanQualType BaseType = Base.getType()->getCanonicalTypeUnqualified();
11217 auto *RT = Base->getType()->getAs<RecordType>();
11245 ->getAs<RecordType>()) {
11510 Constructor->getType()->castAs<FunctionProtoType>());
11587 const FunctionProtoType *FPT = TInfo->getType()->castAs<FunctionProtoType>();
11646 Constructor->getType()->castAs<FunctionProtoType>());
11674 auto *BaseRD = B.getType()->getAsCXXRecordDecl();
11794 Destructor->getType()->castAs<FunctionProtoType>());
11874 const FunctionProtoType *DtorType = Destructor->getType()->
12048 const Type *E = T->getBaseElementTypeUnsafe();
12127 if (const RecordType *RecordTy = T->getAs<RecordType>()) {
12305 if (T->isArrayType() && !T.isConstQualified() && !T.isVolatileQualified() &&
12465 CopyAssignOperator->getType()->castAs<FunctionProtoType>());
12493 = OtherRefType->getAs<LValueReferenceType>()) {
12515 if (!BaseType->isRecordType()) {
12562 if (Field->getType()->isReferenceType()) {
12572 if (!BaseType->getAs<RecordType>() && BaseType.isConstQualified()) {
12585 if (FieldType->isIncompleteArrayType()) {
12747 CXXRecordDecl *Base = BaseSpec->getType()->getAsCXXRecordDecl();
12783 Existing->getType()->getAsCXXRecordDecl()->getCanonicalDecl())
12787 BI.getType()->getAsCXXRecordDecl()->getCanonicalDecl())
12842 MoveAssignOperator->getType()->castAs<FunctionProtoType>());
12852 QualType OtherRefType = Other->getType()->
12882 if (!BaseType->isRecordType()) {
12930 if (Field->getType()->isReferenceType()) {
12940 if (!BaseType->getAs<RecordType>() && BaseType.isConstQualified()) {
12953 if (FieldType->isIncompleteArrayType()) {
13127 CopyConstructor->getType()->castAs<FunctionProtoType>());
13259 MoveConstructor->getType()->castAs<FunctionProtoType>());
13290 assert(!Conv->getReturnType()->isUndeducedType());
13323 Invoker->setType(Conv->getReturnType()->getPointeeType());
13492 DeclInitType->getBaseElementTypeUnsafe()->getAsCXXRecordDecl()) &&
13595 if (!VD->getType()->isArrayType()) {
13646 = Constructor->getType()->getAs<FunctionProtoType>();
13710 FnDecl->getType()->getAs<FunctionType>()->getReturnType();
13713 if (ResultType->isDependentType())
13720 if (auto *PtrTy = ResultType->getAs<PointerType>()) {
13745 if (FirstParamType->isDependentType())
13753 FnDecl->getParamDecl(0)->getType()->getAs<PointerType>()) {
13872 if (ParamType->isDependentType() || ParamType->isRecordType() ||
13872 if (ParamType->isDependentType() || ParamType->isRecordType() ||
13873 ParamType->isEnumeralType()) {
13939 FnDecl->getType()->getAs<FunctionProtoType>()->isVariadic()) {
13965 if (!ParamType->isSpecificBuiltinType(BuiltinType::Int) &&
13966 !ParamType->isDependentType())
14001 PmArgs->getType()->getAs<TemplateTypeParmType>();
14063 if (ParamType->isSpecificBuiltinType(BuiltinType::ULongLong) ||
14064 ParamType->isSpecificBuiltinType(BuiltinType::LongDouble) ||
14070 } else if (const PointerType *Ptr = ParamType->getAs<PointerType>()) {
14083 } else if (ParamType->isRealFloatingType()) {
14088 } else if (ParamType->isIntegerType()) {
14109 const PointerType *PT = FirstParamType->getAs<PointerType>();
14267 if (ExDeclType->isArrayType())
14269 else if (ExDeclType->isFunctionType())
14276 if (!ExDeclType->isDependentType() && ExDeclType->isRValueReferenceType()) {
14276 if (!ExDeclType->isDependentType() && ExDeclType->isRValueReferenceType()) {
14281 if (ExDeclType->isVariablyModifiedType()) {
14289 if (const PointerType *Ptr = BaseType->getAs<PointerType>()) {
14293 } else if (const ReferenceType *Ref = BaseType->getAs<ReferenceType>()) {
14299 if (!Invalid && (Mode == 0 || !BaseType->isVoidType()) &&
14300 !BaseType->isDependentType() && RequireCompleteType(Loc, BaseType, DK))
14303 if (!Invalid && !ExDeclType->isDependentType() &&
14313 if (const ReferenceType *RT = T->getAs<ReferenceType>())
14316 if (T->isObjCObjectType()) {
14319 } else if (T->isObjCObjectPointerType()) {
14334 if (!Invalid && !ExDeclType->isDependentType()) {
14335 if (const RecordType *recordType = ExDeclType->getAs<RecordType>()) {
14539 if (!T->isElaboratedTypeSpecifier()) {
14542 if (const RecordType *RT = T->getAs<RecordType>()) {
14564 } else if (T->getAs<EnumType>()) {
14783 if (TempParams.size() && !T->isElaboratedTypeSpecifier()) {
14838 if (!TInfo->getType()->isFunctionType()) {
15309 const auto *NewFT = New->getType()->getAs<FunctionProtoType>();
15310 const auto *OldFT = Old->getType()->getAs<FunctionProtoType>();
15357 QualType NewTy = New->getType()->getAs<FunctionType>()->getReturnType();
15358 QualType OldTy = Old->getType()->getAs<FunctionType>()->getReturnType();
15361 NewTy->isDependentType() || OldTy->isDependentType())
15361 NewTy->isDependentType() || OldTy->isDependentType())
15368 if (const PointerType *NewPT = NewTy->getAs<PointerType>()) {
15369 if (const PointerType *OldPT = OldTy->getAs<PointerType>()) {
15373 } else if (const ReferenceType *NewRT = NewTy->getAs<ReferenceType>()) {
15374 if (const ReferenceType *OldRT = OldTy->getAs<ReferenceType>()) {
15400 if (const RecordType *RT = NewClassTy->getAs<RecordType>()) {
15748 ResolveExceptionSpec(Loc, I->getType()->castAs<FunctionProtoType>());
15779 cast<CXXRecordDecl>(I.getType()->castAs<RecordType>()->getDecl());
15826 ->getAs<RecordType>()) {
16092 NoexceptExpr->getType()->getCanonicalTypeUnqualified() ==
tools/clang/lib/Sema/SemaDeclObjC.cpp 52 method->getReturnType()->castAs<ObjCObjectPointerType>()->getObjectType();
78 receiverClass = receiverTypeIfCall->castAs<ObjCObjectPointerType>()
346 if (const PointerType *PT = T->getAs<PointerType>()) {
348 } else if (const ReferenceType *RT = T->getAs<ReferenceType>()) {
373 if (!ResultType->isDependentType() && !ResultType->isVoidType() &&
373 if (!ResultType->isDependentType() && !ResultType->isVoidType() &&
588 if (T->isObjCObjectType()) {
589 if (NamedDecl *IDecl = T->castAs<ObjCObjectType>()->getInterface()) {
678 if (typeBound->isObjCObjectPointerType()) {
680 } else if (typeBound->isObjCObjectType()) {
1118 if (T->isObjCObjectType())
1119 if (const ObjCObjectType *OPT = T->getAs<ObjCObjectType>()) {
1153 if (T->isObjCObjectType()) {
1154 if (NamedDecl *IDecl = T->castAs<ObjCObjectType>()->getInterface()) {
1369 if (type->isObjCObjectPointerType() ||
1370 type->isBlockPointerType() ||
1371 type->isDependentType() ||
1372 type->isObjCObjectType())
1433 if (const auto *objcObjectType = base->getAs<ObjCObjectType>()) {
1588 if (type->getAs<ObjCInterfaceType>()) {
2336 *MethodImpl->getReturnType()->getNullability(S.Context);
2338 *MethodDecl->getReturnType()->getNullability(S.Context);
2365 MethodImpl->getReturnType()->getAs<ObjCObjectPointerType>()) {
2367 MethodDecl->getReturnType()->getAs<ObjCObjectPointerType>()) {
2428 *ImplTy->getNullability(S.Context),
2432 *IfaceTy->getNullability(S.Context),
2449 ImplTy->getAs<ObjCObjectPointerType>()) {
2451 IfaceTy->getAs<ObjCObjectPointerType>()) {
2535 if (unmatched->getReturnType()->isObjCObjectPointerType()) {
3050 if (!TDD || !TDD->getUnderlyingType()->isObjCObjectType()) {
3433 return (chosen->getReturnType()->isIntegerType());
3672 else if (!ObjectType->isObjCObjectPointerType())
3675 ObjectType->getAsObjCInterfacePointerType()) {
3679 else if (ObjectType->isObjCIdType() || ObjectType->isObjCQualifiedIdType())
3679 else if (ObjectType->isObjCIdType() || ObjectType->isObjCQualifiedIdType())
3681 else if (ObjectType->isObjCClassType() || ObjectType->isObjCQualifiedClassType())
3681 else if (ObjectType->isObjCClassType() || ObjectType->isObjCQualifiedClassType())
3771 if (IvarTy->isIncompleteArrayType() &&
3773 IvarTy->isObjCLifetimeType()) {
3801 if (T->isIncompleteArrayType())
3803 const auto *RecordTy = T->getAs<RecordType>();
3844 if (IvarTy->isIncompleteArrayType()) {
3849 } else if (const RecordType *RecordTy = IvarTy->getAs<RecordType>()) {
4142 = ResultType->getAs<ObjCObjectPointerType>()) {
4422 auto nullability = type->getNullability(S.Context);
4423 auto prevNullability = prevType->getNullability(S.Context);
4506 if (P->getType()->isVectorType()) {
4513 if (Method->getReturnType()->isVectorType()) {
4534 << T << (Method->getReturnType()->isVectorType() ? /*return value*/ 1
4767 !ObjCMethod->getReturnType()->isObjCIndependentClassType())
4869 } else if (T->isDependentType()) {
4871 } else if (T->isObjCQualifiedIdType()) {
4874 } else if (T->isObjCIdType()) {
4876 } else if (!T->isObjCObjectPointerType()) {
4879 } else if (!T->castAs<ObjCObjectPointerType>()->getInterfaceType()) {
4960 if (QT->isRecordType())
tools/clang/lib/Sema/SemaExceptionSpec.cpp 28 if (const PointerType *PtrTy = T->getAs<PointerType>())
30 else if (const ReferenceType *RefTy = T->getAs<ReferenceType>())
32 else if (const MemberPointerType *MPTy = T->getAs<MemberPointerType>())
34 return T->getAs<FunctionProtoType>();
114 if (T->isArrayType())
116 else if (T->isFunctionType())
121 if (const PointerType *PT = T->getAs<PointerType>()) {
127 if (PointeeT->isVoidType())
129 } else if (const ReferenceType *RT = T->getAs<ReferenceType>()) {
156 if (!(PointeeT->isRecordType() &&
157 PointeeT->castAs<RecordType>()->isBeingDefined()) &&
173 if (const PointerType *PT = T->getAs<PointerType>())
175 else if (const MemberPointerType *PT = T->getAs<MemberPointerType>())
180 const FunctionProtoType *FnT = T->getAs<FunctionProtoType>();
199 SourceDecl->getType()->castAs<FunctionProtoType>();
212 SourceDecl->getType()->castAs<FunctionProtoType>();
237 auto EST = MD->getType()->castAs<FunctionProtoType>()->getExceptionSpecType();
266 auto *Ty = Decl->getTypeSourceInfo()->getType()->castAs<FunctionProtoType>();
301 Old->getType()->getAs<FunctionProtoType>(), Old->getLocation(),
302 New->getType()->getAs<FunctionProtoType>(), New->getLocation(),
325 New->getType()->castAs<FunctionProtoType>();
347 Old->getType()->castAs<FunctionProtoType>();
608 if (CXXRecordDecl *ExRecord = Exception->getAsCXXRecordDecl()) {
662 const ReferenceType *RefTy = HandlerType->getAs<ReferenceType>();
671 if (HandlerType->isPointerType() || HandlerType->isMemberPointerType()) {
671 if (HandlerType->isPointerType() || HandlerType->isMemberPointerType()) {
678 if (ExceptionType->isNullPtrType())
696 if (!ExceptionType->isPointerType() || !HandlerType->isPointerType())
696 if (!ExceptionType->isPointerType() || !HandlerType->isPointerType())
702 ExceptionType->getPointeeType(), EQuals);
704 HandlerType->getPointeeType(), HQuals);
708 if (HandlerType->isVoidType() && ExceptionType->isObjectType())
708 if (HandlerType->isVoidType() && ExceptionType->isObjectType())
716 if (!ExceptionType->isRecordType() || !HandlerType->isRecordType())
716 if (!ExceptionType->isRecordType() || !HandlerType->isRecordType())
818 if (const ReferenceType *RefTy = SubI->getAs<ReferenceType>())
942 if (New->getType()->castAs<FunctionProtoType>()->getExceptionSpecType() ==
967 Old->getType()->castAs<FunctionProtoType>(),
969 New->getType()->castAs<FunctionProtoType>(),
995 if (T->isSpecificPlaceholderType(BuiltinType::BoundMember)) {
1004 ->castAs<MemberPointerType>()->getPointeeType();
1016 if ((FT = T->getAs<FunctionProtoType>())) {
1017 } else if (const PointerType *PT = T->getAs<PointerType>())
1018 FT = PT->getPointeeType()->getAs<FunctionProtoType>();
1019 else if (const ReferenceType *RT = T->getAs<ReferenceType>())
1020 FT = RT->getPointeeType()->getAs<FunctionProtoType>();
1021 else if (const MemberPointerType *MT = T->getAs<MemberPointerType>())
1022 FT = MT->getPointeeType()->getAs<FunctionProtoType>();
1023 else if (const BlockPointerType *BT = T->getAs<BlockPointerType>())
1024 FT = BT->getPointeeType()->getAs<FunctionProtoType>();
1040 if (!DC->getTypeAsWritten()->isReferenceType())
1057 const RecordType *RT = Op->getType()->getAs<RecordType>();
1154 if (DTy.isNull() || DTy->isDependentType()) {
1159 if (const RecordType *RT = DTy->getAs<RecordType>()) {
tools/clang/lib/Sema/SemaExpr.cpp 65 if (getLangOpts().CPlusPlus14 && FD->getReturnType()->isUndeducedType() &&
268 if (getLangOpts().CPlusPlus14 && FD->getReturnType()->isUndeducedType() &&
362 if (const PointerType *ptr = type->getAs<PointerType>()) {
363 fn = ptr->getPointeeType()->getAs<FunctionType>();
366 } else if (const BlockPointerType *ptr = type->getAs<BlockPointerType>()) {
367 fn = ptr->getPointeeType()->castAs<FunctionType>();
442 if (E->getType()->isPlaceholderType()) {
451 if (Ty->isFunctionType()) {
459 } else if (Ty->isArrayType()) {
512 BaseType = BaseType->getPointeeType();
513 if (const ObjCObjectType *OTy = BaseType->getAs<ObjCObjectType>())
556 if (E->getType()->isPlaceholderType()) {
574 T->isDependentType() ||
575 T->isRecordType()))
583 if (T->isVoidType())
588 T->isHalfType()) {
624 if (T->isMemberPointerType() &&
640 CastKind CK = T->isNullPtrType() ? CK_NullToPointer : CK_LValueToRValue;
646 if (const AtomicType *Atomic = T->getAs<AtomicType>()) {
672 if (Ty->isFunctionType()) {
700 if (Ty->isHalfType() && !getLangOpts().NativeHalfType)
705 if (Ty->isIntegralOrUnscopedEnumerationType()) {
725 if (Ty->isPromotableIntegerType()) {
751 const BuiltinType *BTy = Ty->getAs<BuiltinType>();
791 if (Ty->isIncompleteType()) {
800 if (Ty->isVoidType())
803 if (Ty->isObjCObjectType())
819 if (getLangOpts().CPlusPlus11 && !Ty->isDependentType())
820 if (CXXRecordDecl *Record = Ty->getAsCXXRecordDecl())
826 if (getLangOpts().ObjCAutoRefCount && Ty->isObjCLifetimeType())
829 if (Ty->isObjCObjectType())
853 if (Ty->isRecordType()) {
874 else if (Ty->isObjCObjectType())
889 if (const BuiltinType *PlaceholderTy = E->getType()->getAsPlaceholderType()) {
955 if (IntTy->isComplexType() || IntTy->isRealFloatingType()) return true;
955 if (IntTy->isComplexType() || IntTy->isRealFloatingType()) return true;
957 if (IntTy->isIntegerType()) {
963 assert(IntTy->isComplexIntegerType());
1032 if (IntTy->isIntegerType()) {
1041 assert(IntTy->isComplexIntegerType());
1062 bool LHSFloat = LHSType->isRealFloatingType();
1063 bool RHSFloat = RHSType->isRealFloatingType();
1082 if (LHSType->isHalfType() && !S.getLangOpts().NativeHalfType)
1103 if (!LHSType->isFloatingType() || !RHSType->isFloatingType() ||
1103 if (!LHSType->isFloatingType() || !RHSType->isFloatingType() ||
1107 assert(LHSType->isFloatingType() && RHSType->isFloatingType() &&
1107 assert(LHSType->isFloatingType() && RHSType->isFloatingType() &&
1110 auto *LHSComplex = LHSType->getAs<ComplexType>();
1111 auto *RHSComplex = RHSType->getAs<ComplexType>();
1159 bool LHSSigned = LHSType->hasSignedIntegerRepresentation();
1160 bool RHSSigned = RHSType->hasSignedIntegerRepresentation();
1208 const ComplexType *LHSComplexInt = LHSType->getAsComplexIntegerType();
1209 const ComplexType *RHSComplexInt = RHSType->getAsComplexIntegerType();
1251 const auto *BTy = Ty->getAs<BuiltinType>();
1299 assert((LHSTy->isFixedPointType() || RHSTy->isFixedPointType()) &&
1299 assert((LHSTy->isFixedPointType() || RHSTy->isFixedPointType()) &&
1301 assert((LHSTy->isFixedPointOrIntegerType() ||
1302 RHSTy->isFixedPointOrIntegerType()) &&
1310 if (RHSTy->isSignedFixedPointType() && LHSTy->isUnsignedFixedPointType())
1310 if (RHSTy->isSignedFixedPointType() && LHSTy->isUnsignedFixedPointType())
1312 else if (RHSTy->isUnsignedFixedPointType() && LHSTy->isSignedFixedPointType())
1312 else if (RHSTy->isUnsignedFixedPointType() && LHSTy->isSignedFixedPointType())
1328 if (LHSTy->isSaturatedFixedPointType() || RHSTy->isSaturatedFixedPointType())
1328 if (LHSTy->isSaturatedFixedPointType() || RHSTy->isSaturatedFixedPointType())
1358 if (const AtomicType *AtomicLHS = LHSType->getAs<AtomicType>())
1367 if (!LHSType->isArithmeticType() || !RHSType->isArithmeticType())
1367 if (!LHSType->isArithmeticType() || !RHSType->isArithmeticType())
1372 if (LHSType->isPromotableIntegerType())
1392 if (LHSType->isComplexType() || RHSType->isComplexType())
1392 if (LHSType->isComplexType() || RHSType->isComplexType())
1397 if (LHSType->isRealFloatingType() || RHSType->isRealFloatingType())
1397 if (LHSType->isRealFloatingType() || RHSType->isRealFloatingType())
1402 if (LHSType->isComplexIntegerType() || RHSType->isComplexIntegerType())
1402 if (LHSType->isComplexIntegerType() || RHSType->isComplexIntegerType())
1406 if (LHSType->isFixedPointType() || RHSType->isFixedPointType())
1406 if (LHSType->isFixedPointType() || RHSType->isFixedPointType())
1483 if (Types[i]->getType()->containsUnexpandedParameterPack())
1486 if (Types[i]->getType()->isDependentType()) {
1492 if (Types[i]->getType()->isIncompleteType())
1494 else if (!Types[i]->getType()->isObjectType())
1496 else if (Types[i]->getType()->isVariablyModifiedType())
1509 if (Types[j] && !Types[j]->getType()->isDependentType() &&
1610 if (ArgTy[ArgIdx]->isArrayType())
1744 bool CharIsUnsigned = CharTy->isUnsignedIntegerType();
1800 if (VD->getType()->isReferenceType() &&
2128 RD = ThisType->getPointeeType()->getAsCXXRecordDecl();
2128 RD = ThisType->getPointeeType()->getAsCXXRecordDecl();
2200 Name.getCXXNameType()->isDependentType()) {
2679 auto FromPtrType = FromType->getAs<PointerType>();
2682 ? FromType->getPointeeType().getAddressSpace()
2698 DestRecordType = DestType->getPointeeType();
2700 if (FromType->getAs<PointerType>()) {
2701 FromRecordType = FromType->getPointeeType();
2712 if (DestType->isDependentType() || FromType->isDependentType())
2712 if (DestType->isDependentType() || FromType->isDependentType())
2744 assert(QType->isRecordType() && "lookup done with non-record type");
2746 QualType QRecordType = QualType(QType->getAs<RecordType>(), 0);
2996 if (auto *FPT = type->getAs<FunctionProtoType>()) {
3047 if (const ReferenceType *reftype = type->getAs<ReferenceType>()) {
3068 type->isVoidType()) {
3116 const FunctionType *fty = type->castAs<FunctionType>();
3370 if (!QT->isIntegerType() || QT->isBooleanType() || QT->isCharType()) {
3370 if (!QT->isIntegerType() || QT->isBooleanType() || QT->isCharType()) {
3370 if (!QT->isIntegerType() || QT->isBooleanType() || QT->isCharType()) {
3580 const BuiltinType *BTy = Ty->getAs<BuiltinType>();
3740 if (!(T->isArithmeticType() || T->isVoidType() || T->isVectorType())) {
3740 if (!(T->isArithmeticType() || T->isVoidType() || T->isVectorType())) {
3740 if (!(T->isArithmeticType() || T->isVoidType() || T->isVectorType())) {
3746 assert((T->isVoidType() || !T->isIncompleteType()) &&
3746 assert((T->isVoidType() || !T->isIncompleteType()) &&
3760 if (T->isFunctionType() &&
3771 if (T->isVoidType()) {
3787 if (!S.LangOpts.ObjCRuntime.allowsSizeofAlignof() && T->isObjCObjectType()) {
3825 assert(!ExprTy->isReferenceType());
3864 assert(!ExprTy->isReferenceType());
3866 if (ExprTy->isFunctionType()) {
3887 if (Type->isPointerType() && OType->isArrayType()) {
3887 if (Type->isPointerType() && OType->isArrayType()) {
3928 if (ExprType->isDependentType())
3937 if (const ReferenceType *Ref = ExprType->getAs<ReferenceType>())
3960 if (ExprType->isFunctionType()) {
4022 if (!FD->getType()->isReferenceType())
4041 assert(T->isVariablyModifiedType());
4140 } while (!T.isNull() && T->isVariablyModifiedType());
4154 if (!T->isDependentType() &&
4158 if (T->isVariablyModifiedType() && FunctionScopes.size() > 1) {
4159 if (auto *TT = T->getAs<TypedefType>()) {
4219 if (ExprKind == UETT_SizeOf && E->getType()->isVariableArrayType()) {
4264 if (const ComplexType *CT = V.get()->getType()->getAs<ComplexType>())
4268 if (V.get()->getType()->isArithmeticType())
4311 assert(op->getType()->isObjCObjectPointerType());
4317 << op->getType()->castAs<ObjCObjectPointerType>()->getPointeeType()
4325 return MSProp->getPropertyDecl()->getType()->isArrayType();
4333 base->getType()->isSpecificPlaceholderType(BuiltinType::OMPArraySection))
4359 if (base->getType()->isNonOverloadPlaceholderType()) {
4368 if (idx->getType()->isNonOverloadPlaceholderType()) {
4405 (base->getType()->isRecordType() ||
4406 (!base->getType()->isObjCObjectPointerType() &&
4407 idx->getType()->isRecordType()))) {
4440 if (ResultTy->hasAttr(attr::NoDeref)) {
4459 if (Ptr->getPointeeType()->hasAttr(attr::NoDeref))
4468 if (Base->getType()->isPlaceholderType() &&
4469 !Base->getType()->isSpecificPlaceholderType(
4476 if (LowerBound && LowerBound->getType()->isNonOverloadPlaceholderType()) {
4485 if (Length && Length->getType()->isNonOverloadPlaceholderType()) {
4508 if (OriginalTy->isAnyPointerType()) {
4509 ResultTy = OriginalTy->getPointeeType();
4510 } else if (OriginalTy->isArrayType()) {
4511 ResultTy = OriginalTy->getAsArrayTypeUnsafe()->getElementType();
4527 if (LowerBound->getType()->isSpecificBuiltinType(BuiltinType::Char_S) ||
4528 LowerBound->getType()->isSpecificBuiltinType(BuiltinType::Char_U))
4541 if (Length->getType()->isSpecificBuiltinType(BuiltinType::Char_S) ||
4542 Length->getType()->isSpecificBuiltinType(BuiltinType::Char_U))
4551 if (ResultTy->isFunctionType()) {
4561 if (LowerBound && !OriginalTy->isAnyPointerType()) {
4589 (OriginalTy.isNull() || (!OriginalTy->isConstantArrayType() &&
4590 !OriginalTy->isVariableArrayType()))) {
4595 << (!OriginalTy.isNull() && OriginalTy->isArrayType());
4599 if (!Base->getType()->isSpecificPlaceholderType(
4625 if (Op->getType()->isArrayType() && !Op->isLValue())
4631 if (!LHSExp->getType()->getAs<VectorType>()) {
4650 if (LHSTy->isDependentType() || RHSTy->isDependentType()) {
4650 if (LHSTy->isDependentType() || RHSTy->isDependentType()) {
4654 } else if (const PointerType *PTy = LHSTy->getAs<PointerType>()) {
4659 LHSTy->getAs<ObjCObjectPointerType>()) {
4670 } else if (const PointerType *PTy = RHSTy->getAs<PointerType>()) {
4676 RHSTy->getAs<ObjCObjectPointerType>()) {
4686 } else if (const VectorType *VTy = LHSTy->getAs<VectorType>()) {
4707 } else if (LHSTy->isArrayType()) {
4721 ResultType = LHSTy->getAs<PointerType>()->getPointeeType();
4722 } else if (RHSTy->isArrayType()) {
4732 ResultType = RHSTy->getAs<PointerType>()->getPointeeType();
4738 if (!IndexExpr->getType()->isIntegerType() && !IndexExpr->isTypeDependent())
4742 if ((IndexExpr->getType()->isSpecificBuiltinType(BuiltinType::Char_S) ||
4743 IndexExpr->getType()->isSpecificBuiltinType(BuiltinType::Char_U))
4751 if (ResultType->isFunctionType()) {
4757 if (ResultType->isVoidType() && !getLangOpts().CPlusPlus) {
4765 } else if (!ResultType->isDependentType() &&
4773 if (LHSExp->IgnoreParenImpCasts()->getType()->isVariablyModifiedType() &&
4776 LHSExp->IgnoreParenImpCasts()->getType()->getAs<TypedefType>()) {
4942 else if (Fn && Fn->getType()->isBlockPointerType())
5043 unsigned FnKind = Fn->getType()->isBlockPointerType()
5426 if (!ParamType->isPointerType() ||
5428 !ArgType->isPointerType() ||
5429 !ArgType->getPointeeType().getQualifiers().hasAddressSpace()) {
5434 QualType PointeeType = ParamType->getPointeeType();
5439 LangAS AS = ArgType->getPointeeType().getAddressSpace();
5659 if (Fn->getType()->isRecordType())
5817 Fn->getType()->isSpecificBuiltinType(BuiltinType::BuiltinFn)) {
5839 if (const PointerType *PT = Fn->getType()->getAs<PointerType>()) {
5842 FuncT = PT->getPointeeType()->getAs<FunctionType>();
5847 Fn->getType()->getAs<BlockPointerType>()) {
5848 FuncT = BPT->getPointeeType()->castAs<FunctionType>();
5927 if (!FuncT->getReturnType()->isVoidType() &&
5928 !FuncT->getReturnType()->getAs<AutoType>() &&
5929 !FuncT->getReturnType()->isInstantiationDependentType())
5961 Proto = Def->getType()->getAs<FunctionProtoType>();
5970 Proto = FDecl->getType()->getAs<FunctionProtoType>();
6052 if (literalType->isArrayType()) {
6058 if (literalType->isVariableArrayType())
6061 } else if (!literalType->isDependentType() &&
6101 (getLangOpts().CPlusPlus && !(isFileScope && literalType->isArrayType()))
6117 !literalType->isDependentType()) // C99 6.5.2.5p3
6223 if (InitArgList[I]->getType()->isNonOverloadPlaceholderType()) {
6242 assert(E.get()->getType()->isBlockPointerType());
6258 if (type->isObjCObjectPointerType()) {
6260 } else if (type->isBlockPointerType()) {
6264 assert(type->isPointerType());
6280 switch (Type::ScalarTypeKind SrcKind = SrcTy->getScalarTypeKind()) {
6287 switch (DestTy->getScalarTypeKind()) {
6289 LangAS SrcAS = SrcTy->getPointeeType().getAddressSpace();
6290 LangAS DestAS = DestTy->getPointeeType().getAddressSpace();
6321 switch (DestTy->getScalarTypeKind()) {
6345 switch (DestTy->getScalarTypeKind()) {
6361 DestTy->castAs<ComplexType>()->getElementType(),
6366 DestTy->castAs<ComplexType>()->getElementType(),
6377 switch (DestTy->getScalarTypeKind()) {
6386 DestTy->castAs<ComplexType>()->getElementType(),
6391 DestTy->castAs<ComplexType>()->getElementType(),
6409 switch (DestTy->getScalarTypeKind()) {
6415 QualType ET = SrcTy->castAs<ComplexType>()->getElementType();
6425 SrcTy->castAs<ComplexType>()->getElementType(),
6443 switch (DestTy->getScalarTypeKind()) {
6449 QualType ET = SrcTy->castAs<ComplexType>()->getElementType();
6459 SrcTy->castAs<ComplexType>()->getElementType(),
6483 if (const VectorType *vecType = type->getAs<VectorType>()) {
6486 assert(eltType->isScalarType());
6492 if (!type->isRealType()) return false;
6507 assert(destTy->isVectorType() || srcTy->isVectorType());
6507 assert(destTy->isVectorType() || srcTy->isVectorType());
6514 if (srcTy->isScalarType() && destTy->isExtVectorType()) return false;
6514 if (srcTy->isScalarType() && destTy->isExtVectorType()) return false;
6515 if (destTy->isScalarType() && srcTy->isExtVectorType()) return false;
6515 if (destTy->isScalarType() && srcTy->isExtVectorType()) return false;
6534 assert(destTy->isVectorType() || srcTy->isVectorType());
6534 assert(destTy->isVectorType() || srcTy->isVectorType());
6541 if (!srcTy->isIntegralOrEnumerationType()) {
6542 auto *Vec = srcTy->getAs<VectorType>();
6543 if (!Vec || !Vec->getElementType()->isIntegralOrEnumerationType())
6546 if (!destTy->isIntegralOrEnumerationType()) {
6547 auto *Vec = destTy->getAs<VectorType>();
6548 if (!Vec || !Vec->getElementType()->isIntegralOrEnumerationType())
6563 assert(VectorTy->isVectorType() && "Not a vector type!");
6565 if (Ty->isVectorType() || Ty->isIntegralType(Context)) {
6565 if (Ty->isVectorType() || Ty->isIntegralType(Context)) {
6568 Ty->isVectorType() ?
6582 QualType DestElemTy = VectorTy->castAs<VectorType>()->getElementType();
6587 assert(DestElemTy->isFloatingType() ||
6588 DestElemTy->isIntegralOrEnumerationType());
6591 if (VectorTy->isExtVectorType() && SplattedExpr->getType()->isBooleanType()) {
6591 if (VectorTy->isExtVectorType() && SplattedExpr->getType()->isBooleanType()) {
6594 if (DestElemTy->isFloatingType()) {
6616 assert(DestTy->isExtVectorType() && "Not an extended vector type!");
6624 if (SrcTy->isVectorType()) {
6639 if (SrcTy->isPointerType())
6682 && castType->isVectorType() && (PE || PLE)) {
6689 if (!E->getType()->isVectorType())
6710 if (getLangOpts().CPlusPlus && !castType->isVoidType() &&
6747 assert(Ty->isVectorType() && "Expected vector type");
6750 const VectorType *VTy = Ty->castAs<VectorType>();
6874 if (S.getLangOpts().OpenCL && CondTy->isFloatingType()) {
6881 if (CondTy->isScalarType()) return false;
6894 if (!LHSExpr->getType()->isVoidType())
6897 if (!RHSExpr->getType()->isVoidType())
6909 if ((!PointerTy->isAnyPointerType() && !PointerTy->isBlockPointerType()) ||
6909 if ((!PointerTy->isAnyPointerType() && !PointerTy->isBlockPointerType()) ||
6935 if (const BlockPointerType *LHSBTy = LHSTy->getAs<BlockPointerType>()) {
6937 rhptee = RHSTy->castAs<BlockPointerType>()->getPointeeType();
6940 lhptee = LHSTy->castAs<PointerType>()->getPointeeType();
6941 rhptee = RHSTy->castAs<PointerType>()->getPointeeType();
7056 if (!LHSTy->isBlockPointerType() || !RHSTy->isBlockPointerType()) {
7056 if (!LHSTy->isBlockPointerType() || !RHSTy->isBlockPointerType()) {
7057 if (LHSTy->isVoidPointerType() || RHSTy->isVoidPointerType()) {
7057 if (LHSTy->isVoidPointerType() || RHSTy->isVoidPointerType()) {
7083 QualType lhptee = LHSTy->castAs<PointerType>()->getPointeeType();
7084 QualType rhptee = RHSTy->castAs<PointerType>()->getPointeeType();
7087 if (lhptee->isVoidType() && rhptee->isIncompleteOrObjectType()) {
7087 if (lhptee->isVoidType() && rhptee->isIncompleteOrObjectType()) {
7098 if (rhptee->isVoidType() && lhptee->isIncompleteOrObjectType()) {
7098 if (rhptee->isVoidType() && lhptee->isIncompleteOrObjectType()) {
7117 if (!PointerExpr->getType()->isPointerType() ||
7118 !Int.get()->getType()->isIntegerType())
7161 if (!LHSType->isIntegerType() && !LHSType->isRealFloatingType()) {
7161 if (!LHSType->isIntegerType() && !LHSType->isRealFloatingType()) {
7167 if (!RHSType->isIntegerType() && !RHSType->isRealFloatingType()) {
7167 if (!RHSType->isIntegerType() && !RHSType->isRealFloatingType()) {
7178 if (LHSType->isRealFloatingType() || RHSType->isRealFloatingType())
7178 if (LHSType->isRealFloatingType() || RHSType->isRealFloatingType())
7204 const VectorType *CV = CondTy->getAs<VectorType>();
7237 const VectorType *CondTy = Cond->getType()->getAs<VectorType>();
7240 if (EleTy->isIntegerType()) return false;
7255 const VectorType *CV = CondTy->getAs<VectorType>();
7256 const VectorType *RV = VecResTy->getAs<VectorType>();
7294 if (LHS.get()->getType()->isVectorType() ||
7295 RHS.get()->getType()->isVectorType()) {
7316 if (Ty->isBlockPointerType()) {
7349 if (getLangOpts().OpenCL && Cond.get()->getType()->isVectorType())
7360 if (LHS.get()->getType()->isVectorType() ||
7361 RHS.get()->getType()->isVectorType())
7391 if (LHSTy->isArithmeticType() && RHSTy->isArithmeticType()) {
7391 if (LHSTy->isArithmeticType() && RHSTy->isArithmeticType()) {
7400 if (const RecordType *LHSRT = LHSTy->getAs<RecordType>()) { // C99 6.5.15p3
7401 if (const RecordType *RHSRT = RHSTy->getAs<RecordType>())
7411 if (LHSTy->isVoidType() || RHSTy->isVoidType()) {
7411 if (LHSTy->isVoidType() || RHSTy->isVoidType()) {
7430 if (LHSTy->isBlockPointerType() || RHSTy->isBlockPointerType())
7430 if (LHSTy->isBlockPointerType() || RHSTy->isBlockPointerType())
7435 if (LHSTy->isPointerType() && RHSTy->isPointerType())
7435 if (LHSTy->isPointerType() && RHSTy->isPointerType())
7471 if (LHSTy->isObjCClassType() &&
7476 if (RHSTy->isObjCClassType() &&
7482 if (LHSTy->isObjCIdType() &&
7487 if (RHSTy->isObjCIdType() &&
7504 if (LHSTy->isObjCObjectPointerType() && RHSTy->isObjCObjectPointerType()) {
7504 if (LHSTy->isObjCObjectPointerType() && RHSTy->isObjCObjectPointerType()) {
7510 const ObjCObjectPointerType *LHSOPT = LHSTy->castAs<ObjCObjectPointerType>();
7511 const ObjCObjectPointerType *RHSOPT = RHSTy->castAs<ObjCObjectPointerType>();
7543 } else if (LHSTy->isObjCIdType() || RHSTy->isObjCIdType()) {
7543 } else if (LHSTy->isObjCIdType() || RHSTy->isObjCIdType()) {
7560 if (LHSTy->isVoidPointerType() && RHSTy->isObjCObjectPointerType()) {
7560 if (LHSTy->isVoidPointerType() && RHSTy->isObjCObjectPointerType()) {
7569 QualType lhptee = LHSTy->castAs<PointerType>()->getPointeeType();
7570 QualType rhptee = RHSTy->castAs<ObjCObjectPointerType>()->getPointeeType();
7580 if (LHSTy->isObjCObjectPointerType() && RHSTy->isVoidPointerType()) {
7580 if (LHSTy->isObjCObjectPointerType() && RHSTy->isVoidPointerType()) {
7589 QualType lhptee = LHSTy->castAs<ObjCObjectPointerType>()->getPointeeType();
7590 QualType rhptee = RHSTy->castAs<PointerType>()->getPointeeType();
7684 if (E->getType()->isBooleanType())
7690 if (E->getType()->isPointerType())
7741 if (!ResTy->isAnyPointerType())
7745 Optional<NullabilityKind> Kind = Ty->getNullability(Ctx);
7778 while (ResTy->getNullability(Ctx))
7847 if (commonExpr->isRValue() && (commonExpr->getType()->isRecordType() ||
7848 commonExpr->getType()->isArrayType())) {
8091 if (LHSType->isObjCBuiltinType()) {
8093 if (LHSType->isObjCClassType() && !RHSType->isObjCBuiltinType() &&
8093 if (LHSType->isObjCClassType() && !RHSType->isObjCBuiltinType() &&
8094 !RHSType->isObjCQualifiedClassType())
8098 if (RHSType->isObjCBuiltinType()) {
8099 if (RHSType->isObjCClassType() && !LHSType->isObjCBuiltinType() &&
8099 if (RHSType->isObjCClassType() && !LHSType->isObjCBuiltinType() &&
8100 !LHSType->isObjCQualifiedClassType())
8104 QualType lhptee = LHSType->castAs<ObjCObjectPointerType>()->getPointeeType();
8105 QualType rhptee = RHSType->castAs<ObjCObjectPointerType>()->getPointeeType();
8109 !LHSType->isObjCQualifiedIdType())
8114 if (LHSType->isObjCQualifiedIdType() || RHSType->isObjCQualifiedIdType())
8114 if (LHSType->isObjCQualifiedIdType() || RHSType->isObjCQualifiedIdType())
8136 if (const VectorType *VT = QT->getAs<VectorType>())
8195 if (const ReferenceType *LHSTypeRef = LHSType->getAs<ReferenceType>()) {
8205 if (LHSType->isExtVectorType()) {
8206 if (RHSType->isExtVectorType())
8208 if (RHSType->isArithmeticType()) {
8218 if (LHSType->isVectorType() || RHSType->isVectorType()) {
8218 if (LHSType->isVectorType() || RHSType->isVectorType()) {
8219 if (LHSType->isVectorType() && RHSType->isVectorType()) {
8219 if (LHSType->isVectorType() && RHSType->isVectorType()) {
8240 if (LHSType->isScalarType()) {
8241 const VectorType *VecType = RHSType->getAs<VectorType>();
8261 if (getLangOpts().CPlusPlus && RHSType->getAs<ComplexType>() &&
8262 !LHSType->getAs<ComplexType>())
8266 if (LHSType->isArithmeticType() && RHSType->isArithmeticType() &&
8266 if (LHSType->isArithmeticType() && RHSType->isArithmeticType() &&
8267 !(getLangOpts().CPlusPlus && LHSType->isEnumeralType())) {
8278 LangAS AddrSpaceR = RHSType->getPointeeType().getAddressSpace();
8289 if (RHSType->isIntegerType()) {
8298 if (LHSPointer->getPointeeType()->isVoidType()) {
8304 if (RHSType->isObjCClassType() &&
8316 if (RHSType->getAs<BlockPointerType>()) {
8317 if (LHSPointer->getPointeeType()->isVoidType()) {
8319 LangAS AddrSpaceR = RHSType->getAs<BlockPointerType>()
8334 if (RHSType->isBlockPointerType()) {
8335 LangAS AddrSpaceL = LHSType->getAs<BlockPointerType>()
8338 LangAS AddrSpaceR = RHSType->getAs<BlockPointerType>()
8346 if (RHSType->isIntegerType()) {
8352 if (getLangOpts().ObjC && RHSType->isObjCIdType()) {
8358 if (const PointerType *RHSPT = RHSType->getAs<PointerType>())
8359 if (RHSPT->getPointeeType()->isVoidType()) {
8370 if (RHSType->isObjCObjectPointerType()) {
8382 if (RHSType->isIntegerType()) {
8393 if (RHSType->isVoidPointerType()) {
8398 if (LHSType->isObjCClassType() &&
8408 if (RHSType->isBlockPointerType() &&
8409 LHSType->isBlockCompatibleObjCPointerType(Context)) {
8428 if (LHSType->isIntegerType()) {
8445 if (LHSType->isIntegerType()) {
8461 if (LHSType->isSamplerT() && RHSType->isIntegerType()) {
8461 if (LHSType->isSamplerT() && RHSType->isIntegerType()) {
8496 const RecordType *UT = ArgType->getAsUnionType();
8505 if (it->getType()->isPointerType()) {
8509 if (RHSType->isPointerType())
8510 if (RHSType->castAs<PointerType>()->getPointeeType()->isVoidType()) {
8510 if (RHSType->castAs<PointerType>()->getPointeeType()->isVoidType()) {
8556 if (const auto *LHSPtrType = LHSType->getAs<PointerType>()) {
8557 if (const auto *RHSPtrType = RHS.get()->getType()->getAs<PointerType>()) {
8558 if (RHSPtrType->getPointeeType()->hasAttr(attr::NoDeref) &&
8559 !LHSPtrType->getPointeeType()->hasAttr(attr::NoDeref)) {
8568 if (!LHSType->isRecordType() && !LHSType->isAtomicType()) {
8568 if (!LHSType->isRecordType() && !LHSType->isAtomicType()) {
8615 if ((LHSType->isPointerType() || LHSType->isObjCObjectPointerType() ||
8615 if ((LHSType->isPointerType() || LHSType->isObjCObjectPointerType() ||
8616 LHSType->isBlockPointerType()) &&
8631 if (LHSType->isQueueT() && RHS.get()->isNullPointerConstant(
8643 if (!LHSType->isReferenceType()) {
8746 bool LHSNatVec = LHSType->isVectorType();
8747 bool RHSNatVec = RHSType->isVectorType();
8786 if (vectorEltTy->isIntegralType(S.Context)) {
8787 if (S.getLangOpts().OpenCL && (scalarTy->isRealFloatingType() ||
8788 (scalarTy->isIntegerType() &&
8793 if (!scalarTy->isIntegralType(S.Context))
8796 } else if (vectorEltTy->isRealFloatingType()) {
8797 if (scalarTy->isRealFloatingType()) {
8805 else if (scalarTy->isIntegralType(S.Context))
8825 const auto *VecTy = E->getType()->getAs<VectorType>();
8837 auto Cast = ElementType->isIntegerType() ? CK_IntegralCast : CK_FloatingCast;
8853 bool IntSigned = IntTy->hasSignedIntegerRepresentation();
8854 bool OtherIntSigned = OtherIntTy->hasSignedIntegerRepresentation();
8899 Float.convertFromAPInt(Result, IntTy->hasSignedIntegerRepresentation(),
8902 !IntTy->hasSignedIntegerRepresentation());
8929 const VectorType *VT = VectorTy->getAs<VectorType>();
8938 if (!VectorEltTy->isArithmeticType() || !ScalarTy->isArithmeticType())
8938 if (!VectorEltTy->isArithmeticType() || !ScalarTy->isArithmeticType())
8952 if (VectorEltTy->isIntegralType(S.Context) &&
8953 ScalarTy->isIntegralType(S.Context) &&
8960 } else if (VectorEltTy->isRealFloatingType()) {
8961 if (ScalarTy->isRealFloatingType()) {
8982 } else if (ScalarTy->isIntegralType(S.Context)) {
9018 const VectorType *LHSVecType = LHSType->getAs<VectorType>();
9019 const VectorType *RHSVecType = RHSType->getAs<VectorType>();
9054 LHSVecType->getElementType()->isIntegerType() &&
9062 RHSVecType->getElementType()->isIntegerType()) {
9114 } else if (OtherType->isExtVectorType() || OtherType->isVectorType() ||
9114 } else if (OtherType->isExtVectorType() || OtherType->isVectorType() ||
9115 (OtherType->isScalarType() && VT->getNumElements() == 1)) {
9125 if ((!RHSVecType && !RHSType->isRealType()) ||
9126 (!LHSVecType && !LHSType->isRealType())) {
9183 if ((!LHSNull && !RHSNull) || NonNullType->isBlockPointerType() ||
9184 NonNullType->isMemberPointerType() || NonNullType->isFunctionType())
9184 NonNullType->isMemberPointerType() || NonNullType->isFunctionType())
9198 if (LHSNull == RHSNull || NonNullType->isAnyPointerType() ||
9199 NonNullType->canDecayToPointerType())
9226 if (LHSTy->isPointerType() && !RHSTy->isPointerType()) {
9226 if (LHSTy->isPointerType() && !RHSTy->isPointerType()) {
9227 if (!S.Context.hasSameUnqualifiedType(LHSTy->getPointeeType(), RHSTy))
9239 ArrayElemTy->isDependentType() || RHSTy->isDependentType() ||
9239 ArrayElemTy->isDependentType() || RHSTy->isDependentType() ||
9240 ArrayElemTy->isCharType() ||
9273 if (LHS.get()->getType()->isVectorType() ||
9274 RHS.get()->getType()->isVectorType())
9284 if (compType.isNull() || !compType->isArithmeticType())
9297 if (LHS.get()->getType()->isVectorType() ||
9298 RHS.get()->getType()->isVectorType()) {
9299 if (LHS.get()->getType()->hasIntegerRepresentation() &&
9300 RHS.get()->getType()->hasIntegerRepresentation())
9311 if (compType.isNull() || !compType->isIntegerType())
9354 assert(LHS->getType()->isAnyPointerType());
9355 assert(RHS->getType()->isAnyPointerType());
9359 << 1 /* two pointers */ << LHS->getType()->getPointeeType()
9363 << RHS->getType()->getPointeeType()
9370 assert(Pointer->getType()->isAnyPointerType());
9374 << 0 /* one pointer */ << Pointer->getType()->getPointeeType()
9385 if (const AtomicType *ResAtomicType = ResType->getAs<AtomicType>())
9388 assert(ResType->isAnyPointerType() && !ResType->isDependentType());
9388 assert(ResType->isAnyPointerType() && !ResType->isDependentType());
9389 QualType PointeeTy = ResType->getPointeeType();
9406 if (const AtomicType *ResAtomicType = ResType->getAs<AtomicType>())
9409 if (!ResType->isAnyPointerType()) return true;
9411 QualType PointeeTy = ResType->getPointeeType();
9412 if (PointeeTy->isVoidType()) {
9416 if (PointeeTy->isFunctionType()) {
9437 bool isLHSPointer = LHSExpr->getType()->isAnyPointerType();
9438 bool isRHSPointer = RHSExpr->getType()->isAnyPointerType();
9442 if (isLHSPointer) LHSPointeeTy = LHSExpr->getType()->getPointeeType();
9443 if (isRHSPointer) RHSPointeeTy = RHSExpr->getType()->getPointeeType();
9447 const PointerType *lhsPtr = LHSExpr->getType()->castAs<PointerType>();
9448 const PointerType *rhsPtr = RHSExpr->getType()->castAs<PointerType>();
9459 bool isLHSVoidPtr = isLHSPointer && LHSPointeeTy->isVoidType();
9460 bool isRHSVoidPtr = isRHSPointer && RHSPointeeTy->isVoidType();
9469 bool isLHSFuncPtr = isLHSPointer && LHSPointeeTy->isFunctionType();
9470 bool isRHSFuncPtr = isRHSPointer && RHSPointeeTy->isFunctionType();
9500 IndexExpr->getType()->isIntegralOrUnscopedEnumerationType();
9537 if (!StringType->isAnyPointerType())
9541 if (!StringType->getPointeeType()->isAnyCharacterType())
9541 if (!StringType->getPointeeType()->isAnyCharacterType())
9548 if (!CharType->isAnyCharacterType() &&
9549 CharType->isIntegerType() &&
9573 assert(LHSExpr->getType()->isAnyPointerType());
9574 assert(RHSExpr->getType()->isAnyPointerType());
9586 if (LHS.get()->getType()->isVectorType() ||
9587 RHS.get()->getType()->isVectorType()) {
9607 if (!compType.isNull() && compType->isArithmeticType()) {
9617 if (PExp->getType()->isPointerType()) {
9619 } else if (PExp->getType()->isObjCObjectPointerType()) {
9623 if (PExp->getType()->isPointerType()) {
9625 } else if (PExp->getType()->isObjCObjectPointerType()) {
9631 assert(PExp->getType()->isAnyPointerType());
9633 if (!IExp->getType()->isIntegerType())
9665 if (LHSTy->isPromotableIntegerType())
9680 if (LHS.get()->getType()->isVectorType() ||
9681 RHS.get()->getType()->isVectorType()) {
9697 if (!compType.isNull() && compType->isArithmeticType()) {
9703 if (LHS.get()->getType()->isAnyPointerType()) {
9704 QualType lpointee = LHS.get()->getType()->getPointeeType();
9707 if (LHS.get()->getType()->isObjCObjectPointerType() &&
9712 if (RHS.get()->getType()->isIntegerType()) {
9741 = RHS.get()->getType()->getAs<PointerType>()) {
9768 if (!rpointee->isVoidType() && !rpointee->isFunctionType()) {
9768 if (!rpointee->isVoidType() && !rpointee->isFunctionType()) {
9786 if (const EnumType *ET = T->getAs<EnumType>())
9831 LHSType->hasUnsignedIntegerRepresentation() ||
9881 !LHS.get()->getType()->isVectorType()) {
9899 const VectorType *LHSVecTy = LHSType->getAs<VectorType>();
9904 const VectorType *RHSVecTy = RHSType->getAs<VectorType>();
9908 if (!LHSEleType->isIntegerType()) {
9914 if (!RHSEleType->isIntegerType()) {
9943 const BuiltinType *LHSBT = LHSEleType->getAs<clang::BuiltinType>();
9944 const BuiltinType *RHSBT = RHSEleType->getAs<clang::BuiltinType>();
9969 if (LHS.get()->getType()->isVectorType() ||
9970 RHS.get()->getType()->isVectorType()) {
9975 if (auto LHSVecType = LHS.get()->getType()->getAs<VectorType>())
9978 if (auto RHSVecType = RHS.get()->getType()->getAs<VectorType>())
10004 if (!LHSType->hasIntegerRepresentation() ||
10005 !RHSType->hasIntegerRepresentation())
10027 const EnumType *LHSEnumType = LHSStrippedType->getAs<EnumType>();
10030 const EnumType *RHSEnumType = RHSStrippedType->getAs<EnumType>();
10075 assert(LHSType->isPointerType() || RHSType->isPointerType() ||
10075 assert(LHSType->isPointerType() || RHSType->isPointerType() ||
10076 LHSType->isMemberPointerType() || RHSType->isMemberPointerType());
10076 LHSType->isMemberPointerType() || RHSType->isMemberPointerType());
10080 if ((LHSType->isAnyPointerType() || LHSType->isMemberPointerType()) &&
10080 if ((LHSType->isAnyPointerType() || LHSType->isMemberPointerType()) &&
10081 (RHSType->isAnyPointerType() || RHSType->isMemberPointerType()))
10081 (RHSType->isAnyPointerType() || RHSType->isMemberPointerType()))
10118 LHS->getType()->getAs<ObjCObjectPointerType>();
10128 if (!RHS->getType()->isObjCObjectPointerType())
10152 if (!T->isObjCObjectPointerType())
10156 if (!R->isScalarType())
10306 return D->getType()->isArrayType() && !D->isWeak();
10318 if (LHSType->hasFloatingRepresentation() ||
10319 (LHSType->isBlockPointerType() && !BinaryOperator::isEqualityOp(Opc)) ||
10326 if (Opc == BO_Cmp && LHSType->isArrayType() && RHSType->isArrayType())
10326 if (Opc == BO_Cmp && LHSType->isArrayType() && RHSType->isArrayType())
10517 if (LHSStrippedType->isBooleanType() != RHSStrippedType->isBooleanType()) {
10517 if (LHSStrippedType->isBooleanType() != RHSStrippedType->isBooleanType()) {
10522 int NumEnumArgs = (int)LHSStrippedType->isEnumeralType() +
10523 RHSStrippedType->isEnumeralType();
10525 bool LHSIsEnum = LHSStrippedType->isEnumeralType();
10527 if (OtherTy->hasFloatingRepresentation()) {
10541 LHSStrippedType->castAs<EnumType>()->getDecl()->getIntegerType();
10542 assert(IntType->isArithmeticType());
10547 if (IntType->isPromotableIntegerType())
10562 assert(Type->isArithmeticType() || Type->isEnumeralType());
10562 assert(Type->isArithmeticType() || Type->isEnumeralType());
10574 if (const ComplexType *CT = Type->getAs<ComplexType>()) {
10575 if (CT->getElementType()->hasFloatingRepresentation())
10579 if (Type->isIntegralOrEnumerationType())
10581 if (Type->hasFloatingRepresentation())
10602 assert(Type->isArithmeticType() || Type->isEnumeralType());
10602 assert(Type->isArithmeticType() || Type->isEnumeralType());
10606 if (Type->isAnyComplexType() && BinaryOperator::isRelationalOp(Opc))
10610 if (Type->hasFloatingRepresentation() && BinaryOperator::isEqualityOp(Opc))
10618 if (!NullE.get()->getType()->isAnyPointerType())
10621 if (!E.get()->getType()->isAnyPointerType() &&
10651 return Ty->isPointerType() || Ty->isMemberPointerType();
10651 return Ty->isPointerType() || Ty->isMemberPointerType();
10682 if (LHS.get()->getType()->isVectorType() ||
10683 RHS.get()->getType()->isVectorType())
10691 if ((LHSType->isArithmeticType() || LHSType->isEnumeralType()) &&
10691 if ((LHSType->isArithmeticType() || LHSType->isEnumeralType()) &&
10692 (RHSType->isArithmeticType() || RHSType->isEnumeralType()))
10692 (RHSType->isArithmeticType() || RHSType->isEnumeralType()))
10709 assert(!CompositeTy->isReferenceType());
10718 if (CompositeTy->isFunctionPointerType() ||
10719 CompositeTy->isMemberPointerType() || CompositeTy->isNullPtrType())
10719 CompositeTy->isMemberPointerType() || CompositeTy->isNullPtrType())
10727 if (CompositeTy->isPointerType()) {
10750 if ((LHSType->isIntegerType() && !LHSIsNull) ||
10751 (RHSType->isIntegerType() && !RHSIsNull)) {
10760 ((LHSType->isFunctionPointerType() && RHSType->isVoidPointerType()) ||
10760 ((LHSType->isFunctionPointerType() && RHSType->isVoidPointerType()) ||
10761 (RHSType->isFunctionPointerType() && LHSType->isVoidPointerType()))) {
10761 (RHSType->isFunctionPointerType() && LHSType->isVoidPointerType()))) {
10784 if ((int)LHSType->isPointerType() + (int)RHSType->isPointerType() >=
10784 if ((int)LHSType->isPointerType() + (int)RHSType->isPointerType() >=
10786 (!LangOpts.ObjCAutoRefCount || !(LHSType->isObjCObjectPointerType() ||
10787 RHSType->isObjCObjectPointerType()))) {
10792 } else if (LHSType->isPointerType() &&
10793 RHSType->isPointerType()) { // C99 6.5.8p2
10797 LHSType->castAs<PointerType>()->getPointeeType().getCanonicalType();
10799 RHSType->castAs<PointerType>()->getPointeeType().getCanonicalType();
10805 if (IsRelational && LCanPointeeTy->isFunctionType()) {
10811 (LCanPointeeTy->isVoidType() || RCanPointeeTy->isVoidType())) {
10811 (LCanPointeeTy->isVoidType() || RCanPointeeTy->isVoidType())) {
10813 if ((LCanPointeeTy->isFunctionType() || RCanPointeeTy->isFunctionType())
10813 if ((LCanPointeeTy->isFunctionType() || RCanPointeeTy->isFunctionType())
10824 const PointerType *LHSPtr = LHSType->castAs<PointerType>();
10825 if (!LHSPtr->isAddressSpaceOverlapping(*RHSType->castAs<PointerType>())) {
10849 if (LHSType->isNullPtrType()) {
10853 if (RHSType->isNullPtrType()) {
10861 if (!IsRelational && RHSType->isNullPtrType() &&
10862 (LHSType->isObjCObjectPointerType() || LHSType->isBlockPointerType())) {
10862 (LHSType->isObjCObjectPointerType() || LHSType->isBlockPointerType())) {
10866 if (!IsRelational && LHSType->isNullPtrType() &&
10867 (RHSType->isObjCObjectPointerType() || RHSType->isBlockPointerType())) {
10867 (RHSType->isObjCObjectPointerType() || RHSType->isBlockPointerType())) {
10873 ((LHSType->isNullPtrType() && RHSType->isPointerType()) ||
10873 ((LHSType->isNullPtrType() && RHSType->isPointerType()) ||
10874 (RHSType->isNullPtrType() && LHSType->isPointerType()))) {
10874 (RHSType->isNullPtrType() && LHSType->isPointerType()))) {
10888 if (RHSType->isNullPtrType())
10901 (LHSType->isMemberPointerType() || RHSType->isMemberPointerType())) {
10901 (LHSType->isMemberPointerType() || RHSType->isMemberPointerType())) {
10910 if (!IsRelational && LHSType->isBlockPointerType() &&
10911 RHSType->isBlockPointerType()) {
10912 QualType lpointee = LHSType->castAs<BlockPointerType>()->getPointeeType();
10913 QualType rpointee = RHSType->castAs<BlockPointerType>()->getPointeeType();
10927 && ((LHSType->isBlockPointerType() && RHSType->isPointerType())
10927 && ((LHSType->isBlockPointerType() && RHSType->isPointerType())
10928 || (LHSType->isPointerType() && RHSType->isBlockPointerType()))) {
10928 || (LHSType->isPointerType() && RHSType->isBlockPointerType()))) {
10930 if (!((RHSType->isPointerType() && RHSType->castAs<PointerType>()
10930 if (!((RHSType->isPointerType() && RHSType->castAs<PointerType>()
10931 ->getPointeeType()->isVoidType())
10932 || (LHSType->isPointerType() && LHSType->castAs<PointerType>()
10932 || (LHSType->isPointerType() && LHSType->castAs<PointerType>()
10933 ->getPointeeType()->isVoidType())))
10940 RHSType->isPointerType() ? CK_BitCast
10944 LHSType->isPointerType() ? CK_BitCast
10949 if (LHSType->isObjCObjectPointerType() ||
10950 RHSType->isObjCObjectPointerType()) {
10951 const PointerType *LPT = LHSType->getAs<PointerType>();
10952 const PointerType *RPT = RHSType->getAs<PointerType>();
10954 bool LPtrToVoid = LPT ? LPT->getPointeeType()->isVoidType() : false;
10955 bool RPtrToVoid = RPT ? RPT->getPointeeType()->isVoidType() : false;
10981 if (LHSType->isObjCObjectPointerType() &&
10982 RHSType->isObjCObjectPointerType()) {
10996 if (!IsRelational && LHSType->isBlockPointerType() &&
10997 RHSType->isBlockCompatibleObjCPointerType(Context)) {
11002 LHSType->isBlockCompatibleObjCPointerType(Context) &&
11003 RHSType->isBlockPointerType()) {
11009 if ((LHSType->isAnyPointerType() && RHSType->isIntegerType()) ||
11009 if ((LHSType->isAnyPointerType() && RHSType->isIntegerType()) ||
11010 (LHSType->isIntegerType() && RHSType->isAnyPointerType())) {
11010 (LHSType->isIntegerType() && RHSType->isAnyPointerType())) {
11016 } else if ((LHSIsNull && LHSType->isIntegerType()) ||
11017 (RHSIsNull && RHSType->isIntegerType())) {
11040 if (LHSType->isIntegerType())
11051 && LHSType->isBlockPointerType() && RHSType->isIntegerType()) {
11051 && LHSType->isBlockPointerType() && RHSType->isIntegerType()) {
11056 && LHSType->isIntegerType() && RHSType->isBlockPointerType()) {
11056 && LHSType->isIntegerType() && RHSType->isBlockPointerType()) {
11062 if (LHSType->isClkEventT() && RHSType->isClkEventT()) {
11062 if (LHSType->isClkEventT() && RHSType->isClkEventT()) {
11066 if (LHSType->isQueueT() && RHSType->isQueueT()) {
11066 if (LHSType->isQueueT() && RHSType->isQueueT()) {
11070 if (LHSIsNull && RHSType->isQueueT()) {
11075 if (LHSType->isQueueT() && RHSIsNull) {
11090 const VectorType *VTy = V->castAs<VectorType>();
11145 vType->castAs<VectorType>()->getVectorKind() == VectorType::AltiVecVector)
11155 LHSType->hasFloatingRepresentation()) {
11156 assert(RHS.get()->getType()->hasFloatingRepresentation());
11288 !getLangOpts().OpenCLCPlusPlus && vType->hasFloatingRepresentation())
11294 !(isa<ExtVectorType>(vType->getAs<VectorType>())))
11308 if (LHS.get()->getType()->isVectorType() ||
11309 RHS.get()->getType()->isVectorType()) {
11310 if (LHS.get()->getType()->hasIntegerRepresentation() &&
11311 RHS.get()->getType()->hasIntegerRepresentation())
11332 if (!compType.isNull() && compType->isIntegralOrUnscopedEnumerationType())
11342 if (LHS.get()->getType()->isVectorType() || RHS.get()->getType()->isVectorType())
11342 if (LHS.get()->getType()->isVectorType() || RHS.get()->getType()->isVectorType())
11360 if (!EnumConstantInBoolContext && LHS.get()->getType()->isIntegerType() &&
11361 !LHS.get()->getType()->isBooleanType() &&
11362 RHS.get()->getType()->isIntegerType() && !RHS.get()->isValueDependent() &&
11372 if ((getLangOpts().Bool && !RHS.get()->getType()->isBooleanType() &&
11399 if (LHS.get()->getType()->isFloatingType() ||
11400 RHS.get()->getType()->isFloatingType())
11412 if (!LHS.get()->getType()->isScalarType() ||
11413 !RHS.get()->getType()->isScalarType())
11493 if (IsDereference && Ty->isPointerType())
11494 Ty = Ty->getPointeeType();
11668 if (const auto *FieldRecTy = FieldTy->getAs<RecordType>()) {
11682 assert(Ty->isRecordType() && "lvalue was not record?");
11684 const RecordType *RTy = Ty.getCanonicalType()->getAs<RecordType>();
11856 if (const ReferenceType *RefTy = LHSDecl->getType()->getAs<ReferenceType>())
11891 LHSType->isHalfType()) {
11910 RHSType->isObjCObjectPointerType()) ||
11912 LHSType->isObjCObjectPointerType())))
11916 LHSType->isObjCObjectType())
12017 if (CE->getCastKind() == CK_Dependent && E->getType()->isVoidType() &&
12018 CE->getSubExpr()->getType()->isDependentType()) {
12101 if (!RHS.get()->getType()->isVoidType())
12126 if (const AtomicType *ResAtomicType = ResType->getAs<AtomicType>())
12131 if (S.getLangOpts().CPlusPlus && ResType->isBooleanType()) {
12141 } else if (S.getLangOpts().CPlusPlus && ResType->isEnumeralType()) {
12145 } else if (ResType->isRealType()) {
12147 } else if (ResType->isPointerType()) {
12151 } else if (ResType->isObjCObjectPointerType()) {
12157 } else if (ResType->isAnyComplexType()) {
12161 } else if (ResType->isPlaceholderType()) {
12166 } else if (S.getLangOpts().AltiVec && ResType->isVectorType()) {
12168 } else if (S.getLangOpts().ZVector && ResType->isVectorType() &&
12169 (ResType->castAs<VectorType>()->getVectorKind() !=
12172 } else if(S.getLangOpts().OpenCL && ResType->isVectorType() &&
12173 ResType->castAs<VectorType>()->getElementType()->isIntegerType()) {
12173 ResType->castAs<VectorType>()->getElementType()->isIntegerType()) {
12233 if (ICE->getSubExpr()->getType()->isArrayType())
12286 if (const BuiltinType *PTy = OrigOp.get()->getType()->getAsPlaceholderType()){
12323 assert(!OrigOp.get()->getType()->isPlaceholderType());
12419 if (!op->getType()->isFunctionType()) {
12456 if (dcl->getType()->isReferenceType()) {
12493 if (op->getType()->isObjCObjectType())
12538 if (const PointerType *PT = OpTy->getAs<PointerType>())
12543 OpTy->getAs<ObjCObjectPointerType>())
12567 if (S.getLangOpts().CPlusPlus && Result->isVoidType())
12668 if (const ReferenceType *RefTy = LHSDecl->getType()->getAs<ReferenceType>())
12689 if (LHS->IgnoreParenCasts()->getType()->isObjCObjectPointerType()) {
12693 else if (RHS->IgnoreParenCasts()->getType()->isObjCObjectPointerType()) {
12765 return convertVector(BO, ResultTy->castAs<VectorType>()->getElementType(), S);
12839 if (LHSTy->isAtomicType() || RHSTy->isAtomicType()) {
12839 if (LHSTy->isAtomicType() || RHSTy->isAtomicType()) {
12850 if (LHSTy->isImageType() || RHSTy->isImageType() ||
12850 if (LHSTy->isImageType() || RHSTy->isImageType() ||
12851 LHSTy->isSamplerT() || RHSTy->isSamplerT() ||
12851 LHSTy->isSamplerT() || RHSTy->isSamplerT() ||
12852 LHSTy->isPipeType() || RHSTy->isPipeType() ||
12852 LHSTy->isPipeType() || RHSTy->isPipeType() ||
12853 LHSTy->isBlockPointerType() || RHSTy->isBlockPointerType()) {
12853 LHSTy->isBlockPointerType() || RHSTy->isBlockPointerType()) {
12945 assert(ResultTy.isNull() || ResultTy->getAsCXXRecordDecl());
13265 if ((Opc == BO_Shl && LHSExpr->getType()->isIntegralType(Self.getASTContext()))
13351 if (const BuiltinType *pty = LHSExpr->getType()->getAsPlaceholderType()) {
13369 RHSExpr->getType()->isOverloadableType())
13401 if (const BuiltinType *pty = RHSExpr->getType()->getAsPlaceholderType()) {
13407 LHSExpr->getType()->isOverloadableType()))
13415 LHSExpr->getType()->isOverloadableType())
13431 if (LHSExpr->getType()->isOverloadableType() ||
13432 RHSExpr->getType()->isOverloadableType())
13441 if (T.isNull() || T->isDependentType())
13444 if (!T->isPromotableIntegerType())
13463 if ((Opc != UO_AddrOf && Ty->isAtomicType()) ||
13466 (Ty->isImageType() || Ty->isSamplerT() || Ty->isPipeType()
13466 (Ty->isImageType() || Ty->isSamplerT() || Ty->isPipeType()
13466 (Ty->isImageType() || Ty->isSamplerT() || Ty->isPipeType()
13467 || Ty->isBlockPointerType())) {
13521 if (resultType->isDependentType())
13523 if (resultType->isArithmeticType()) // C99 6.5.3.3p1
13525 else if (resultType->isVectorType() &&
13528 resultType->castAs<VectorType>()->getVectorKind() !=
13533 resultType->isPointerType())
13544 if (resultType->isDependentType())
13547 if (resultType->isComplexType() || resultType->isComplexIntegerType())
13547 if (resultType->isComplexType() || resultType->isComplexIntegerType())
13551 else if (resultType->hasIntegerRepresentation())
13553 else if (resultType->isExtVectorType() && Context.getLangOpts().OpenCL) {
13556 QualType T = resultType->castAs<ExtVectorType>()->getElementType();
13557 if (!T->isIntegerType())
13573 if (resultType->isHalfType() && !Context.getLangOpts().NativeHalfType) {
13578 if (resultType->isDependentType())
13580 if (resultType->isScalarType() && !isScopedEnumerationType(resultType)) {
13591 if (!resultType->isIntegerType() && !resultType->isPointerType())
13591 if (!resultType->isIntegerType() && !resultType->isPointerType())
13595 } else if (resultType->isExtVectorType()) {
13601 QualType T = resultType->castAs<ExtVectorType>()->getElementType();
13602 if (!T->isIntegerType())
13626 if (Opc == UO_Real || Input.get()->getType()->isAnyComplexType()) {
13643 assert(!Input.get()->getType()->isDependentType() &&
13661 if (Opc == UO_Deref && UO->getType()->hasAttr(attr::NoDeref) &&
13715 if (const BuiltinType *pty = Input->getType()->getAsPlaceholderType()) {
13739 if (getLangOpts().CPlusPlus && Input->getType()->isOverloadableType() &&
13860 bool Dependent = ArgTy->isDependentType();
13866 if (!Dependent && !ArgTy->isRecordType())
13884 if (!CurrentType->isDependentType()) {
13901 !Idx->getType()->isIntegerType())
13913 if (CurrentType->isDependentType()) {
13927 const RecordType *RC = CurrentType->getAs<RecordType>();
14073 CondIsTrue, resType->isDependentType(), ValueDependent);
14134 assert(T->isFunctionType() &&
14162 const FunctionType *Fn = T->getAs<FunctionType>();
14194 } else if (const FunctionProtoType *Fn = T->getAs<FunctionProtoType>()) {
14267 const FunctionType *FTy = BSI->FunctionType->castAs<FunctionType>();
14316 if (getLangOpts().CPlusPlus && RetTy->isRecordType() &&
14341 Cap.getCaptureType()->getAs<RecordType>()) {
14467 if (VaListType->isArrayType()) {
14477 } else if (VaListType->isRecordType() && getLangOpts().CPlusPlus) {
14502 if (!TInfo->getType()->isDependentType()) {
14516 TInfo->getType()->isObjCLifetimeType()
14526 if (TInfo->getType()->isPromotableIntegerType()) {
14531 if (TInfo->getType()->isSpecificBuiltinType(BuiltinType::Float))
14582 const ObjCObjectPointerType *PT = DstType->getAs<ObjCObjectPointerType>();
14614 if (!DstType->isFunctionPointerType() ||
14615 !SrcExpr->getType()->isFunctionType())
14668 else if (SrcType->isFunctionPointerType() &&
14669 DstType->isFunctionPointerType())
14674 CheckInferredResultType = DstType->isObjCObjectPointerType() &&
14675 SrcType->isObjCObjectPointerType();
14693 if (SrcType->isArrayType()) SrcType = Context.getArrayDecayedType(SrcType);
14695 Qualifiers lhq = SrcType->getPointeeType().getQualifiers();
14696 Qualifiers rhq = DstType->getPointeeType().getQualifiers();
14737 if (SrcType->isObjCQualifiedIdType()) {
14739 SrcType->castAs<ObjCObjectPointerType>();
14745 DstType->castAs<ObjCObjectPointerType>()->getInterfaceType())
14748 else if (DstType->isObjCQualifiedIdType()) {
14750 DstType->castAs<ObjCObjectPointerType>();
14756 SrcType->castAs<ObjCObjectPointerType>()->getInterfaceType())
14917 << ConvTy->isEnumeralType() << ConvTy;
14928 << ConvTy->isEnumeralType() << ConvTy;
14942 if (!E->getType()->isIntegralOrUnscopedEnumerationType())
14944 } else if (!E->getType()->isIntegralOrUnscopedEnumerationType()) {
15043 if (E->getOpcode() == UO_AddrOf && E->getType()->isMemberPointerType())
15102 if (const auto *Ptr = Ty->getAs<PointerType>())
15109 if (Inner->hasAttr(attr::NoDeref))
15231 if (!E->getType()->isVariablyModifiedType())
15282 CallingConv CC = FD->getType()->castAs<FunctionType>()->getCallConv();
15313 CallingConv CC = FD->getType()->castAs<FunctionType>()->getCallConv();
15479 const FunctionProtoType *FPT = Func->getType()->getAs<FunctionProtoType>();
15764 if (Var->getType()->isVariablyModifiedType() && IsBlock) {
15774 if (const RecordType *VTTy = Var->getType()->getAs<RecordType>()) {
15802 Var->getType()->isBlockPointerType()) {
15824 if (!Invalid && !S.getLangOpts().OpenCL && CaptureType->isArrayType()) {
15850 if (const auto *PT = CaptureType->getAs<PointerType>()) {
15853 if (!Invalid && PointeeTy->getAs<ObjCObjectPointerType>() &&
15865 if (HasBlocksAttr || CaptureType->isReferenceType() ||
15968 if (const ReferenceType *RefType = CaptureType->getAs<ReferenceType>()){
15969 if (!RefType->getPointeeType()->isFunctionType())
15988 if (!CaptureType->isDependentType() &&
16009 if (!LSI->Mutable && !CaptureType->isReferenceType())
16118 if (Var->getType()->isVariablyModifiedType()) {
16138 if (IsOpenMPPrivateDecl && Var->getType()->isVariablyModifiedType()) {
16357 if (VD->getType()->isReferenceType())
16359 if (auto *RD = VD->getType()->getAsCXXRecordDecl())
16367 if (VD->getType()->isReferenceType())
16418 if (!OldBase->getType()->isArrayType())
16637 if (E->getType().isVolatileQualified() || E->getType()->getAs<RecordType>())
16848 if (!Var->getType()->isReferenceType() ||
17046 if (const RecordType *DestroyedRec = Destroyed->getAs<RecordType>()) {
17142 if (ReturnType->isVoidType() || !ReturnType->isIncompleteType())
17142 if (ReturnType->isVoidType() || !ReturnType->isIncompleteType())
17288 if (!T->isScalarType()) { // C99 6.8.4.1p1
17468 const PointerType *Ptr = DestType->getAs<PointerType>();
17523 } else if (const PointerType *Ptr = CalleeType->getAs<PointerType>()) {
17527 CalleeType = CalleeType->castAs<BlockPointerType>()->getPointeeType();
17530 const FunctionType *FnType = CalleeType->castAs<FunctionType>();
17533 if (DestType->isArrayType() || DestType->isFunctionType()) {
17533 if (DestType->isArrayType() || DestType->isFunctionType()) {
17539 << DestType->isFunctionType() << DestType;
17619 if (DestType->isArrayType() || DestType->isFunctionType()) {
17619 if (DestType->isArrayType() || DestType->isFunctionType()) {
17621 << DestType->isFunctionType() << DestType;
17647 DestType = DestType->castAs<PointerType>()->getPointeeType();
17683 if (const PointerType *Ptr = Type->getAs<PointerType>()) {
17691 if (!Type->isFunctionType()) {
17696 if (const FunctionProtoType *FT = Type->getAs<FunctionProtoType>()) {
17701 const FunctionType *FnType = FDT->castAs<FunctionType>();
17740 if (const ReferenceType *RefTy = Type->getAs<ReferenceType>()) {
17742 } else if (Type->isFunctionType()) {
17769 if (!CastType->isVoidType() &&
17867 const BuiltinType *placeholderType = E->getType()->getAsPlaceholderType();
17971 return E->getType()->isIntegralOrEnumerationType();
tools/clang/lib/Sema/SemaExprCXX.cpp 211 isDependent = SearchType->isDependentType();
225 isDependent = SearchType->isDependentType();
226 assert((isDependent || !SearchType->isIncompleteType()) &&
260 if (SearchType.isNull() || SearchType->isDependentType() ||
296 if (const RecordType *Record = MemberOfType->getAs<RecordType>()) {
315 = MemberOfType->getAs<TemplateSpecializationType>()) {
396 if (!SearchType.isNull() && !SearchType->isDependentType() &&
449 if (T->getAs<RecordType>() &&
453 if (T->isVariablyModifiedType())
470 if (E->getType()->isPlaceholderType()) {
477 if (const RecordType *RecordT = T->getAs<RecordType>()) {
520 if (E->getType()->isVariablyModifiedType())
596 if (QT->isPointerType() || QT->isReferenceType())
596 if (QT->isPointerType() || QT->isReferenceType())
597 Ty = QT->getPointeeType().getTypePtr();
598 else if (QT->isArrayType())
632 if (!Operand->getType()->isDependentType()) {
652 if (!E->getType()->isDependentType()) {
819 CXXRecordDecl *BaseDecl = BS.getType()->getAsCXXRecordDecl();
868 if (const PointerType* Ptr = Ty->getAs<PointerType>()) {
872 if (!isPointer || !Ty->isVoidType()) {
885 CXXRecordDecl *RD = Ty->getAsCXXRecordDecl();
974 QualType ClassType = ThisTy->getPointeeType();
1247 CaptureType = ThisTy->getPointeeType();
1287 CXXRecordDecl *Class = BaseType->getAsCXXRecordDecl();
1329 if (Ty->isDependentType() || CallExpr::hasAnyTypeDependentArguments(Exprs)) {
1358 DeducedType *Deduced = Ty->getContainedDeducedType();
1380 if (Ty->isArrayType()) {
1389 if (Ty->isFunctionType())
1396 if (!Ty->isVoidType() &&
1508 FD->getParamDecl(NumBaseParams)->getType()->isAlignValT()) {
1603 allocType->getBaseElementTypeUnsafe()->getAs<RecordType>();
1825 auto *Deduced = AllocType->getContainedDeducedType();
1891 AllocType->isObjCLifetimeType()) {
1893 AllocType->getObjCARCImplicitLifetime());
1899 (*ArraySize)->getType()->isNonOverloadPlaceholderType()) {
1921 (*ArraySize)->getType()->getAs<RecordType>())
1955 << ConvTy->isEnumeralType() << ConvTy;
1966 << ConvTy->isEnumeralType() << ConvTy;
1976 << T << ConvTy->isEnumeralType() << ConvTy;
1989 if (!SizeType->isIntegralOrUnscopedEnumerationType())
2013 if (!AllocType->isDependentType()) {
2041 AllocType->isDependentType() ? 0 : Context.getTypeAlign(AllocType);
2047 if (!AllocType->isDependentType() &&
2058 if (ArraySize && !AllocType->isDependentType())
2065 OperatorNew->getType()->getAs<FunctionProtoType>();
2112 if (!AllocType->isDependentType() &&
2189 if (AllocType->isFunctionType())
2192 else if (AllocType->isReferenceType())
2195 else if (!AllocType->isDependentType() &&
2201 else if (AllocType->isVariablyModifiedType())
2213 BaseAllocType->isObjCLifetimeType())
2302 C.Function->getParamDecl(1)->getType()->isAlignValT();
2406 if (AllocElemType->isRecordType() && NewScope != AFS_Global)
2407 LookupQualifiedName(R, AllocElemType->getAsCXXRecordDecl());
2468 if (AllocElemType->isRecordType() && DeleteScope != AFS_Global) {
2470 cast<CXXRecordDecl>(AllocElemType->castAs<RecordType>()->getDecl());
2519 = OperatorNew->getType()->getAs<FunctionProtoType>();
3250 if (const PointerType *ConvPtrType = ConvType->getAs<PointerType>())
3251 if (ConvPtrType->getPointeeType()->isIncompleteOrObjectType())
3305 QualType Pointee = Type->castAs<PointerType>()->getPointeeType();
3316 if (Pointee->isVoidType() && !isSFINAEContext()) {
3322 } else if (Pointee->isFunctionType() || Pointee->isVoidType()) {
3322 } else if (Pointee->isFunctionType() || Pointee->isVoidType()) {
3325 } else if (!Pointee->isDependentType()) {
3330 if (const RecordType *RT = PointeeElem->getAs<RecordType>())
3335 if (Pointee->isArrayType() && !ArrayForm) {
3420 if (!IsVirtualDelete && !ParamType->getPointeeType()->isVoidType()) {
3420 if (!IsVirtualDelete && !ParamType->getPointeeType()->isVoidType()) {
3597 QualType ClassType = dtor->getThisType()->getPointeeType();
3640 if (T->isFunctionType())
3644 else if (T->isArrayType())
3700 if (const PointerType *ToPtrType = ToType->getAs<PointerType>())
3702 = ToPtrType->getPointeeType()->getAs<BuiltinType>()) {
3763 assert(!From->getType()->isPointerType() && "Arg can't have pointer type!");
3796 if (CCK == CCK_ForBuiltinOverloadedOp && !From->getType()->isRecordType())
3905 assert(!ToType->isReferenceType());
3945 if (const AtomicType *ToAtomic = ToType->getAs<AtomicType>()) {
3954 if (const AtomicType *FromAtomic = FromType->getAs<AtomicType>()) {
4017 if (ToType->isBooleanType()) {
4018 assert(FromType->castAs<EnumType>()->getDecl()->isFixed() &&
4037 QualType FromEl = From->getType()->castAs<ComplexType>()->getElementType();
4038 QualType ToEl = ToType->castAs<ComplexType>()->getElementType();
4040 if (FromEl->isRealFloatingType()) {
4041 if (ToEl->isRealFloatingType())
4045 } else if (ToEl->isRealFloatingType()) {
4056 if (ToType->isRealFloatingType())
4084 if (From->getType()->isObjCObjectPointerType() &&
4085 ToType->isObjCObjectPointerType())
4139 if (From->getType()->isHalfType()) {
4177 if (const ComplexType *ToComplex = ToType->getAs<ComplexType>()) {
4179 bool isFloatingComplex = ElType->isRealFloatingType();
4184 } else if (From->getType()->isRealFloatingType()) {
4188 assert(From->getType()->isIntegerType());
4199 const ComplexType *FromComplex = From->getType()->getAs<ComplexType>();
4203 bool isFloatingComplex = ElType->isRealFloatingType();
4214 } else if (ToType->isRealFloatingType()) {
4219 assert(ToType->isIntegerType());
4229 ToType->castAs<BlockPointerType>()->getPointeeType().getAddressSpace();
4231 FromType->castAs<BlockPointerType>()->getPointeeType().getAddressSpace();
4291 ToType->isReferenceType() ? From->getValueKind() : VK_RValue;
4295 if (ToType->isReferenceType() &&
4296 ToType->getPointeeType().getAddressSpace() !=
4300 if (ToType->isPointerType() &&
4301 ToType->getPointeeType().getAddressSpace() !=
4302 From->getType()->getPointeeType().getAddressSpace())
4329 ToAtomicType->castAs<AtomicType>()->getValueType(), From->getType()));
4412 if (const auto *RD = ArgTy->getAsCXXRecordDecl())
4422 if (ArgTy->getAsCXXRecordDecl())
4449 ArgTy = QualType(ArgTy->getBaseElementTypeUnsafe(), 0);
4458 if (ArgTy->isIncompleteArrayType() || ArgTy->isVoidType())
4458 if (ArgTy->isIncompleteArrayType() || ArgTy->isVoidType())
4491 Operator->getType()->getAs<FunctionProtoType>();
4504 assert(!T->isDependentType() && "Cannot evaluate traits of dependent type");
4512 return T->isVoidType();
4514 return T->isIntegralType(C);
4516 return T->isFloatingType();
4518 return T->isArrayType();
4520 return T->isPointerType();
4522 return T->isLValueReferenceType();
4524 return T->isRValueReferenceType();
4526 return T->isMemberFunctionPointerType();
4528 return T->isMemberDataPointerType();
4530 return T->isEnumeralType();
4532 return T->isUnionType();
4534 return T->isClassType() || T->isStructureType() || T->isInterfaceType();
4534 return T->isClassType() || T->isStructureType() || T->isInterfaceType();
4534 return T->isClassType() || T->isStructureType() || T->isInterfaceType();
4536 return T->isFunctionType();
4541 return T->isReferenceType();
4543 return T->isArithmeticType() && !T->isEnumeralType();
4543 return T->isArithmeticType() && !T->isEnumeralType();
4545 return T->isFundamentalType();
4547 return T->isObjectType();
4553 if (T->isObjCLifetimeType()) {
4566 return T->isScalarType();
4568 return T->isCompoundType();
4570 return T->isMemberPointerType();
4583 return T->isStandardLayoutType();
4587 return T->isLiteralType(C);
4589 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4593 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4597 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4604 return T->isAggregateType() || T->isVectorType() || T->isExtVectorType() ||
4604 return T->isAggregateType() || T->isVectorType() || T->isExtVectorType() ||
4604 return T->isAggregateType() || T->isVectorType() || T->isExtVectorType() ||
4605 T->isAnyComplexType();
4613 if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4619 return !T->isEnumeralType() && (T->isFloatingType() || T->isSignedIntegerType());
4619 return !T->isEnumeralType() && (T->isFloatingType() || T->isSignedIntegerType());
4619 return !T->isEnumeralType() && (T->isFloatingType() || T->isSignedIntegerType());
4621 return T->isUnsignedIntegerType();
4645 if (CXXRecordDecl *RD = C.getBaseElementType(T)->getAsCXXRecordDecl())
4655 if (CXXRecordDecl *RD = C.getBaseElementType(T)->getAsCXXRecordDecl())
4664 if (T.isPODType(C) || T->isReferenceType())
4666 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4676 if (CXXRecordDecl *RD = C.getBaseElementType(T)->getAsCXXRecordDecl())
4696 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4705 if (T->isReferenceType())
4709 if (T->isObjCLifetimeType() &&
4716 if (T->isIncompleteType() || T->isFunctionType())
4716 if (T->isIncompleteType() || T->isFunctionType())
4728 if (auto *RD = C.getBaseElementType(T)->getAsCXXRecordDecl()) {
4741 Destructor->getType()->getAs<FunctionProtoType>();
4756 if (T.isPODType(C) || T->isReferenceType())
4760 if (T->isObjCLifetimeType() &&
4764 if (CXXRecordDecl *RD = C.getBaseElementType(T)->getAsCXXRecordDecl())
4778 if (T->isReferenceType())
4780 if (T.isPODType(C) || T->isObjCLifetimeType())
4783 if (const RecordType *RT = T->getAs<RecordType>())
4796 if (const RecordType *RT = C.getBaseElementType(T)->getAs<RecordType>())
4808 if (T.isPODType(C) || T->isReferenceType() || T->isObjCLifetimeType())
4808 if (T.isPODType(C) || T->isReferenceType() || T->isObjCLifetimeType())
4810 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl()) {
4830 = Constructor->getType()->getAs<FunctionProtoType>();
4850 if (T.isPODType(C) || T->isObjCLifetimeType())
4852 if (CXXRecordDecl *RD = C.getBaseElementType(T)->getAsCXXRecordDecl()) {
4869 = Constructor->getType()->getAs<FunctionProtoType>();
4886 if (CXXRecordDecl *RD = T->getAsCXXRecordDecl())
4898 return !T->isIncompleteType();
4944 if (ArgTy->isVoidType() || ArgTy->isIncompleteArrayType())
4944 if (ArgTy->isVoidType() || ArgTy->isIncompleteArrayType())
4954 if (T->isIncompleteType() || T->isFunctionType())
4954 if (T->isIncompleteType() || T->isFunctionType())
4958 CXXRecordDecl *RD = T->getAsCXXRecordDecl();
4967 if (ArgTy->isObjectType() || ArgTy->isFunctionType())
4967 if (ArgTy->isObjectType() || ArgTy->isFunctionType())
4998 if (!T->isReferenceType())
5038 if (Args[I]->getType()->isDependentType()) {
5072 assert(!LhsT->isDependentType() && !RhsT->isDependentType() &&
5072 assert(!LhsT->isDependentType() && !RhsT->isDependentType() &&
5082 const RecordType *lhsRecord = LhsT->getAs<RecordType>();
5083 const RecordType *rhsRecord = RhsT->getAs<RecordType>();
5085 const ObjCObjectType *LHSObjTy = LhsT->getAs<ObjCObjectType>();
5086 const ObjCObjectType *RHSObjTy = RhsT->getAs<ObjCObjectType>();
5163 if (RhsT->isFunctionType() || RhsT->isArrayType())
5163 if (RhsT->isFunctionType() || RhsT->isArrayType())
5167 if (RhsT->isVoidType())
5168 return LhsT->isVoidType();
5175 if (LhsT->isObjectType() || LhsT->isFunctionType())
5175 if (LhsT->isObjectType() || LhsT->isFunctionType())
5214 if (!LhsT->isVoidType() && !LhsT->isIncompleteArrayType() &&
5214 if (!LhsT->isVoidType() && !LhsT->isIncompleteArrayType() &&
5218 if (!RhsT->isVoidType() && !RhsT->isIncompleteArrayType() &&
5218 if (!RhsT->isVoidType() && !RhsT->isIncompleteArrayType() &&
5224 if (LhsT->isVoidType() || RhsT->isVoidType())
5224 if (LhsT->isVoidType() || RhsT->isVoidType())
5229 if (LhsT->isObjectType() || LhsT->isFunctionType())
5229 if (LhsT->isObjectType() || LhsT->isFunctionType())
5231 if (RhsT->isObjectType() || RhsT->isFunctionType())
5231 if (RhsT->isObjectType() || RhsT->isFunctionType())
5294 assert(!T->isDependentType() && "Cannot evaluate traits of dependent type");
5298 if (T->isArrayType()) {
5322 if (T->isArrayType()) {
5334 if (Matched && T->isArrayType()) {
5355 if (!T->isDependentType())
5394 } else if (Queried->getType()->isPlaceholderType()) {
5410 assert(!LHS.get()->getType()->isPlaceholderType() &&
5411 !RHS.get()->getType()->isPlaceholderType() &&
5433 const MemberPointerType *MemPtr = RHSType->getAs<MemberPointerType>();
5454 if (const PointerType *Ptr = LHSType->getAs<PointerType>())
5514 if (const FunctionProtoType *Proto = Result->getAs<FunctionProtoType>()) {
5549 if (Result->isFunctionType()) {
5610 const RecordType *FRec = FTy->getAs<RecordType>();
5611 const RecordType *TRec = TTy->getAs<RecordType>();
5774 bool LVoid = LTy->isVoidType();
5775 bool RVoid = RTy->isVoidType();
5811 (LTy->isRecordType() || RTy->isRecordType())) {
5811 (LTy->isRecordType() || RTy->isRecordType())) {
5896 if (LTy->isFunctionPointerType() || LTy->isMemberFunctionPointerType()) {
5896 if (LTy->isFunctionPointerType() || LTy->isMemberFunctionPointerType()) {
5913 if (!Same && (LTy->isRecordType() || RTy->isRecordType())) {
5913 if (!Same && (LTy->isRecordType() || RTy->isRecordType())) {
5938 if (LTy->isRecordType()) {
5960 if (LTy->isFunctionPointerType() || LTy->isMemberFunctionPointerType()) {
5960 if (LTy->isFunctionPointerType() || LTy->isMemberFunctionPointerType()) {
5970 if (LTy->isVectorType() || RTy->isVectorType())
5970 if (LTy->isVectorType() || RTy->isVectorType())
5978 if (LTy->isArithmeticType() && RTy->isArithmeticType()) {
5978 if (LTy->isArithmeticType() && RTy->isArithmeticType()) {
6122 bool T1IsPointerLike = T1->isAnyPointerType() || T1->isMemberPointerType() ||
6122 bool T1IsPointerLike = T1->isAnyPointerType() || T1->isMemberPointerType() ||
6123 T1->isNullPtrType();
6124 bool T2IsPointerLike = T2->isAnyPointerType() || T2->isMemberPointerType() ||
6124 bool T2IsPointerLike = T2->isAnyPointerType() || T2->isMemberPointerType() ||
6125 T2->isNullPtrType();
6137 E2 = ImpCastExprToType(E2, T1, T1->isMemberPointerType()
6145 E1 = ImpCastExprToType(E1, T2, T2->isMemberPointerType()
6154 assert(!T1->isNullPtrType() && !T2->isNullPtrType() &&
6154 assert(!T1->isNullPtrType() && !T2->isNullPtrType() &&
6198 if ((Ptr1 = Composite1->getAs<PointerType>()) &&
6199 (Ptr2 = Composite2->getAs<PointerType>())) {
6215 if ((MemPtr1 = Composite1->getAs<MemberPointerType>()) &&
6216 (MemPtr2 = Composite2->getAs<MemberPointerType>())) {
6248 if (auto *FPT1 = Composite1->getAs<FunctionProtoType>()) {
6249 if (auto *FPT2 = Composite2->getAs<FunctionProtoType>()) {
6370 E->getType()->isObjCRetainableType()) {
6388 if (const PointerType *Ptr = T->getAs<PointerType>())
6390 else if (const BlockPointerType *Ptr = T->getAs<BlockPointerType>())
6392 else if (const MemberPointerType *MemPtr = T->getAs<MemberPointerType>())
6395 const FunctionType *FTy = T->getAs<FunctionType>();
6449 if (!ReturnsRetained && E->getType()->isObjCARCImplicitlyUnretainedType())
6658 Bind->getType()->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
6719 if (BaseType->isDependentType()) {
6724 if (const PointerType *Ptr = BaseType->getAs<PointerType>())
6745 while (BaseType->isRecordType()) {
6797 if (BaseType->isPointerType())
6798 BaseType = BaseType->getPointeeType();
6806 if (BaseType->isObjCObjectPointerType())
6807 BaseType = BaseType->getPointeeType();
6820 if (!BaseType->isRecordType()) {
6831 if (!BaseType->isDependentType() &&
6861 if (const PointerType *Ptr = ObjectType->getAs<PointerType>()) {
6884 if (auto *RD = DestructedType->getAsCXXRecordDecl()) {
6892 return DestructedType->isDependentType() || DestructedType->isScalarType() ||
6892 return DestructedType->isDependentType() || DestructedType->isScalarType() ||
6893 DestructedType->isVectorType();
6910 if (!ObjectType->isDependentType() && !ObjectType->isScalarType() &&
6910 if (!ObjectType->isDependentType() && !ObjectType->isScalarType() &&
6911 !ObjectType->isVectorType()) {
6912 if (getLangOpts().MSVCCompat && ObjectType->isVoidType())
6928 if (!DestructedType->isDependentType() && !ObjectType->isDependentType()) {
6928 if (!DestructedType->isDependentType() && !ObjectType->isDependentType()) {
6933 if (OpKind == tok::period && ObjectType->isPointerType() &&
6935 ObjectType->getPointeeType())) {
6990 if (!ScopeType->isDependentType() && !ObjectType->isDependentType() &&
6990 if (!ScopeType->isDependentType() && !ObjectType->isDependentType() &&
7038 if (ObjectType->isRecordType())
7040 else if (ObjectType->isDependentType())
7056 (!SS.isSet() && ObjectType->isDependentType()))) {
7194 Method->getConversionType()->isBlockPointerType()) {
7238 Method->getType()->castAs<FunctionProtoType>()))
7348 if (!getLangOpts().CPlusPlus && E->getType()->isFunctionType())
7386 if (const EnumType *T = E->getType()->getAs<EnumType>()) {
7399 if (!E->getType()->isVoidType())
7438 if (Var->getType()->isDependentType() || Init->isValueDependent()) {
tools/clang/lib/Sema/SemaExprMember.cpp 307 const ExtVectorType *vecType = baseType->getAs<ExtVectorType>();
497 const PointerType *PT = BaseType->getAs<PointerType>();
499 PT->getPointeeType()->isRecordType())) {
507 assert(BaseType->isDependentType() ||
558 assert(BaseType->isDependentType());
753 if (BaseType->isDependentType() ||
766 if (IsArrow) RecordTy = RecordTy->getAs<PointerType>()->getPointeeType();
768 *this, R, nullptr, RecordTy->getAs<RecordType>(), OpLoc, IsArrow,
815 assert(baseVariable->getType()->isRecordType());
848 bool baseObjectIsPointer = baseObjectExpr->getType()->isPointerType();
972 assert(BaseType->isPointerType());
973 BaseType = BaseType->castAs<PointerType>()->getPointeeType();
1009 : BaseType->castAs<RecordType>()->getDecl());
1193 = base.get()->getType()->getAs<ObjCObjectPointerType>();
1209 opty = redef->getAs<ObjCObjectPointerType>();
1218 return T->isRecordType();
1221 if (const PointerType *PT = T->getAs<PointerType>())
1222 return PT->getPointeeType()->isRecordType();
1229 if (IsArrow && !Base->getType()->isFunctionType())
1258 assert(!BaseType->isDependentType());
1268 if (const PointerType *Ptr = BaseType->getAs<PointerType>())
1271 = BaseType->getAs<ObjCObjectPointerType>())
1273 else if (BaseType->isRecordType()) {
1287 } else if (BaseType->isFunctionType()) {
1297 if (const RecordType *RTy = BaseType->getAs<RecordType>()) {
1311 if (const ObjCObjectType *OTy = BaseType->getAs<ObjCObjectType>()) {
1474 if (!IsArrow && (OPT = BaseType->getAs<ObjCObjectPointerType>())) {
1597 if (BaseType->isExtVectorType()) {
1624 if (IsArrow && BaseType->isSpecificBuiltinType(BuiltinType::ObjCSel) &&
1625 !S.Context.getObjCSelRedefinitionType()->isObjCSelType()) {
1642 if (const PointerType *Ptr = BaseType->getAs<PointerType>()) {
1643 if (!IsArrow && Ptr->getPointeeType()->isRecordType() &&
1720 if (Base->getType()->isDependentType() || Name.isDependentName() ||
1749 if (Ptr->getPointeeType()->hasAttr(attr::NoDeref))
1777 if (const ReferenceType *Ref = MemberType->getAs<ReferenceType>()) {
1782 if (IsArrow) BaseType = BaseType->getAs<PointerType>()->getPointeeType();
tools/clang/lib/Sema/SemaExprObjC.cpp 157 if (!ReturnType->isObjCObjectPointerType()) {
398 if (S.getLangOpts().CPlusPlus && Element->getType()->isRecordType()) {
418 if (!Element->getType()->isObjCObjectPointerType() &&
419 !Element->getType()->isBlockPointerType()) {
514 if (const PointerType *PT = ValueType->getAs<PointerType>()) {
592 BoxingMethod->getReturnType()->getNullability(Context);
598 } else if (ValueType->isBuiltinType()) {
633 } else if (const EnumType *ET = ValueType->getAs<EnumType>()) {
643 } else if (ValueType->isObjCBoxableRecordType()) {
740 if (ValueType->isObjCBoxableRecordType()) {
846 const PointerType *PtrT = T->getAs<PointerType>();
859 if (!Method->parameters()[1]->getType()->isIntegerType()) {
875 QualType RequiredType = ObjectsType->castAs<PointerType>()->getPointeeType();
963 const PointerType *PtrValue = ValueT->getAs<PointerType>();
977 const PointerType *PtrKey = KeyT->getAs<PointerType>();
1015 if (!CountType->isIntegerType()) {
1030 QualType ValueT = ValuesT->castAs<PointerType>()->getPointeeType();
1032 QualType KeyT = KeysT->castAs<PointerType>()->getPointeeType();
1081 if (EncodedType->isDependentType())
1084 if (!EncodedType->getAsArrayTypeUnsafe() && //// Incomplete array is handled.
1085 !EncodedType->isVoidType()) // void is handled too.
1319 ->getNullability(Context)){
1353 if (ReceiverType->getAsObjCInterfaceType())
1357 if (ReceiverType->isObjCClassType() ||
1358 ReceiverType->isObjCQualifiedClassType())
1387 assert(ReceiverType->isObjCClassType() && "expected a Class self");
1398 if (auto Nullability = resultType->getNullability(Context))
1410 if (!resultType->canHaveNullability())
1415 if (auto nullability = ReceiverType->getNullability(Context))
1419 if (auto nullability = resultType->getNullability(Context))
1449 } while (resultType->getNullability(Context));
1611 if (ReceiverType->isObjCObjectPointerType()) {
1613 ReceiverType->getAs<ObjCObjectPointerType>()->getInterfaceDecl()) {
1654 = ReceiverType->getObjCSubstitutions(Method->getDeclContext());
1717 if (typeArgs && Args[i]->isRValue() && paramType->isBlockPointerType() &&
1718 Args[i]->getType()->isBlockPointerType() &&
1719 origParamType->isObjCObjectPointerType()) {
1779 const ObjCObjectType *objType = type->castAs<ObjCObjectType>();
1977 T->getAsObjCInterfacePointerType()) {
2025 return HandleExprPropertyRefExpr(T->castAs<ObjCObjectPointerType>(),
2347 const auto *OPT = ReceiverType->getAs<ObjCObjectPointerType>();
2356 const auto *IT = ReceiverType->getAs<ObjCInterfaceType>();
2367 if (Ret->isRecordType() || Ret->isVectorType() || Ret->isExtVectorType()) {
2367 if (Ret->isRecordType() || Ret->isVectorType() || Ret->isExtVectorType()) {
2367 if (Ret->isRecordType() || Ret->isVectorType() || Ret->isExtVectorType()) {
2371 << (!Ret->isRecordType()
2373 : Ret->isUnionType() ? /*Union*/ 1 : /*Struct*/ 0);
2471 if (ReceiverType->isDependentType()) {
2485 const ObjCObjectType *ClassType = ReceiverType->getAs<ObjCObjectType>();
2536 if (Method && !Method->getReturnType()->isVoidType() &&
2737 if (ReceiverType->isObjCRetainableType()) {
2741 (ReceiverType->isPointerType() ||
2742 ReceiverType->isIntegerType())) {
2748 if (ReceiverType->isPointerType()) {
2774 if (ReceiverType->isObjCIdType() && !isImplicit)
2785 bool receiverIsIdLike = ReceiverType->isObjCIdOrObjectKindOfType(Context,
2787 if (receiverIsIdLike || ReceiverType->isBlockPointerType() ||
2807 } else if (ReceiverType->isObjCClassOrClassKindOfType() ||
2808 ReceiverType->isObjCQualifiedClassType()) {
2813 if (!ReceiverType->isObjCClassOrClassKindOfType()) {
2815 = ReceiverType->getAsObjCQualifiedClassType();
2883 = ReceiverType->getAsObjCQualifiedIdType()) {
2891 = ReceiverType->getAsObjCInterfacePointerType()) {
2984 OCIType = ReceiverType->getAsObjCInterfacePointerType()) {
3025 bool ClassMessage = (ReceiverType->isObjCClassType() ||
3026 ReceiverType->isObjCQualifiedClassType());
3033 if (Method && !Method->getReturnType()->isVoidType() &&
3144 if (const auto *OPT = ReceiverType->getAs<ObjCObjectPointerType>()) {
3274 if (const ReferenceType *ref = type->getAs<ReferenceType>()) {
3281 if (const PointerType *ptr = type->getAs<PointerType>()) {
3286 if (type->isVoidType()) return ACTC_voidPtr;
3287 if (type->isRecordType()) return ACTC_coreFoundation;
3289 } else if (const ArrayType *array = type->getAsArrayTypeUnsafe()) {
3290 type = QualType(array->getElementType()->getBaseElementTypeUnsafe(), 0);
3298 if (type->isObjCARCBridgableType())
3303 if (type->isObjCARCBridgableType())
3343 return type->isCARCBridgableType();
3648 if (QT->isPointerType()) {
3649 QT = QT->getPointeeType();
3650 if (const RecordType *RT = QT->getAs<RecordType>())
3697 srcKind = (castExprType->isPointerType() ? 1 : 0);
3700 srcKind = (castExprType->isBlockPointerType() ? 2 : 3);
3720 << unsigned(castType->isBlockPointerType()) // to ObjC|block type
3760 << unsigned(castExprType->isBlockPointerType()) // of ObjC|block type
3823 castType->getAsObjCInterfacePointerType()) {
3831 << T << Target->getName() << castType->getPointeeType();
3833 } else if (castType->isObjCIdType() ||
3850 } else if (!castType->isObjCIdType()) {
3889 castExpr->getType()->getAsObjCInterfacePointerType()) {
3898 << castExpr->getType()->getPointeeType() << T;
3902 } else if (castExpr->getType()->isObjCIdType() ||
4202 if (const ReferenceType *ref = castType->getAs<ReferenceType>())
4246 if (castACTC == ACTC_none && castType->isIntegralType(Context))
4387 canExprType->isObjCObjectPointerType()) {
4389 canExprType->getAs<ObjCObjectPointerType>())
4448 if (T->isDependentType() || SubExpr->isTypeDependent()) {
4451 } else if (T->isObjCARCBridgableType() && FromType->isCARCBridgableType()) {
4451 } else if (T->isObjCARCBridgableType() && FromType->isCARCBridgableType()) {
4453 CK = (T->isBlockPointerType() ? CK_AnyPointerToBlockPointerCast
4464 << (T->isBlockPointerType()? 1 : 0)
4485 } else if (T->isCARCBridgableType() && FromType->isObjCARCBridgableType()) {
4485 } else if (T->isCARCBridgableType() && FromType->isObjCARCBridgableType()) {
4505 << (FromType->isBlockPointerType()? 1 : 0)
tools/clang/lib/Sema/SemaFixItUtils.cpp 201 if (T->isScalarType()) {
208 const CXXRecordDecl *RD = T->getAsCXXRecordDecl();
tools/clang/lib/Sema/SemaInit.cpp 71 if (isa<ObjCEncodeExpr>(Init) && AT->getElementType()->isCharType())
85 if (ElemTy->isChar8Type())
91 if (ElemTy->isCharType())
96 if (ElemTy->isChar8Type())
109 if (ElemTy->isCharType() || ElemTy->isChar8Type())
109 if (ElemTy->isCharType() || ElemTy->isChar8Type())
117 if (ElemTy->isCharType() || ElemTy->isChar8Type())
117 if (ElemTy->isCharType() || ElemTy->isChar8Type())
125 if (ElemTy->isCharType() || ElemTy->isChar8Type())
125 if (ElemTy->isCharType() || ElemTy->isChar8Type())
192 cast<ConstantArrayType>(Str->getType()->getAsArrayTypeUnsafe());
496 Entity.getType()->getBaseElementTypeUnsafe()->isRecordType();
647 if (const RecordType *RType = ILE->getType()->getAs<RecordType>())
684 if (Field->getType()->isReferenceType()) {
769 if (const RecordType *RType = ILE->getType()->getAs<RecordType>()) {
844 } else if (const VectorType *VType = ILE->getType()->getAs<VectorType>()) {
977 RecordDecl *structDecl = DeclType->castAs<RecordType>()->getDecl();
1007 Entity.getParent()->getType()->castAs<RecordType>()->getDecl();
1031 if (T->isArrayType())
1033 else if (T->isRecordType())
1035 else if (T->isVectorType())
1036 maxElements = T->castAs<VectorType>()->getNumElements();
1077 if (!VerifyOnly && (T->isArrayType() || T->isRecordType()) &&
1077 if (!VerifyOnly && (T->isArrayType() || T->isRecordType()) &&
1092 auto *CXXRD = T->getAsCXXRecordDecl();
1179 if (!ExprTy->isArrayType())
1189 if (Index < IList->getNumInits() && !T->isIncompleteType()) {
1192 (SemaRef.getLangOpts().OpenCL && T->isVectorType());
1206 int initKind = T->isArrayType() ? 0 :
1207 T->isVectorType() ? 1 :
1208 T->isScalarType() ? 2 :
1209 T->isUnionType() ? 3 :
1220 if (T->isScalarType() && IList->getNumInits() == 1 &&
1226 auto *CXXRD = T->getAsCXXRecordDecl();
1253 if (DeclType->isAnyComplexType() && SubobjectIsDesignatorContext) {
1258 } else if (DeclType->isScalarType()) {
1261 } else if (DeclType->isVectorType()) {
1264 } else if (DeclType->isRecordType()) {
1265 assert(DeclType->isAggregateType() &&
1267 RecordDecl *RD = DeclType->castAs<RecordType>()->getDecl();
1276 } else if (DeclType->isArrayType()) {
1283 } else if (DeclType->isVoidType() || DeclType->isFunctionType()) {
1283 } else if (DeclType->isVoidType() || DeclType->isFunctionType()) {
1290 } else if (DeclType->isReferenceType()) {
1293 } else if (DeclType->isObjCObjectType()) {
1297 } else if (DeclType->isOCLIntelSubgroupAVCType()) {
1317 if (ElemType->isReferenceType())
1353 (ElemType->isExtVectorType() && !Entity.getType()->isExtVectorType())
1353 (ElemType->isExtVectorType() && !Entity.getType()->isExtVectorType())
1385 } else if (ElemType->isScalarType() || ElemType->isAtomicType()) {
1385 } else if (ElemType->isScalarType() || ElemType->isAtomicType()) {
1408 assert((ElemType->isRecordType() || ElemType->isVectorType() ||
1408 assert((ElemType->isRecordType() || ElemType->isVectorType() ||
1409 ElemType->isOpenCLSpecificType()) && "Unexpected type");
1445 if ((!SemaRef.getLangOpts().OpenCL && ElemType->isVectorType()) ||
1446 ElemType->isAggregateType()) {
1493 QualType elementType = DeclType->castAs<ComplexType>()->getElementType();
1639 const VectorType *VT = DeclType->castAs<VectorType>();
1656 if (!isa<InitListExpr>(Init) && Init->getType()->isVectorType()) {
1709 const VectorType *T = Entity.getType()->castAs<VectorType>();
1728 if (elementType->isFloatingType())
1730 else if (elementType->isSignedIntegerType())
1732 else if (elementType->isUnsignedIntegerType())
1759 if (!IType->isVectorType()) {
1765 const VectorType *IVT = IType->castAs<VectorType>();
1768 if (IType->isExtVectorType())
1801 auto *CXXRD = ElementType->getAsCXXRecordDecl();
1928 if (!hadError && DeclType->isIncompleteArrayType() && !VerifyOnly) {
1998 RecordDecl *structDecl = DeclType->castAs<RecordType>()->getDecl();
2009 if (DeclType->isUnionType() && IList->getNumInits() == 0) {
2010 RecordDecl *RD = DeclType->castAs<RecordType>()->getDecl();
2085 RecordDecl *RD = DeclType->castAs<RecordType>()->getDecl();
2137 if (InitializedSomething && DeclType->isUnionType())
2141 if (Field->getType()->isIncompleteArrayType())
2178 if (DeclType->isUnionType() && StructuredList) {
2188 Field != FieldEnd && !Field->getType()->isIncompleteArrayType() &&
2189 !DeclType->isUnionType()) {
2204 if (!StructuredList && Field != FieldEnd && !DeclType->isUnionType() &&
2205 !Field->getType()->isIncompleteArrayType()) {
2229 if (Field == FieldEnd || !Field->getType()->isIncompleteArrayType() ||
2482 const RecordType *RT = CurrentObjectType->getAs<RecordType>();
2666 if (Field->getType()->isIncompleteArrayType()) {
2866 if (CharTy->isPromotableIntegerType())
3046 if (!ResultType->isArrayType())
3062 } else if (const VectorType *VType = CurrentObjectType->getAs<VectorType>()) {
3064 } else if (CurrentObjectType->isRecordType()) {
3228 } else if (const VectorType *VT = Parent.getType()->getAs<VectorType>()) {
3232 const ComplexType *CT = Parent.getType()->getAs<ComplexType>();
3785 assert(Entity.getType()->isObjCRetainableType() &&
3795 if (!Entity.getType()->isObjCRetainableType())
3939 auto *SourceRD = Initializer->getType()->getAsCXXRecordDecl();
4030 const RecordType *DestRecordType = DestType->getAs<RecordType>();
4167 } else if (!UnqualifiedTargetType->isRecordType()) {
4210 QualType cv1T1 = DestType->castAs<ReferenceType>()->getPointeeType();
4256 if (DestType->isRValueReferenceType() ||
4276 if (S.getLangOpts().CPlusPlus && DestType->isScalarType() &&
4277 !DestType->isAnyComplexType() && InitList->getNumInits() > 1) {
4281 if (DestType->isReferenceType()) {
4287 if (DestType->isRecordType() &&
4305 if (DestType->isRecordType()) {
4344 if ((DestType->isRecordType() && !DestType->isAggregateType()) ||
4344 if ((DestType->isRecordType() && !DestType->isAggregateType()) ||
4352 CXXRecordDecl *RD = DestType->getAsCXXRecordDecl();
4374 if (S.getLangOpts().CPlusPlus && !DestType->isAggregateType() &&
4383 auto *ET = DestType->getAs<EnumType>();
4388 (E->getType()->isIntegralOrEnumerationType() ||
4389 E->getType()->isFloatingType())) {
4406 ICS.Standard.Second = E->getType()->isFloatingType()
4432 if (InitList->getInit(0)->getType()->isRecordType()) {
4467 QualType cv1T1 = DestType->castAs<ReferenceType>()->getPointeeType();
4498 if (AllowRValues && (T1RecordType = T1->getAs<RecordType>()) &&
4529 if ((T2RecordType = T2->getAs<RecordType>()) &&
4557 Conv->getConversionType()->isLValueReferenceType())) {
4594 if (cv3T3->isLValueReferenceType())
4596 else if (const auto *RRef = cv3T3->getAs<RValueReferenceType>())
4597 VK = RRef->getPointeeType()->isFunctionType() ? VK_LValue : VK_XValue;
4665 QualType cv1T1 = DestType->castAs<ReferenceType>()->getPointeeType();
4704 bool isLValueRef = DestType->isLValueReferenceType();
4725 bool T1Function = T1->isFunctionType();
4762 if (RefRelationship == Sema::Ref_Incompatible && T2->isRecordType() &&
4834 (S.getLangOpts().CPlusPlus17 || T2->isRecordType() ||
4835 T2->isArrayType())))) {
4837 if (InitCategory.isPRValue() && T2->isRecordType()) {
4893 if (T2->isRecordType()) {
5022 if (const RecordType *RT = T->getAs<RecordType>()) {
5098 if (DestType->isRecordType() && S.getLangOpts().CPlusPlus) {
5131 assert(!DestType->isReferenceType() && "References are handled elsewhere");
5133 assert((DestType->isRecordType() || SourceType->isRecordType()) &&
5133 assert((DestType->isRecordType() || SourceType->isRecordType()) &&
5146 if (const RecordType *DestRecordType = DestType->getAs<RecordType>()) {
5179 if (const RecordType *SourceRecordType = SourceType->getAs<RecordType>()) {
5269 if (ConvType->getAs<RecordType>()) {
5280 Function->getReturnType()->isReferenceType() ||
5311 Entity.getType()->isPointerType() &&
5473 if (!S.getLangOpts().OpenCL || !DestType->isSamplerT() ||
5475 !Initializer->getType()->isSamplerT()))
5502 if (DestType->isEventT() || DestType->isQueueT()) {
5502 if (DestType->isEventT() || DestType->isQueueT()) {
5515 DestType->isOCLIntelSubgroupAVCType()) {
5516 if (DestType->isOCLIntelSubgroupAVCMcePayloadType() ||
5517 DestType->isOCLIntelSubgroupAVCMceResultType())
5600 if (Args[I]->getType()->isNonOverloadPlaceholderType()) {
5618 if (DestType->isDependentType() ||
5653 if (DestType->isReferenceType()) {
5754 Initializer->getType()->isArrayType()) {
5773 } else if (DestAT->getElementType()->isCharType())
5812 if (DestType->isRecordType()) {
5848 if (!SourceType.isNull() && SourceType->isRecordType()) {
5852 if (const AtomicType *Atomic = DestType->getAs<AtomicType>()) {
5913 else if (Initializer->getType()->isFunctionType() &&
6112 if (const RecordType *Record = T->getAs<RecordType>())
6259 const RecordType *Record = CurInitExpr->getType()->getAs<RecordType>();
6704 if (auto *RD = Type->getAsCXXRecordDecl())
6736 if (Callee->getReturnType()->isPointerType() ||
6747 } else if (Callee->getReturnType()->isReferenceType()) {
6763 const auto *RD = FD->getParamDecl(0)->getType()->getPointeeCXXRecordDecl();
6769 if (FD->getReturnType()->isPointerType() ||
6776 } else if (FD->getReturnType()->isReferenceType()) {
6967 if (!VD->getType()->isReferenceType()) {
7004 if (!C->getTrueExpr()->getType()->isVoidType())
7007 if (!C->getFalseExpr()->getType()->isVoidType())
7136 if (ILE->getType()->isArrayType()) {
7144 if (CXXRecordDecl *RD = ILE->getType()->getAsCXXRecordDecl()) {
7151 ILE->getInitializedFieldInUnion()->getType()->isReferenceType())
7167 if (I->getType()->isReferenceType())
7230 if (!BO->getType()->isPointerType() || (BOK != BO_Add && BOK != BO_Sub))
7233 if (BO->getLHS()->getType()->isPointerType())
7236 else if (BO->getRHS()->getType()->isPointerType())
7247 if (!C->getTrueExpr()->getType()->isVoidType())
7250 if (!C->getFalseExpr()->getType()->isVoidType())
7472 bool IsPointer = !Member->getType()->isReferenceType();
7507 << Entity.getType()->isReferenceType() << DRE->getDecl()
7519 << Entity.getType()->isReferenceType() << DiagRange;
7549 << VD->getType()->isReferenceType()
7589 if (!DestType->isRecordType())
7626 if (!SourceType->isRecordType())
7642 if (!ArgStripped->isRValue() || !ArgStripped->getType()->isRecordType())
7732 auto PointeeTy = Ty->getPointeeType();
7733 auto ExprPointeeTy = E->getType()->getPointeeType();
7764 << DestType << (bool)DestType->getAs<RecordType>()
7773 if (ResultType && !Entity.getType()->isDependentType() &&
7825 if (S.getLangOpts().CPlusPlus11 && Entity.getType()->isReferenceType() &&
7843 ETy->isAtomicType() && !HasGlobalAS &&
7988 if (CurInit.get()->getType()->isFunctionProtoType()) {
8011 Step->Type, CurInit.get(), Entity.getType()->isLValueReferenceType());
8097 CreatedObject = Conversion->getReturnType()->isRecordType();
8117 if (const RecordType *Record = T->getAs<RecordType>()) {
8153 CurInit.get()->getType()->getAs<PointerType>()) {
8154 if (const auto *ToPtrType = Step->Type->getAs<PointerType>()) {
8155 if (FromPtrType->getPointeeType()->hasAttr(attr::NoDeref) &&
8156 !ToPtrType->getPointeeType()->hasAttr(attr::NoDeref)) {
8208 ResultType->getNonReferenceType()->isIncompleteArrayType()) {
8209 if ((*ResultType)->isRValueReferenceType())
8211 else if ((*ResultType)->isLValueReferenceType())
8213 (*ResultType)->castAs<LValueReferenceType>()->isSpelledAsLValue());
8238 bool UseTemporary = Entity.getType()->isReferenceType();
8284 bool UseTemporary = Entity.getType()->isReferenceType();
8483 assert(Step->Type->isSamplerT() &&
8489 if (!SourceType->isSamplerT() && !SourceType->isIntegerType()) {
8489 if (!SourceType->isSamplerT() && !SourceType->isIntegerType()) {
8523 if (!SourceType->isIntegerType() ||
8561 assert((Step->Type->isEventT() || Step->Type->isQueueT() ||
8561 assert((Step->Type->isEventT() || Step->Type->isQueueT() ||
8562 Step->Type->isOCLIntelSubgroupAVCType()) &&
8598 if (T->isReferenceType()) {
8604 CXXRecordDecl *RD = T->getBaseElementTypeUnsafe()->getAsCXXRecordDecl();
8638 if (destType.getNonReferenceType()->isObjCObjectPointerType() &&
8639 op->getType()->isObjCObjectPointerType()) {
8668 if (DestType->isReferenceType()) {
8672 QualType T = DestType->castAs<ReferenceType>()->getPointeeType();
8717 DestType->isReferenceType());
8920 << DestType.getNonReferenceType()->isIncompleteType()
8978 << (DestType->isRecordType()) << DestType << Args[0]->getSourceRange();
9029 = Entity.getBaseSpecifier()->getType()->castAs<RecordType>()
9044 = Entity.getType()->getAs<RecordType>())
9109 << DestType << (bool)DestType->getAs<RecordType>();
9556 if (const TypedefType *TT = EntityType->getAs<TypedefType>()) {
9563 } else if (const BuiltinType *BT = EntityType->getAs<BuiltinType>())
9672 TSInfo->getType()->getContainedDeducedType());
9837 auto *RD = E->getType()->getAsCXXRecordDecl();
tools/clang/lib/Sema/SemaLambda.cpp 372 const FunctionProtoType *FPT = MethodType->castAs<FunctionProtoType>();
374 if (Result->isUndeducedType()) {
504 if (!LSI->ReturnType->isDependentType() &&
505 !LSI->ReturnType->isVoidType()) {
626 if (const EnumType *ET = E->getType()->getAs<EnumType>()) {
676 assert(returnType->isIntegralOrUnscopedEnumerationType());
677 assert(retValue->getType()->isIntegralOrUnscopedEnumerationType());
695 assert(CSI.ReturnType.isNull() || !CSI.ReturnType->isUndeducedType());
735 if (CSI.ReturnType->isDependentType())
767 auto RetTyNullability = ReturnType->getNullability(Ctx);
768 auto BlockNullability = CSI.ReturnType->getNullability(Ctx);
879 LSI->addCapture(Var, /*isBlock*/false, Var->getType()->isReferenceType(),
962 if (MethodTyInfo->getType()->containsUnexpandedParameterPack())
1090 !C->InitCaptureType.get()->getAs<PackExpansionType>())
1290 CallOperator->getType()->castAs<FunctionProtoType>());
1441 CallOperator->getType()->castAs<FunctionProtoType>());
1565 ? getCurrentThisType()->getPointeeType()
1571 const Type *BaseT = T->getBaseElementTypeUnsafe();
1622 if (!FieldType->isDependentType()) {
1628 FieldType->isIncompleteType(&Def);
tools/clang/lib/Sema/SemaLookup.cpp 431 if (EVD->getType()->isIncompleteType() &&
432 !DVD->getType()->isIncompleteType()) {
797 FunctionList[Index]->isFunctionProtoType());
1021 R.getLookupName().getCXXNameType()->isDependentType() ||
1037 R.getLookupName().getCXXNameType()->getContainedDeducedType();
1073 = ConvTemplate->getTemplatedDecl()->getType()->getAs<FunctionProtoType>();
2133 RecordDecl *BaseRecord = Specifier->getType()->castAs<RecordType>()->getDecl();
2510 BaseSpec.getType()->castAs<RecordType>()->getDecl());
2782 const RecordType *BaseType = Base.getType()->getAs<RecordType>();
2822 const Type *T = Ty->getCanonicalTypeInternal().getTypePtr();
3412 FD->getParamDecl(0)->getType()->getAs<PointerType>())
3838 if (BaseType->isDependentType()) {
3844 const auto *TST = BaseType->getAs<TemplateSpecializationType>();
3854 const auto *Record = BaseType->getAs<RecordType>();
5226 if (ValType->isAnyPointerType() || ValType->isReferenceType())
5226 if (ValType->isAnyPointerType() || ValType->isReferenceType())
5227 ValType = ValType->getPointeeType();
5228 if (const FunctionProtoType *FPT = ValType->getAs<FunctionProtoType>())
tools/clang/lib/Sema/SemaObjCProperty.cpp 56 type->isObjCRetainableType()) {
509 PIDecl->getType()->getAs<ObjCObjectPointerType>() &&
592 !T->isObjCRetainableType());
600 T->getAs<ObjCObjectPointerType>()) {
610 if (T->isObjCObjectType()) {
641 if (T->isArrayType() || T->isFunctionType()) {
641 if (T->isArrayType() || T->isFunctionType()) {
746 assert(ivarType->isObjCARCImplicitlyUnretainedType());
1195 PropertyIvarType->isObjCRetainableType()) {
1231 PropertyIvarType->getAs<ObjCObjectPointerType>()) {
1269 PropertyIvarType->isObjCRetainableType()) {
1303 const RecordType *RecordTy = PropertyIvarType->getAs<RecordType>();
1339 PropertyIvarType->getAs<ObjCObjectPointerType>(),
1340 IvarType->getAs<ObjCObjectPointerType>());
1361 lhsType->isArithmeticType()) {
1378 if ((property->getType()->isObjCObjectPointerType() ||
1408 Ivar->getType()->isRecordType()) {
1462 Ivar->getType()->isRecordType()) {
1495 if (property->getType()->isReferenceType()) {
1667 PropertyRValueType->getAs<ObjCObjectPointerType>()) &&
1668 (getterObjCPtr = GetterType->getAs<ObjCObjectPointerType>()))
1681 if (lhsType != rhsType && lhsType->isArithmeticType())
2557 !PropertyTy->isObjCRetainableType() &&
2570 PropertyTy->isObjCRetainableType() &&
2571 !PropertyTy->isObjCARCImplicitlyUnretainedType()) {
2654 if (auto nullability = PropertyTy->getNullability(Context)) {
2670 if (!getOwnershipRule(Attributes) && PropertyTy->isObjCRetainableType()) {
2677 } else if (PropertyTy->isObjCObjectPointerType()) {
2679 (PropertyTy->isObjCClassType() ||
2680 PropertyTy->isObjCQualifiedClassType());
2707 && PropertyTy->isBlockPointerType())
2712 PropertyTy->isBlockPointerType())
tools/clang/lib/Sema/SemaOpenMP.cpp 1250 ? Type->getAsCXXRecordDecl()
1708 if ((Ty->isFloat16Type() && !Context.getTargetInfo().hasFloat16Type()) ||
1709 ((Ty->isFloat128Type() ||
1710 (Ty->isRealFloatingType() && Context.getTypeSize(Ty) == 128)) &&
1712 (Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
1786 if (Ty->isReferenceType())
1787 Ty = Ty->castAs<ReferenceType>()->getPointeeType();
1833 IsByRef = !(Ty->isPointerType() && IsVariableAssociatedWithSection);
1839 !Ty->isAnyPointerType()) ||
1840 !Ty->isScalarType() ||
1847 if (IsByRef && Ty.getNonReferenceType()->isScalarType()) {
2058 if (D->getType()->isScalarType() &&
2435 if (QType->isDependentType() || QType->isInstantiationDependentType()) {
2435 if (QType->isDependentType() || QType->isInstantiationDependentType()) {
2450 if (VD->getType()->isReferenceType()) {
2858 VD->getType().getNonReferenceType()->getAsCXXRecordDecl())
2862 (VD->getType().getNonReferenceType()->isScalarType() &&
3557 Ref->getType()->isPointerType()) {
3604 ->getAsCXXRecordDecl()) {
4927 CanonPVD->getType()->hasIntegerRepresentation()) {
5075 !ER.get()->IgnoreParenImpCasts()->getType()->isFunctionType()) {
5428 return LCDecl->getType()->isDependentType() ||
5501 bool IsUnsigned = !NewStep->getType()->hasSignedIntegerRepresentation();
5558 if (Data.first && VD->getType()->isRecordType()) {
5682 if (Var->hasInit() && !Var->getType()->isReferenceType()) {
5950 if (VarType->isIntegerType() || VarType->isPointerType() ||
5950 if (VarType->isIntegerType() || VarType->isPointerType() ||
6124 if (!Diff.isUsable() && VarType->getAsCXXRecordDecl()) {
6165 bool UseVarType = VarType->hasIntegerRepresentation() &&
6167 if (!Type->isIntegerType() || UseVarType) {
6170 bool IsSigned = UseVarType ? VarType->hasSignedIntegerRepresentation()
6171 : Type->hasSignedIntegerRepresentation();
6189 NewSize, Type->hasSignedIntegerRepresentation() ||
6207 if (LCDecl->getType()->isRecordType())
6273 if (!VarType->isAnyPointerType() &&
6277 } else if (VarType->isAnyPointerType() &&
6422 if (VarType->isIntegerType() || VarType->isPointerType() ||
6422 if (VarType->isIntegerType() || VarType->isPointerType() ||
6436 if (!Diff.isUsable() && VarType->getAsCXXRecordDecl()) {
6606 if (!VarType->isDependentType() && !VarType->isIntegerType() &&
6606 if (!VarType->isDependentType() && !VarType->isIntegerType() &&
6607 !VarType->isPointerType() &&
6608 !(SemaRef.getLangOpts().CPlusPlus && VarType->isOverloadableType())) {
6784 if (VarRef.get()->getType()->isOverloadableType() ||
6785 NewStart.get()->getType()->isOverloadableType() ||
6786 Update.get()->getType()->isOverloadableType()) {
7087 LastIteration32.get()->getType()->hasSignedIntegerRepresentation(),
7259 RealVType->hasUnsignedIntegerRepresentation() &&
8340 if (AtomicBody->getType()->isScalarType() ||
8498 if ((X->isInstantiationDependent() || X->getType()->isScalarType()) &&
8499 (V->isInstantiationDependent() || V->getType()->isScalarType())) {
8511 (X->isInstantiationDependent() || X->getType()->isScalarType())
8561 if ((X->isInstantiationDependent() || X->getType()->isScalarType()) &&
8562 (E->isInstantiationDependent() || E->getType()->isScalarType())) {
8573 (X->isInstantiationDependent() || X->getType()->isScalarType())
11061 << ConvTy->isEnumeralType() << ConvTy;
11070 << ConvTy->isEnumeralType() << ConvTy;
12070 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType() &&
12070 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType() &&
12356 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType() &&
12356 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType() &&
12383 if (Type->isArrayType()) {
12835 if (SemaRef.CurContext->isDependentContext() || Ty->isDependentType() ||
12836 Ty->isInstantiationDependentType() ||
12837 Ty->containsUnexpandedParameterPack() ||
12840 (D->getType()->isDependentType() ||
12841 D->getType()->isInstantiationDependentType() ||
12842 D->getType()->containsUnexpandedParameterPack());
12872 if (const auto *TyRec = Ty->getAs<RecordType>()) {
13194 if (const auto *ATy = BaseType->getAsArrayTypeUnsafe())
13197 Type = BaseType->getPointeeType();
13224 if (VD->getType()->isReferenceType() && VDDef && VDDef->hasInit()) {
13312 !(Type->isScalarType() ||
13313 (S.getLangOpts().CPlusPlus && Type->isArithmeticType()))) {
13326 !S.getLangOpts().CPlusPlus && Type->isFloatingType()) {
13367 D->getType().getNonReferenceType()->isVariablyModifiedType())) {
13415 if (Type->isScalarType() || Type->isAnyComplexType())
13415 if (Type->isScalarType() || Type->isAnyComplexType())
13420 if (Type->isScalarType() || Type->isAnyComplexType()) {
13420 if (Type->isScalarType() || Type->isAnyComplexType()) {
13428 if (auto *ComplexTy = OrigType->getAs<ComplexType>())
13430 if (Type->isRealFloatingType()) {
13436 } else if (Type->isScalarType()) {
13442 if (Init && OrigType->isAnyComplexType()) {
13456 if (Type->isIntegerType() || Type->isPointerType()) {
13456 if (Type->isIntegerType() || Type->isPointerType()) {
13457 bool IsSigned = Type->hasSignedIntegerRepresentation();
13467 if (Type->isPointerType()) {
13475 } else if (Type->isRealFloatingType()) {
13761 !Type->isReferenceType()) {
14141 if (Type->isDependentType() || Type->isInstantiationDependentType()) {
14141 if (Type->isDependentType() || Type->isInstantiationDependentType()) {
14259 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType()) {
14259 if (!Type->isAnyPointerType() && Type->isVariablyModifiedType()) {
14447 !ASE->getBase()->getType().getNonReferenceType()->isPointerType() &&
14448 !ASE->getBase()->getType().getNonReferenceType()->isArrayType())) {
14519 if (QTy->isIncompleteType(&ND)) {
14569 if (BaseQTy->isPointerType())
14734 if (CurType->isUnionType()) {
14758 if (!E->getType()->isAnyPointerType() && !E->getType()->isArrayType()) {
14758 if (!E->getType()->isAnyPointerType() && !E->getType()->isArrayType()) {
14799 if (CurType->isReferenceType())
14800 CurType = CurType->getPointeeType();
14802 bool IsPointer = CurType->isAnyPointerType();
14804 if (!IsPointer && !CurType->isArrayType()) {
14962 if (Type.isNull() || Type->isAnyPointerType() ||
15014 if (DerivedType->isAnyPointerType()) {
15058 ->isAnyPointerType()) {
15124 if (Type->isArrayType()) {
15125 assert(Type->getAsArrayTypeUnsafe() && "Expect to get a valid array type");
15126 Type = Type->getAsArrayTypeUnsafe()->getElementType().getCanonicalType();
15154 if (SemaRef.CurContext->isDependentContext() || Type->isDependentType() ||
15155 Type->isInstantiationDependentType() ||
15156 Type->containsUnexpandedParameterPack() ||
15159 (D->getType()->isDependentType() ||
15160 D->getType()->isInstantiationDependentType() ||
15161 D->getType()->containsUnexpandedParameterPack());
15177 if (!Type->isStructureOrClassType() && !Type->isUnionType() &&
15177 if (!Type->isStructureOrClassType() && !Type->isUnionType() &&
15563 if (ReductionType->isFunctionType()) {
15567 if (ReductionType->isReferenceType()) {
15571 if (ReductionType->isArrayType()) {
15826 if (!MapperType->isStructureOrClassType() && !MapperType->isUnionType()) {
15826 if (!MapperType->isStructureOrClassType() && !MapperType->isUnionType()) {
16328 if ((E || !VD->getType()->isIncompleteType()) &&
16412 if (!Type->isPointerType()) {
16488 if (!Type.getNonReferenceType()->isPointerType() &&
16489 !Type.getNonReferenceType()->isArrayType()) {
tools/clang/lib/Sema/SemaOverload.cpp 63 if (auto *FPT = Fn->getType()->getAs<FunctionProtoType>())
223 if (getToType(1)->isBooleanType() &&
224 (getFromType()->isPointerType() ||
225 getFromType()->isMemberPointerType() ||
226 getFromType()->isObjCObjectPointerType() ||
227 getFromType()->isBlockPointerType() ||
228 getFromType()->isNullPtrType() ||
251 if (Second == ICK_Pointer_Conversion && FromType->isAnyPointerType())
252 if (const PointerType* ToPtrType = ToType->getAs<PointerType>())
253 return ToPtrType->getPointeeType()->isVoidType();
316 if (auto *ET = ToType->getAs<EnumType>())
322 if (FromType->isRealFloatingType())
324 if (FromType->isIntegralOrUnscopedEnumerationType())
338 if (FromType->isRealFloatingType() && ToType->isIntegralType(Ctx)) {
338 if (FromType->isRealFloatingType() && ToType->isIntegralType(Ctx)) {
340 } else if (FromType->isIntegralOrUnscopedEnumerationType() &&
341 ToType->isRealFloatingType()) {
380 if (FromType->isRealFloatingType() && ToType->isRealFloatingType() &&
380 if (FromType->isRealFloatingType() && ToType->isRealFloatingType() &&
417 assert(FromType->isIntegralOrUnscopedEnumerationType());
418 assert(ToType->isIntegralOrUnscopedEnumerationType());
419 const bool FromSigned = FromType->isSignedIntegerOrEnumerationType();
421 const bool ToSigned = ToType->isSignedIntegerOrEnumerationType();
922 if (const BuiltinType *placeholder = E->getType()->getAsPlaceholderType()) {
1090 !New->getType()->isDependentType()) {
1397 if (ToType->getAs<RecordType>() && FromType->getAs<RecordType>() &&
1397 if (ToType->getAs<RecordType>() && FromType->getAs<RecordType>() &&
1556 FromFn = QT->getAs<FunctionType>();
1580 if (!ToType->isVectorType() && !FromType->isVectorType())
1580 if (!ToType->isVectorType() && !FromType->isVectorType())
1588 if (ToType->isExtVectorType()) {
1591 if (FromType->isExtVectorType())
1595 if (FromType->isArithmeticType()) {
1605 if (ToType->isVectorType() && FromType->isVectorType()) {
1605 if (ToType->isVectorType() && FromType->isVectorType()) {
1645 (FromType->isRecordType() || ToType->isRecordType()))
1645 (FromType->isRecordType() || ToType->isRecordType()))
1671 if (!ToType->isBooleanType())
1711 !FromType->isFunctionType() && !FromType->isArrayType() &&
1711 !FromType->isFunctionType() && !FromType->isArrayType() &&
1718 if (const AtomicType *Atomic = FromType->getAs<AtomicType>())
1726 } else if (FromType->isArrayType()) {
1749 } else if (FromType->isFunctionType() && argIsLValue) {
1792 } else if (ToType->isBooleanType() &&
1793 (FromType->isArithmeticType() ||
1794 FromType->isAnyPointerType() ||
1795 FromType->isBlockPointerType() ||
1796 FromType->isMemberPointerType() ||
1797 FromType->isNullPtrType())) {
1801 } else if (FromType->isIntegralOrUnscopedEnumerationType() &&
1802 ToType->isIntegralType(S.Context)) {
1806 } else if (FromType->isAnyComplexType() && ToType->isAnyComplexType()) {
1806 } else if (FromType->isAnyComplexType() && ToType->isAnyComplexType()) {
1810 } else if ((FromType->isAnyComplexType() && ToType->isArithmeticType()) ||
1810 } else if ((FromType->isAnyComplexType() && ToType->isArithmeticType()) ||
1811 (ToType->isAnyComplexType() && FromType->isArithmeticType())) {
1811 (ToType->isAnyComplexType() && FromType->isArithmeticType())) {
1815 } else if (FromType->isRealFloatingType() && ToType->isRealFloatingType()) {
1815 } else if (FromType->isRealFloatingType() && ToType->isRealFloatingType()) {
1833 } else if ((FromType->isRealFloatingType() &&
1834 ToType->isIntegralType(S.Context)) ||
1835 (FromType->isIntegralOrUnscopedEnumerationType() &&
1836 ToType->isRealFloatingType())) {
1873 } else if (ToType->isEventT() &&
1878 } else if (ToType->isQueueT() &&
1883 } else if (ToType->isSamplerT() &&
1978 const RecordType *UT = ToType->getAsUnionType();
1999 const BuiltinType *To = ToType->getAs<BuiltinType>();
2010 if (FromType->isPromotableIntegerType() && !FromType->isBooleanType() &&
2010 if (FromType->isPromotableIntegerType() && !FromType->isBooleanType() &&
2011 !FromType->isEnumeralType()) {
2013 (FromType->isSignedIntegerType() ||
2041 if (const EnumType *FromEnumType = FromType->getAs<EnumType>()) {
2058 if (ToType->isIntegerType() &&
2081 if (FromType->isAnyCharacterType() && !FromType->isCharType() &&
2081 if (FromType->isAnyCharacterType() && !FromType->isCharType() &&
2082 ToType->isIntegerType()) {
2085 bool FromIsSigned = FromType->isSignedIntegerType();
2099 FromIsSigned == PromoteTypes[Idx]->isSignedIntegerType())) {
2125 if (FromType->isIntegralType(Context) &&
2132 (FromType->isSignedIntegerType() && BitWidth <= ToSize)) {
2138 if (FromType->isUnsignedIntegerType() && BitWidth <= ToSize) {
2149 if (FromType->isBooleanType() && To->getKind() == BuiltinType::Int) {
2160 if (const BuiltinType *FromBuiltin = FromType->getAs<BuiltinType>())
2161 if (const BuiltinType *ToBuiltin = ToType->getAs<BuiltinType>()) {
2194 const ComplexType *FromComplex = FromType->getAs<ComplexType>();
2198 const ComplexType *ToComplex = ToType->getAs<ComplexType>();
2224 if (ToType->isObjCIdType() || ToType->isObjCQualifiedIdType())
2224 if (ToType->isObjCIdType() || ToType->isObjCQualifiedIdType())
2263 Expr->getType()->isIntegerType() && !Expr->getType()->isEnumeralType())
2263 Expr->getType()->isIntegerType() && !Expr->getType()->isEnumeralType())
2297 if (ToType->isObjCObjectPointerType() &&
2304 if (FromType->isBlockPointerType() && ToType->isPointerType() &&
2304 if (FromType->isBlockPointerType() && ToType->isPointerType() &&
2305 ToType->castAs<PointerType>()->getPointeeType()->isVoidType()) {
2305 ToType->castAs<PointerType>()->getPointeeType()->isVoidType()) {
2311 if (ToType->isBlockPointerType() &&
2319 if (ToType->isNullPtrType() &&
2325 const PointerType* ToTypePtr = ToType->getAs<PointerType>();
2338 if (FromType->isObjCObjectPointerType() && ToPointeeType->isVoidType() &&
2338 if (FromType->isObjCObjectPointerType() && ToPointeeType->isVoidType() &&
2341 FromType->getAs<ObjCObjectPointerType>(),
2346 const PointerType *FromTypePtr = FromType->getAs<PointerType>();
2360 if (FromPointeeType->isIncompleteOrObjectType() &&
2361 ToPointeeType->isVoidType()) {
2370 if (getLangOpts().MSVCCompat && FromPointeeType->isFunctionType() &&
2371 ToPointeeType->isVoidType()) {
2401 if (getLangOpts().CPlusPlus && FromPointeeType->isRecordType() &&
2402 ToPointeeType->isRecordType() &&
2411 if (FromPointeeType->isVectorType() && ToPointeeType->isVectorType() &&
2411 if (FromPointeeType->isVectorType() && ToPointeeType->isVectorType() &&
2450 ToType->getAs<ObjCObjectPointerType>();
2452 FromType->getAs<ObjCObjectPointerType>();
2490 if (const PointerType *ToCPtr = ToType->getAs<PointerType>())
2493 ToType->getAs<BlockPointerType>()) {
2502 else if (FromType->getAs<BlockPointerType>() &&
2513 if (const PointerType *FromCPtr = FromType->getAs<PointerType>())
2516 FromType->getAs<BlockPointerType>())
2523 if (FromPointeeType->isPointerType() && ToPointeeType->isPointerType() &&
2523 if (FromPointeeType->isPointerType() && ToPointeeType->isPointerType() &&
2534 if (FromPointeeType->getAs<ObjCObjectPointerType>() &&
2535 ToPointeeType->getAs<ObjCObjectPointerType>() &&
2549 = FromPointeeType->getAs<FunctionProtoType>();
2551 = ToPointeeType->getAs<FunctionProtoType>();
2627 if (const PointerType *ToPointer = ToType->getAs<PointerType>())
2633 if (!ToPointee->isObjCLifetimeType() ||
2640 if (const PointerType *FromPointer = FromType->getAs<PointerType>())
2646 if (!FromPointee->isObjCLifetimeType() ||
2681 ToType->getAs<BlockPointerType>())
2688 FromType->getAs<BlockPointerType>())
2697 = FromPointeeType->getAs<FunctionProtoType>();
2699 = ToPointeeType->getAs<FunctionProtoType>();
2725 if ((!getLangOpts().CPlusPlus || !RHS->isRecordType()) &&
2783 if (auto *FPT = FromType->getAs<FunctionProtoType>())
2786 if (auto *MPT = FromType->getAs<MemberPointerType>())
2787 return MPT->getPointeeType()->getAs<FunctionProtoType>();
2804 if (FromType->isMemberPointerType() && ToType->isMemberPointerType()) {
2804 if (FromType->isMemberPointerType() && ToType->isMemberPointerType()) {
2805 const MemberPointerType *FromMember = FromType->getAs<MemberPointerType>(),
2806 *ToMember = ToType->getAs<MemberPointerType>();
2816 if (FromType->isPointerType())
2817 FromType = FromType->getPointeeType();
2818 if (ToType->isPointerType())
2819 ToType = ToType->getPointeeType();
2826 if (FromType->isInstantiationDependentType() &&
2827 !FromType->getAs<TemplateSpecializationType>()) {
2927 if (Diagnose && !IsCStyleOrFunctionalCast && !FromType->isAnyPointerType() &&
2938 if (const PointerType *ToPtrType = ToType->getAs<PointerType>()) {
2939 if (const PointerType *FromPtrType = FromType->getAs<PointerType>()) {
2943 if (FromPointeeType->isRecordType() && ToPointeeType->isRecordType() &&
2943 if (FromPointeeType->isRecordType() && ToPointeeType->isRecordType() &&
2964 FromPointeeType->isFunctionType() && ToPointeeType->isVoidType()) {
2964 FromPointeeType->isFunctionType() && ToPointeeType->isVoidType()) {
2972 ToType->getAs<ObjCObjectPointerType>()) {
2974 FromType->getAs<ObjCObjectPointerType>()) {
2980 } else if (FromType->isBlockPointerType()) {
2985 } else if (ToType->isBlockPointerType()) {
2986 if (!FromType->isBlockPointerType())
3007 const MemberPointerType *ToTypePtr = ToType->getAs<MemberPointerType>();
3020 const MemberPointerType *FromTypePtr = FromType->getAs<MemberPointerType>();
3050 const MemberPointerType *FromPtrType = FromType->getAs<MemberPointerType>();
3060 const MemberPointerType *ToPtrType = ToType->getAs<MemberPointerType>();
3068 assert(FromClass->isRecordType() && "Pointer into non-class.");
3069 assert(ToClass->isRecordType() && "Pointer into non-class.");
3154 if (ToType.getUnqualifiedType()->isVoidType())
3223 const AtomicType *ToAtomic = ToType->getAs<AtomicType>();
3246 Constructor->getType()->getAs<FunctionProtoType>();
3304 User.After.setFromType(ThisType->castAs<PointerType>()->getPointeeType());
3346 if (const RecordType *ToRecordType = ToType->getAs<RecordType>()) {
3356 (From->getType()->getAs<RecordType>() &&
3430 From->getType()->getAs<RecordType>()) {
3495 User.After.setFromType(ThisType->castAs<PointerType>()->getPointeeType());
3594 bool Block1 = Conv1->getConversionType()->isBlockPointerType();
3595 bool Block2 = Conv2->getConversionType()->isBlockPointerType();
3804 if (!FromType->isEnumeralType())
3807 EnumDecl *Enum = FromType->getAs<EnumType>()->getDecl();
3909 QualType FromPointee1 = FromType1->getPointeeType().getUnqualifiedType();
3910 QualType FromPointee2 = FromType2->getPointeeType().getUnqualifiedType();
3920 = FromType1->getAs<ObjCObjectPointerType>();
3922 = FromType2->getAs<ObjCObjectPointerType>();
4180 FromType1->isPointerType() && FromType2->isPointerType() &&
4180 FromType1->isPointerType() && FromType2->isPointerType() &&
4181 ToType1->isPointerType() && ToType2->isPointerType()) {
4181 ToType1->isPointerType() && ToType2->isPointerType()) {
4183 FromType1->castAs<PointerType>()->getPointeeType().getUnqualifiedType();
4185 ToType1->castAs<PointerType>()->getPointeeType().getUnqualifiedType();
4187 FromType2->castAs<PointerType>()->getPointeeType().getUnqualifiedType();
4189 ToType2->castAs<PointerType>()->getPointeeType().getUnqualifiedType();
4209 = FromType1->getAs<ObjCObjectPointerType>();
4211 = FromType2->getAs<ObjCObjectPointerType>();
4213 = ToType1->getAs<ObjCObjectPointerType>();
4215 = ToType2->getAs<ObjCObjectPointerType>();
4294 FromType1->isMemberPointerType() && FromType2->isMemberPointerType() &&
4294 FromType1->isMemberPointerType() && FromType2->isMemberPointerType() &&
4295 ToType1->isMemberPointerType() && ToType2->isMemberPointerType()) {
4295 ToType1->isMemberPointerType() && ToType2->isMemberPointerType()) {
4297 FromType1->getAs<MemberPointerType>();
4299 ToType1->getAs<MemberPointerType>();
4301 FromType2->getAs<MemberPointerType>();
4303 ToType2->getAs<MemberPointerType>();
4360 if (CXXRecordDecl *Record = T->getAsCXXRecordDecl())
4380 assert(!OrigT1->isReferenceType() &&
4382 assert(!OrigT2->isReferenceType() && "T2 cannot be a reference type");
4404 else if (UnqualT1->isObjCObjectOrInterfaceType() &&
4405 UnqualT2->isObjCObjectOrInterfaceType() &&
4408 else if (UnqualT2->isFunctionType() &&
4469 assert(T2->isRecordType() && "Can only find conversions of record types.");
4471 = dyn_cast<CXXRecordDecl>(T2->castAs<RecordType>()->getDecl());
4503 if (!ConvTemplate && DeclType->isRValueReferenceType()) {
4505 = Conv->getConversionType()->getAs<LValueReferenceType>();
4506 if (RefType && !RefType->getPointeeType()->isFunctionType())
4526 Conv->getConversionType()->getAs<ReferenceType>();
4529 !RefType->getPointeeType()->isFunctionType()))
4598 assert(DeclType->isReferenceType() && "Reference init needs a reference");
4604 QualType T1 = DeclType->castAs<ReferenceType>()->getPointeeType();
4618 bool isRValRef = DeclType->isRValueReferenceType();
4659 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType();
4680 if (!SuppressUserConversions && T2->isRecordType() &&
4702 (InitCategory.isPRValue() && (T2->isRecordType() || T2->isArrayType())) ||
4702 (InitCategory.isPRValue() && (T2->isRecordType() || T2->isArrayType())) ||
4703 (InitCategory.isLValue() && T2->isFunctionType()))) {
4722 !(InitCategory.isPRValue() || T2->isRecordType());
4724 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType();
4744 T2->isRecordType() && S.isCompleteType(DeclLoc, T2) &&
4760 if (T1->isFunctionType())
4797 (T1->isRecordType() || T2->isRecordType()))
4797 (T1->isRecordType() || T2->isRecordType()))
4834 ->getAs<LValueReferenceType>();
4842 if (DeclType->isRValueReferenceType() && LValRefType) {
4898 if (ToType->isRecordType()) {
4909 if (ToType->isArrayType()) {
4940 if (ToType->isArrayType())
4983 if (ToType->isRecordType() && !ToType->isAggregateType()) {
4983 if (ToType->isRecordType() && !ToType->isAggregateType()) {
4997 if (ToType->isAggregateType()) {
5023 if (ToType->isReferenceType()) {
5028 QualType T1 = ToType->castAs<ReferenceType>()->getPointeeType();
5074 if (ToType->isRValueReferenceType() ||
5079 SCS.IsLvalueReference = ToType->isLValueReferenceType();
5093 if (!ToType->isRecordType()) {
5136 if (ToType->isReferenceType())
5186 if (const PointerType *PT = FromType->getAs<PointerType>()) {
5194 assert(FromType->isRecordType());
5299 Method->getThisType()->castAs<PointerType>()->getPointeeType();
5302 if (const PointerType *PT = From->getType()->getAs<PointerType>()) {
5435 return SCS.getFromType()->isIntegralOrUnscopedEnumerationType() &&
5436 SCS.getToType(2)->isBooleanType();
5442 return SCS.getFromType()->isNullPtrType();
5629 assert(T->isIntegralOrEnumerationType() && "unexpected converted const type");
5703 return AllowScopedEnumerations ? T->isIntegralOrEnumerationType()
5704 : T->isIntegralOrUnscopedEnumerationType();
5875 const RecordType *RecordTy = T->getAs<RecordType>();
6046 if (T1->isDependentType() || (!T2.isNull() && T2->isDependentType()))
6046 if (T1->isDependentType() || (!T2.isNull() && T2->isDependentType()))
6049 if (T1->isRecordType() || (!T2.isNull() && T2->isRecordType()))
6049 if (T1->isRecordType() || (!T2.isNull() && T2->isRecordType()))
6052 const FunctionProtoType *Proto = Fn->getType()->getAs<FunctionProtoType>();
6056 if (T1->isEnumeralType()) {
6065 if (!T2.isNull() && T2->isEnumeralType()) {
6089 = dyn_cast<FunctionProtoType>(Function->getType()->getAs<FunctionType>());
6182 Constructor->getParamDecl(0)->getType()->isReferenceType()) {
6183 QualType P = Constructor->getParamDecl(0)->getType()->getPointeeType();
6378 if (ReturnT->isObjCIdType())
6586 if (!ObjectType.isNull() && ObjectType->isPointerType())
6676 = dyn_cast<FunctionProtoType>(Method->getType()->getAs<FunctionType>());
6979 if (!ParamType->isDependentType()) {
7056 if (getLangOpts().CPlusPlus14 && ConvType->isUndeducedType()) {
7100 if (const PointerType *FromPtrType = ImplicitParamType->getAs<PointerType>())
7103 = cast<CXXRecordDecl>(ImplicitParamType->castAs<RecordType>()->getDecl());
7187 if (ToType->isRValueReferenceType() &&
7449 if (const RecordType *T1Rec = T1->getAs<RecordType>()) {
7645 const PointerType *PointerTy = Ty->getAs<PointerType>();
7648 const ObjCObjectPointerType *PTy = Ty->castAs<ObjCObjectPointerType>();
7659 if (PointeeTy->isArrayType())
7676 (!(PointeeTy->isAnyPointerType() || PointeeTy->isReferenceType()))))
7676 (!(PointeeTy->isAnyPointerType() || PointeeTy->isReferenceType()))))
7712 const MemberPointerType *PointerTy = Ty->getAs<MemberPointerType>();
7720 if (PointeeTy->isArrayType())
7757 if (const ReferenceType *RefTy = Ty->getAs<ReferenceType>())
7761 if (Ty->isArrayType())
7768 const RecordType *TyRec = Ty->getAs<RecordType>();
7773 HasArithmeticOrEnumeralTypes || Ty->isArithmeticType();
7775 if (Ty->isObjCIdType() || Ty->isObjCClassType())
7775 if (Ty->isObjCIdType() || Ty->isObjCClassType())
7777 else if (Ty->getAs<PointerType>() || Ty->getAs<ObjCObjectPointerType>()) {
7777 else if (Ty->getAs<PointerType>() || Ty->getAs<ObjCObjectPointerType>()) {
7782 } else if (Ty->isMemberPointerType()) {
7786 } else if (Ty->isEnumeralType()) {
7789 } else if (Ty->isVectorType()) {
7794 } else if (Ty->isNullPtrType()) {
7859 ArgExpr->getType()->getAs<MemberPointerType>())
7862 TyRec = ArgExpr->getType()->getAs<RecordType>();
7879 if (const ReferenceType *ResTypeRef = CanTy->getAs<ReferenceType>())
7887 if (const PointerType *ResTypePtr = CanTy->getAs<PointerType>())
7890 CanTy->getAs<MemberPointerType>())
8003 if (HasRestrict && CandidateTy->isAnyPointerType() &&
8093 if (!(*Ptr)->getPointeeType()->isObjectType())
8093 if (!(*Ptr)->getPointeeType()->isObjectType())
8120 QualType PointeeTy = ParamTy->getPointeeType();
8121 if (!PointeeTy->isObjectType() && !PointeeTy->isFunctionType())
8121 if (!PointeeTy->isObjectType() && !PointeeTy->isFunctionType())
8124 if (const FunctionProtoType *Proto =PointeeTy->getAs<FunctionProtoType>())
8284 if (!FirstParamType->isEnumeralType() ||
8285 !SecondParamType->isEnumeralType())
8359 QualType PointeeTy = (*Ptr)->getPointeeType();
8360 if (!PointeeTy->isObjectType())
8565 else if (!(*Ptr)->getPointeeType()->isObjectType())
8565 else if (!(*Ptr)->getPointeeType()->isObjectType())
8796 QualType PointeeType = (*Ptr)->getPointeeType();
8797 if (!PointeeType->isObjectType())
8809 QualType PointeeType = (*Ptr)->getPointeeType();
8810 if (!PointeeType->isObjectType())
8835 C1 = QualType(Q1.strip(C1Ty->getPointeeType()), 0);
8911 if (!(*Enum)->castAs<EnumType>()->getDecl()->isScoped())
10048 if (const PointerType *PTy = TempFromTy->getAs<PointerType>())
10050 if (TempFromTy->isIncompleteType()) {
10064 if (const PointerType *FromPtrTy = FromTy->getAs<PointerType>()) {
10065 if (const PointerType *ToPtrTy = ToTy->getAs<PointerType>()) {
10068 !FromPtrTy->getPointeeType()->isIncompleteType() &&
10069 !ToPtrTy->getPointeeType()->isIncompleteType() &&
10075 = FromTy->getAs<ObjCObjectPointerType>()) {
10077 = ToTy->getAs<ObjCObjectPointerType>())
10084 } else if (const ReferenceType *ToRefTy = ToTy->getAs<ReferenceType>()) {
10086 !FromTy->isIncompleteType() &&
10087 !ToRefTy->getPointeeType()->isIncompleteType() &&
10090 } else if (ToTy->isLValueReferenceType() && !FromExpr->isLValue() &&
10186 const FunctionProtoType *FnTy = Fn->getType()->getAs<FunctionProtoType>();
10543 Meth->getParamDecl(0)->getType()->getAs<ReferenceType>()) {
10701 << Fn->getParamDecl(0)->getType()->isRValueReferenceType();
10726 FnType->getAs<LValueReferenceType>()) {
10730 FnType->getAs<RValueReferenceType>()) {
10734 if (const PointerType *FnTypePtr = FnType->getAs<PointerType>()) {
10739 FnType = QualType(FnType->getAs<FunctionType>(), 0);
10992 if (const PointerType *ConvPtrType = ConvType->getAs<PointerType>())
10994 ParamTypes = ConvType->castAs<FunctionProtoType>()->getParamTypes();
10999 Cand->Function->getType()->castAs<FunctionProtoType>()->getParamTypes();
11022 if (ParamTypes[ParamIdx]->isDependentType())
11258 PossiblyAFunctionType->getAs<PointerType>())
11261 PossiblyAFunctionType->getAs<ReferenceType>())
11264 PossiblyAFunctionType->getAs<MemberPointerType>())
11273 if (S.getLangOpts().CPlusPlus14 && FD->getReturnType()->isUndeducedType() &&
11277 auto *FPT = FD->getType()->castAs<FunctionProtoType>();
11316 !!TargetType->getAs<MemberPointerType>()),
11325 if (TargetFunctionType->isFunctionType()) {
11416 return TargetFunctionType->isFunctionType();
11724 if (auto *FPT = Fn->getType()->getAs<FunctionProtoType>())
11800 if (DoFunctionPointerConverion && Fixed->getType()->isFunctionType())
11994 if (!dyn_cast<FunctionProtoType>(Func->getType()->getAs<FunctionType>()))
12415 if (!Arg->getType()->isFunctionType())
12650 FnDecl->getType()->castAs<FunctionProtoType>()))
12781 if (Opc == BO_Assign && !Args[0]->getType()->isOverloadableType())
12872 !FnDecl->getReturnType()->isBooleanType()) {
13059 if (Args[0]->getType()->isRecordType() &&
13064 if (Args[0]->getType()->isIncompleteType()) {
13234 Method->getType()->castAs<FunctionProtoType>()))
13321 op->getRHS()->getType()->castAs<MemberPointerType>()->getPointeeType();
13323 const FunctionProtoType *proto = fnType->castAs<FunctionProtoType>();
13333 objectType = objectType->castAs<PointerType>()->getPointeeType();
13503 const auto *Proto = Method->getType()->getAs<FunctionProtoType>();
13598 assert(Object.get()->getType()->isRecordType() &&
13600 const RecordType *Record = Object.get()->getType()->getAs<RecordType>();
13663 if (const PointerType *ConvPtrType = ConvType->getAs<PointerType>())
13666 if (const FunctionProtoType *Proto = ConvType->getAs<FunctionProtoType>())
13765 Method->getType()->getAs<FunctionProtoType>();
13870 assert(Base->getType()->isRecordType() &&
13887 const RecordType *BaseRecord = Base->getType()->getAs<RecordType>();
13924 if (BaseType->isRecordType() && !BaseType->isPointerType()) {
13924 if (BaseType->isRecordType() && !BaseType->isPointerType()) {
13977 Method->getType()->castAs<FunctionProtoType>()))
14238 if (auto *FPT = Fn->getType()->getAs<FunctionProtoType>())
tools/clang/lib/Sema/SemaPseudoObject.cpp 242 assert(!ty->isIncompleteType());
243 assert(!ty->isDependentType());
245 if (const CXXRecordDecl *ClassDecl = ty->getAsCXXRecordDecl())
486 if (!captureSetValueAsResult() && !result.get()->getType()->isVoidType() &&
535 !result.get()->getType()->isVoidType() &&
541 !resultType->isDependentType()
559 PRE->getBase()->getType()->castAs<ObjCObjectPointerType>();
578 PRE->getSuperReceiverType()->getAs<ObjCObjectPointerType>())
776 if (!S.getLangOpts().CPlusPlus || !op->getType()->isRecordType()) {
782 if (!S.getLangOpts().CPlusPlus || !paramType->isRecordType()) {
850 if (result.get()->getType()->isObjCIdType()) {
852 = propType->getAs<ObjCObjectPointerType>()) {
884 if (!resultType->isLValueReferenceType()) return false;
1056 if (T->isIntegralOrEnumerationType())
1061 const RecordType *RecordTy = T->getAs<RecordType>();
1063 (T->isObjCObjectPointerType() || T->isVoidPointerType()))
1063 (T->isObjCObjectPointerType() || T->isVoidPointerType()))
1095 if (CT->isIntegralOrEnumerationType()) {
1099 else if (CT->isObjCIdType() ||CT->isBlockPointerType()) {
1099 else if (CT->isObjCIdType() ||CT->isBlockPointerType()) {
1154 BaseT->getAs<ObjCObjectPointerType>()) {
1216 if (!BaseT->isObjCIdType()) {
1229 if ((arrayRef && !T->isIntegralOrEnumerationType()) ||
1230 (!arrayRef && !T->isObjCObjectPointerType())) {
1239 if (!R->isObjCObjectPointerType()) {
1258 BaseT->getAs<ObjCObjectPointerType>()) {
1331 if (!BaseT->isObjCIdType()) {
1346 if (!T->isIntegralOrEnumerationType()) {
1354 if (!T->isObjCObjectPointerType()) {
1365 if (!T->isObjCObjectPointerType()) {
1599 if (RHS->getType()->isNonOverloadPlaceholderType()) {
tools/clang/lib/Sema/SemaStmt.cpp 282 if (E->getType()->isVoidType())
314 if (const TagDecl *TD = ILE->getType()->getAsTagDecl()) {
349 if (const CXXRecordDecl *RD = CE->getType()->getAsCXXRecordDecl())
444 if (CondType->isDependentType() || E->isTypeDependent())
690 << ConvTy->isEnumeralType() << ConvTy;
701 << ConvTy->isEnumeralType() << ConvTy;
719 !Cond->getType()->isIntegralOrEnumerationType())
736 assert(CondExpr->getType()->isIntegralOrEnumerationType() &&
825 const EnumType *CondEnumType = CondType->getAs<EnumType>();
826 const EnumType *CaseEnumType = CaseType->getAs<EnumType>();
880 bool CondIsSigned = CondType->isSignedIntegerOrEnumerationType();
889 = CondTypeBeforePromotion->isSignedIntegerOrEnumerationType();
1130 const EnumType *ET = CondTypeBeforePromotion->getAs<EnumType>();
1265 if (const EnumType *ET = DstType->getAs<EnumType>())
1267 SrcType->isIntegerType()) {
1272 bool DstIsSigned = DstType->isSignedIntegerOrEnumerationType();
1848 collection->getType()->getAs<ObjCObjectPointerType>();
1930 if (FirstType->getContainedAutoType()) {
1964 if (!FirstType->isDependentType() &&
1965 !FirstType->isObjCObjectPointerType() &&
1966 !FirstType->isBlockPointerType())
1987 if (Decl->getType()->isUndeducedType()) {
1999 if ((!isa<InitListExpr>(Init) && Init->getType()->isVoidType()) ||
2072 && Collection->getType()->getAs<ObjCObjectPointerType>() != nullptr;
2233 if (CXXRecordDecl *D = RangeType->getAsCXXRecordDecl()) {
2384 LoopVar->getType()->isUndeducedType());
2390 if (RangeVarType->isDependentType()) {
2437 if (const ArrayType *UnqAT = RangeType->getAsArrayTypeUnsafe()) {
2545 if (PointerTy->isPointerType() && ArrayTy->isArrayType()) {
2545 if (PointerTy->isPointerType() && ArrayTy->isArrayType()) {
2751 ReturnsReference = ReturnType->isReferenceType();
2839 if (VariableType->isIncompleteType())
2846 if (VariableType->isReferenceType()) {
2986 if (!ReturnType.isNull() && !ReturnType->isDependentType()) {
2987 if (!ReturnType->isRecordType())
2991 if (!(CESK & CES_AllowDifferentTypes) && !VDType->isDependentType() &&
3019 if (!VD->getType()->isDependentType() && VD->hasAttr<AlignedAttr>() &&
3077 FD->getParamDecl(0)->getType()->getAs<RValueReferenceType>();
3186 if (QT->isLValueReferenceType()) {
3230 FD->getTypeSourceInfo()->getType()->castAs<FunctionProtoType>();
3231 return FPT->getReturnType()->isUndeducedType();
3268 AutoType *AT = CurCap->ReturnType->getContainedAutoType();
3314 if (CurBlock->FunctionType->castAs<FunctionType>()->getNoReturnAttr()) {
3324 ->castAs<FunctionType>()
3335 if (FnRetType->isDependentType()) {
3338 } else if (FnRetType->isVoidType()) {
3342 RetValExp->getType()->isVoidType()))) {
3344 RetValExp->getType()->isVoidType())
3497 if (!OrigResultType.getType()->getAs<AutoType>()) {
3510 if (FD->hasAttr<CUDAGlobalAttr>() && !Deduced->isVoidType()) {
3522 AutoType *NewAT = Deduced->getContainedAutoType();
3621 FnRetType->getContainedAutoType()) {
3636 if (AutoType *AT = FnRetType->getContainedAutoType()) {
3647 bool HasDependentReturnType = FnRetType->isDependentType();
3650 if (FnRetType->isVoidType()) {
3674 if (RetValExp->getType()->isVoidType()) {
3860 if (!ThrowType->isDependentType() &&
3861 !ThrowType->isObjCObjectPointerType()) {
3862 const PointerType *PT = ThrowType->getAs<PointerType>();
3863 if (!PT || !PT->getPointeeType()->isVoidType())
3899 if (!type->isDependentType() &&
3900 !type->isObjCObjectPointerType()) {
3901 const PointerType *pointerType = type->getAs<PointerType>();
3902 if (!pointerType || !pointerType->getPointeeType()->isVoidType()) {
3968 if (QT->isPointerType())
3971 if (IsPointer || QT->isReferenceType())
3972 QT = QT->getPointeeType();
4109 if (auto *RD = Underlying->getAsCXXRecordDecl()) {
4193 if(!FilterExpr->getType()->isIntegerType()) {
tools/clang/lib/Sema/SemaStmtAsm.cpp 410 if (InputExpr->getType()->isVoidType()) {
586 if (InTy->isIntegerType() || InTy->isPointerType())
586 if (InTy->isIntegerType() || InTy->isPointerType())
588 else if (InTy->isRealFloatingType())
593 if (OutTy->isIntegerType() || OutTy->isPointerType())
593 if (OutTy->isIntegerType() || OutTy->isPointerType())
595 else if (OutTy->isRealFloatingType())
646 (OutTy->isBooleanType() ? CK_IntegralToBoolean : CK_IntegralCast);
702 if (T->isFunctionType() || T->isDependentType())
702 if (T->isFunctionType() || T->isDependentType())
749 if (T->isDependentType()) {
754 if (T->isFunctionType()) {
777 FoundDecl = PT->getPointeeType()->getAsTagDecl();
791 RT = VD->getType()->getAs<RecordType>();
796 if (const auto *PT = QT->getAs<PointerType>())
798 RT = QT->getAs<RecordType>();
802 RT = TD->getType()->getAs<RecordType>();
839 if (T->isDependentType()) {
849 const RecordType *RT = T->getAs<RecordType>();
tools/clang/lib/Sema/SemaTemplate.cpp 347 IsDependent = !LookupCtx && ObjectType->isDependentType();
348 assert((IsDependent || !ObjectType->isIncompleteType() ||
349 ObjectType->castAs<TagType>()->isBeingDefined()) &&
366 if (ObjectType->isObjCObjectOrInterfaceType() ||
367 ObjectType->isVectorType()) {
589 LookupCtx = ME->getBase()->getType()->getAsCXXRecordDecl();
1046 if (TSI->getType()->isUndeducedType()) {
1062 if (T->isVariablyModifiedType()) {
1074 if (T->isIntegralOrEnumerationType() ||
1076 T->isPointerType() ||
1078 T->isReferenceType() ||
1080 T->isMemberPointerType() ||
1082 T->isNullPtrType() ||
1084 T->isUndeducedType()) {
1095 if (T->isArrayType() || T->isFunctionType())
1095 if (T->isArrayType() || T->isFunctionType())
1104 if (T->isDependentType())
1174 if (TInfo->getType()->isUndeducedType()) {
1177 << QualType(TInfo->getType()->getContainedAutoType(), 0);
1647 assert(T->isDependentType() && "Class template type is not dependent?");
2503 !TL.getType()->isDependentType())
2639 if (CXXRecordDecl *Record = T->getAsCXXRecordDecl()) {
2662 = T->getAs<TemplateSpecializationType>()) {
2674 = T->getAs<DependentTemplateSpecializationType>()) {
2683 if (const DependentNameType *DependentName = T->getAs<DependentNameType>()){
2692 if (const EnumType *EnumT = T->getAs<EnumType>()) {
2769 if (CXXRecordDecl *Record = T->getAsCXXRecordDecl()) {
2799 = T->getAs<TemplateSpecializationType>()) {
2804 } else if (T->getAs<DependentTemplateSpecializationType>()) {
2863 if (IsFriend && T->isDependentType()) {
3002 if (!Converted[1].getAsType()->isIntegralType(Context)) {
3335 if (CanonType != Injected->getCanonicalTypeInternal())
3605 if (const RecordType *RT = Result->getAs<RecordType>()) {
3661 Arg.getAsType()->getAs<TemplateTypeParmType>();
4586 ArgType->isObjCLifetimeType() &&
4629 if (ArgType->getType()->isInstantiationDependentType()) {
4914 if (NTTPType->isInstantiationDependentType() &&
4928 if (auto *PET = NTTPType->getAs<PackExpansionType>()) {
5050 if (T->isFunctionType())
5734 if (Arg->isVariablyModifiedType()) {
5747 if (LangOpts.CPlusPlus11 || Arg->hasUnnamedOrLocalType()) {
5815 if (Arg->getType()->isNullPtrType())
5863 if (ParamType->isPointerType() &&
5864 !ParamType->castAs<PointerType>()->getPointeeType()->isFunctionType() &&
5864 !ParamType->castAs<PointerType>()->getPointeeType()->isFunctionType() &&
5870 if (const ReferenceType *ParamRef = ParamType->getAs<ReferenceType>()) {
5871 if (!ParamRef->getPointeeType()->isFunctionType()) {
5900 if (ParamType->isReferenceType())
5956 else if (Arg->getType()->isPointerType()) {
6017 if (ParamType->isPointerType() || ParamType->isNullPtrType()) {
6017 if (ParamType->isPointerType() || ParamType->isNullPtrType()) {
6106 if (ParamType->isPointerType() && !AddressTaken)
6108 else if (AddressTaken && ParamType->isReferenceType()) {
6129 if (Var->getType()->isReferenceType()) {
6146 if (ParamType->isReferenceType()) {
6166 } else if (!AddressTaken && ParamType->isPointerType()) {
6167 if (Var->getType()->isArrayType()) {
6252 if (VD->getType()->isMemberPointerType()) {
6343 if (getLangOpts().CPlusPlus17 && ParamType->isUndeducedType()) {
6399 if ((ParamType->isDependentType() || Arg->isTypeDependent()) &&
6400 !Arg->getType()->getContainedAutoType()) {
6419 if (ParamType->isDependentType() || Arg->isTypeDependent() ||
6427 ParamType->isLValueReferenceType() ? VK_LValue :
6428 ParamType->isRValueReferenceType() ? VK_XValue : VK_RValue);
6468 assert(ParamType->isNullPtrType());
6475 assert(ParamType->isIntegralOrEnumerationType());
6479 assert(ParamType->isMemberPointerType());
6498 assert(ParamType->isPointerType() || ParamType->isReferenceType() ||
6498 assert(ParamType->isPointerType() || ParamType->isReferenceType() ||
6499 ParamType->isNullPtrType());
6518 VD && VD->getType()->isArrayType() &&
6520 !Value.isLValueOnePastTheEnd() && ParamType->isPointerType()) {
6530 assert((VD || !ParamType->isReferenceType()) &&
6532 assert((!VD || !ParamType->isNullPtrType()) &&
6560 if (ParamType->isIntegralOrEnumerationType()) {
6596 if (const EnumType *Enum = IntegerType->getAs<EnumType>())
6620 if (!ArgType->isIntegralOrEnumerationType()) {
6651 } else if (ParamType->isBooleanType()) {
6655 !ParamType->isEnumeralType()) {
6677 if (const EnumType *Enum = IntegerType->getAs<EnumType>())
6680 if (ParamType->isBooleanType()) {
6686 Value.setIsSigned(IntegerType->isSignedIntegerOrEnumerationType());
6695 Value.setIsSigned(IntegerType->isSignedIntegerOrEnumerationType());
6698 if (IntegerType->isUnsignedIntegerOrEnumerationType()
6708 if (IntegerType->isUnsignedIntegerOrEnumerationType())
6723 ParamType->isEnumeralType()
6739 (ParamType->isPointerType() &&
6740 ParamType->castAs<PointerType>()->getPointeeType()->isFunctionType()) ||
6740 ParamType->castAs<PointerType>()->getPointeeType()->isFunctionType()) ||
6745 (ParamType->isReferenceType() &&
6746 ParamType->castAs<ReferenceType>()->getPointeeType()->isFunctionType()) ||
6746 ParamType->castAs<ReferenceType>()->getPointeeType()->isFunctionType()) ||
6752 (ParamType->isMemberPointerType() &&
6753 ParamType->castAs<MemberPointerType>()->getPointeeType()
6754 ->isFunctionType())) {
6769 if (!ParamType->isMemberPointerType()) {
6783 if (ParamType->isPointerType()) {
6788 assert(ParamType->getPointeeType()->isIncompleteOrObjectType() &&
6788 assert(ParamType->getPointeeType()->isIncompleteOrObjectType() &&
6798 if (const ReferenceType *ParamRefType = ParamType->getAs<ReferenceType>()) {
6805 assert(ParamRefType->getPointeeType()->isIncompleteOrObjectType() &&
6830 if (ParamType->isNullPtrType()) {
6856 assert(ParamType->isMemberPointerType() && "Only pointers to members remain");
6948 if (ParamType->isArrayType())
6950 else if (ParamType->isFunctionType())
6959 ParamType->getAs<MemberPointerType>()
6976 if (ParamType->isMemberPointerType()) {
7020 if (ParamType->isPointerType()) {
7027 if (!Context.hasSameUnqualifiedType(ParamType->getPointeeType(), T) &&
7028 (T->isFunctionType() || T->isArrayType())) {
7028 (T->isFunctionType() || T->isArrayType())) {
7046 if (const ReferenceType *TargetRef = ParamType->getAs<ReferenceType>()) {
7078 if (const EnumType *ET = OrigT->getAs<EnumType>())
7082 if (T->isAnyCharacterType()) {
7084 if (T->isWideCharType())
7086 else if (T->isChar8Type() && getLangOpts().Char8)
7088 else if (T->isChar16Type())
7090 else if (T->isChar32Type())
7097 } else if (T->isBooleanType()) {
7100 } else if (T->isNullPtrType()) {
7106 if (OrigT->isEnumeralType()) {
7177 (OldNTTP->getType()->isDependentType() ||
7178 NewNTTP->getType()->isDependentType()))
7540 if (!TL.getType()->isDependentType())
8426 const FunctionProtoType *FPT = FT->castAs<FunctionProtoType>();
8940 B.getType()->getAsCXXRecordDecl()))
9417 if (D.getDeclSpec().hasConstexprSpecifier() && R->isFunctionType())
9442 if (!R->isFunctionType()) {
9484 if (R->isUndeducedType()) {
9660 if (auto *FPT = R->getAs<FunctionProtoType>())
9669 Specialization->getType()->getAs<FunctionProtoType>(),
10145 return T.isNull() || !T->isDependentType();
10198 if (!T || !T->getType()->isDependentType())
10257 if (NewTSI->getType()->isUndeducedType()) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp 611 switch (T->getTypeClass()) {
1182 if (auto *ParamRef = Param->getAs<RValueReferenceType>()) {
1185 auto *TypeParm = ParamRef->getPointeeType()->getAs<TemplateTypeParmType>();
1240 const ReferenceType *ParamRef = Param->getAs<ReferenceType>();
1245 const ReferenceType *ArgRef = Arg->getAs<ReferenceType>();
1305 if ((TDF & TDF_TopLevelParameterTypeList) && !Param->isFunctionType()) {
1318 if (isForwardingReference(Param, 0) && Arg->isLValueReferenceType())
1319 Param = Param->getPointeeType();
1331 = Param->getAs<TemplateTypeParmType>()) {
1334 if (Arg->isPlaceholderType() ||
1364 if (Arg->isFunctionType() && Param.hasQualifiers()) {
1388 if (ParamQs.hasObjCLifetime() && !DeducedType->isObjCLifetimeType() &&
1389 !DeducedType->isDependentType()) {
1400 DeducedType->isObjCLifetimeType() &&
1461 if (!Param->isDependentType()) {
1473 } else if (!Param->isDependentType()) {
1484 switch (Param->getTypeClass()) {
1518 if (const ComplexType *ComplexArg = Arg->getAs<ComplexType>())
1528 if (const AtomicType *AtomicArg = Arg->getAs<AtomicType>())
1539 if (const PointerType *PointerArg = Arg->getAs<PointerType>()) {
1542 = Arg->getAs<ObjCObjectPointerType>()) {
1558 Arg->getAs<LValueReferenceType>();
1570 Arg->getAs<RValueReferenceType>();
1756 const RecordType *RecordT = Arg->getAs<RecordType>();
1837 assert(Base.getType()->isRecordType() &&
1839 ToVisit.push_back(Base.getType()->getAs<RecordType>());
1867 if (ParamPointeeType->isFunctionType())
1871 if (ArgPointeeType->isFunctionType())
2922 = T->getAs<TemplateSpecializationType>())
2933 if (T->getAs<InjectedClassNameType>())
3051 = Function->getType()->getAs<FunctionProtoType>();
3098 if (Function->hasAttr<CUDAGlobalAttr>() && !ResultType->isVoidType()) {
3183 if (const ReferenceType *DeducedARef = DeducedA->getAs<ReferenceType>())
3185 if (const ReferenceType *ARef = A->getAs<ReferenceType>())
3194 = OriginalParamType->getAs<ReferenceType>()) {
3202 if (A->isFunctionType() && S.IsFunctionConversion(A, DeducedA, Tmp))
3240 if ((A->isAnyPointerType() || A->isMemberPointerType()) &&
3240 if ((A->isAnyPointerType() || A->isMemberPointerType()) &&
3252 = OriginalParamType->getAs<PointerType>()) {
3253 if (const PointerType *DeducedAPtr = DeducedA->getAs<PointerType>()) {
3254 if (const PointerType *APtr = A->getAs<PointerType>()) {
3255 if (A->getPointeeType()->isRecordType()) {
3255 if (A->getPointeeType()->isRecordType()) {
3267 if (A->isRecordType() && isSimpleTemplateIdType(OriginalParamType) &&
3453 if (S.getLangOpts().CPlusPlus14 && Fn->getReturnType()->isUndeducedType() &&
3496 if (!ParamType->isFunctionType() &&
3497 !ParamType->isFunctionPointerType() &&
3498 !ParamType->isMemberFunctionPointerType()) {
3545 if (!ParamWasReference && ParamType->isPointerType() &&
3546 ArgType->isFunctionType())
3593 const ReferenceType *ParamRefType = ParamType->getAs<ReferenceType>();
3610 if (ArgType->isIncompleteArrayType()) {
3627 if (ArgType->isArrayType())
3632 else if (ArgType->isFunctionType())
3655 if (ArgType->isPointerType() || ArgType->isMemberPointerType() ||
3655 if (ArgType->isPointerType() || ArgType->isMemberPointerType() ||
3656 ArgType->isObjCObjectPointerType())
3666 ParamType->getAs<PointerType>()->getPointeeType())))
3719 if (ElTy->isDependentType()) {
3829 const auto *Proto = Function->getType()->castAs<FunctionProtoType>();
3967 const auto *FunctionTypeP = FunctionType->castAs<FunctionProtoType>();
3968 const auto *ArgFunctionTypeP = ArgFunctionType->castAs<FunctionProtoType>();
4074 Function->getReturnType()->getContainedAutoType()) {
4099 Specialization->getReturnType()->isUndeducedType() &&
4106 Specialization->getType()->castAs<FunctionProtoType>();
4162 if (const ReferenceType *PRef = P->getAs<ReferenceType>())
4168 if (const ReferenceType *ARef = A->getAs<ReferenceType>()) {
4173 if (!FromType->getAs<ReferenceType>()) {
4182 assert(!A->isReferenceType() && "Reference types were handled above");
4187 if (P->isArrayType())
4192 else if (P->isFunctionType())
4229 if (ToType->isReferenceType())
4238 if ((P->isPointerType() && A->isPointerType()) ||
4238 if ((P->isPointerType() && A->isPointerType()) ||
4239 (P->isMemberPointerType() && A->isMemberPointerType()))
4239 (P->isMemberPointerType() && A->isMemberPointerType()))
4421 if (Init->getType()->isNonOverloadPlaceholderType()) {
4432 (Type.getType()->isDependentType() || Init->isTypeDependent())) {
4444 if (const AutoType *AT = Type.getType()->getAs<AutoType>()) {
4518 if (!Type.getType().getNonReferenceType()->getAs<AutoType>())
4588 if (TypeToReplaceAuto->isDependentType())
4591 TypeToReplaceAuto->containsUnexpandedParameterPack()})
4599 if (TypeToReplaceAuto->isDependentType())
4603 TypeToReplaceAuto->containsUnexpandedParameterPack()})
4633 assert(FD->getReturnType()->isUndeducedType());
4650 if (CallOp->getReturnType()->isUndeducedType()) {
4659 assert(!CallOp->getReturnType()->isUndeducedType() &&
4664 CallOp->getType()->castAs<FunctionProtoType>());
4665 if (FD->getReturnType()->getAs<PointerType>())
4668 assert(FD->getReturnType()->getAs<BlockPointerType>());
4681 bool StillUndeduced = FD->getReturnType()->isUndeducedType();
4721 const FunctionProtoType *Proto1 = FD1->getType()->getAs<FunctionProtoType>();
4722 const FunctionProtoType *Proto2 = FD2->getType()->getAs<FunctionProtoType>();
5089 auto *TST1 = T1->castAs<TemplateSpecializationType>();
5354 if (!T->isDependentType())
5358 switch (T->getTypeClass()) {
5453 !Proto->getParamType(I)->getAs<PackExpansionType>()) {
5707 if (!T->isDependentType())
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp 1028 if (T->isInstantiationDependentType() || T->isVariablyModifiedType())
1028 if (T->isInstantiationDependentType() || T->isVariablyModifiedType())
1116 if (const TagType *Tag = T->getAs<TagType>())
1155 if (const TagType *TT = T->getAs<TagType>()) {
1292 TargetType->isReferenceType() ? VK_LValue : VK_RValue, NTTP,
1364 assert(!type->isDependentType() && "param type still dependent");
1656 if (!T->getType()->isInstantiationDependentType() &&
1657 !T->getType()->isVariablyModifiedType())
1676 if (!TL.getType()->isInstantiationDependentType() &&
1677 !TL.getType()->isVariablyModifiedType()) {
1705 if (!T->isInstantiationDependentType() && !T->isVariablyModifiedType())
1705 if (!T->isInstantiationDependentType() && !T->isVariablyModifiedType())
1713 if (T->getType()->isInstantiationDependentType() ||
1714 T->getType()->isVariablyModifiedType())
1824 if (NewDI->getType()->containsUnexpandedParameterPack()) {
1848 if (NewDI->getType()->isVoidType()) {
1945 if (!Base.getType()->isDependentType()) {
1946 if (const CXXRecordDecl *RD = Base.getType()->getAsCXXRecordDecl()) {
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp 711 if (DI->getType()->isInstantiationDependentType() ||
712 DI->getType()->isVariablyModifiedType()) {
727 const DecltypeType *DT = DI->getType()->getAs<DecltypeType>();
752 if (const TagType *oldTagType = D->getUnderlyingType()->getAs<TagType>()) {
755 TagDecl *newTag = DI->getType()->castAs<TagType>()->getDecl();
777 if (D->getUnderlyingType()->getAs<DependentNameType>())
882 if (DI->getType()->isFunctionType()) {
940 if (DI->getType()->isInstantiationDependentType() ||
941 DI->getType()->isVariablyModifiedType()) {
947 } else if (DI->getType()->isFunctionType()) {
1023 if (DI->getType()->isVariablyModifiedType()) {
1027 } else if (DI->getType()->isInstantiationDependentType()) {
1033 } else if (DI->getType()->isFunctionType()) {
1186 assert(!D->getIntegerType()->isDependentType()
1747 = D->getType()->castAs<FunctionProtoType>();
1749 = TInfo->getType()->castAs<FunctionProtoType>();
3033 D->getType()->isDependentType() ||
3034 D->getType()->isInstantiationDependentType() ||
3035 D->getType()->containsUnexpandedParameterPack();
3133 D->getType()->isDependentType() ||
3134 D->getType()->isInstantiationDependentType() ||
3135 D->getType()->containsUnexpandedParameterPack();
3437 if (DI->getType()->isFunctionType()) {
3778 if (DI->getType()->isFunctionType()) {
3932 if (!PatternDecl->getType()->isDependentType()) {
3952 PatternParam->getType()->castAs<PackExpansionType>()->getPattern();
3956 if (!PatternDecl->getType()->isDependentType()) {
3977 const FunctionProtoType *Proto = Decl->getType()->castAs<FunctionProtoType>();
4012 SubstExceptionSpec(Decl, Template->getType()->castAs<FunctionProtoType>(),
4053 const FunctionProtoType *Proto = Tmpl->getType()->getAs<FunctionProtoType>();
4077 = New->getType()->getAs<FunctionProtoType>();
4297 !PatternDecl->getReturnType()->getContainedAutoType())
4591 } else if (NewVar->getType()->isUndeducedType()) {
4608 OldVar->getType()->isDependentType())
5326 !cast<ParmVarDecl>(D)->getType()->isInstantiationDependentType())
5457 auto *SubstRecord = T->getAsCXXRecordDecl();
5502 const RecordType *Tag = T->getAs<RecordType>();
tools/clang/lib/Sema/SemaTemplateVariadic.cpp 144 if ((!T.isNull() && T->containsUnexpandedParameterPack()) || InLambda)
154 TL.getType()->containsUnexpandedParameterPack()) ||
387 if (!T->getType()->containsUnexpandedParameterPack())
451 if (!NameInfo.getName().getCXXNameType()->containsUnexpandedParameterPack())
610 if (!Pattern->containsUnexpandedParameterPack() &&
611 !Pattern->getContainedDeducedType()) {
843 if (!T.isNull() && T->containsUnexpandedParameterPack())
911 if (ParamTy->containsUnexpandedParameterPack()) return true;
918 ->containsUnexpandedParameterPack())
927 if (!T.isNull() && T->containsUnexpandedParameterPack())
1095 if (auto *Subst = Arg.getAsType()->getAs<SubstTemplateTypeParmPackType>())
tools/clang/lib/Sema/SemaType.cpp 267 if (auto *AttrTy = TypeWithAuto->getAs<AttributedType>()) {
736 if (!declarator.getNumTypeObjects() && declSpecType->isFunctionType())
837 const auto *objcObjectType = type->getAs<ObjCObjectType>();
911 if (typeArg->getAs<PackExpansionType>())
937 if (const auto *typeArgObjC = typeArg->getAs<ObjCObjectPointerType>()) {
948 const auto *boundObjC = bound->getAs<ObjCObjectPointerType>();
975 if (typeArg->isBlockPointerType()) {
986 if (bound->isBlockCompatibleObjCPointerType(S.Context))
1003 if (typeArg->isDependentType()) {
1557 if (!Result->isDependentType())
1558 if (const TagType *TT = Result->getAs<TagType>())
1703 if (TypeQuals && Result->isFunctionType()) {
1721 if (TypeQuals && Result->isReferenceType()) {
1773 if (T->isReferenceType()) {
1784 if (T->isAnyPointerType() || T->isReferenceType() ||
1784 if (T->isAnyPointerType() || T->isReferenceType() ||
1785 T->isMemberPointerType()) {
1787 if (T->isObjCObjectPointerType())
1789 else if (const MemberPointerType *PTy = T->getAs<MemberPointerType>())
1792 EltTy = T->getPointeeType();
1796 if (!EltTy->isIncompleteOrObjectType()) {
1800 } else if (!T->isDependentType()) {
1820 if (T->isReferenceType())
1836 if (CVRAU & DeclSpec::TQ_atomic && !T->isAtomicType()) {
1868 if (!type->isObjCLifetimeType() ||
1884 } else if (type->isObjCARCImplicitlyUnretainedType()) {
1957 const FunctionProtoType *FPT = T->getAs<FunctionProtoType>();
1969 const FunctionProtoType *FPT = T->getAs<FunctionProtoType>();
1994 if (T->isReferenceType()) {
2001 if (T->isFunctionType() && getLangOpts().OpenCL) {
2009 assert(!T->isObjCObjectType() && "Should build ObjCObjectPointerType");
2044 bool LValueRef = SpelledAsLValue || T->getAs<LValueReferenceType>();
2063 if (T->isVoidType()) {
2159 if (T->isReferenceType()) {
2165 if (T->isVoidType() || T->isIncompleteArrayType()) {
2165 if (T->isVoidType() || T->isIncompleteArrayType()) {
2177 if (const MemberPointerType *MPTy = T->getAs<MemberPointerType>())
2189 if (T->isFunctionType()) {
2195 if (const RecordType *EltTy = T->getAs<RecordType>()) {
2200 } else if (T->isObjCObjectType()) {
2225 !ArraySize->getType()->isIntegralOrUnscopedEnumerationType()) {
2239 } else if ((!T->isDependentType() && !T->isIncompleteType() &&
2239 } else if ((!T->isDependentType() && !T->isIncompleteType() &&
2240 !T->isConstantSizeType()) ||
2245 !ArraySize->getType()->isIntegralOrUnscopedEnumerationType()) {
2281 } else if (!T->isDependentType() && !T->isVariablyModifiedType() &&
2281 } else if (!T->isDependentType() && !T->isVariablyModifiedType() &&
2282 !T->isIncompleteType() && !T->isUndeducedType()) {
2282 !T->isIncompleteType() && !T->isUndeducedType()) {
2297 if (getLangOpts().OpenCL && T->isVariableArrayType()) {
2302 if (T->isVariableArrayType() && !Context.getTargetInfo().isVLASupported()) {
2314 if (T->isVariableArrayType()) {
2329 if (T->isVariableArrayType()) {
2339 if (ArrType->isBlockPointerType() || ArrType->isPipeType() ||
2339 if (ArrType->isBlockPointerType() || ArrType->isPipeType() ||
2340 ArrType->isSamplerT() || ArrType->isImageType()) {
2340 ArrType->isSamplerT() || ArrType->isImageType()) {
2353 if (!CurType->isDependentType() &&
2354 (!CurType->isBuiltinType() || CurType->isBooleanType() ||
2354 (!CurType->isBuiltinType() || CurType->isBooleanType() ||
2355 (!CurType->isIntegerType() && !CurType->isRealFloatingType()))) {
2355 (!CurType->isIntegerType() && !CurType->isRealFloatingType()))) {
2372 if (CurType->isDependentType())
2413 if ((!T->isDependentType() && !T->isIntegerType() &&
2413 if ((!T->isDependentType() && !T->isIntegerType() &&
2414 !T->isRealFloatingType()) ||
2415 T->isBooleanType()) {
2452 if (T->isArrayType() || T->isFunctionType()) {
2452 if (T->isArrayType() || T->isFunctionType()) {
2454 << T->isFunctionType() << T;
2459 if (T->isHalfType() && !getLangOpts().HalfArgsAndReturns) {
2467 if (T->isObjCObjectType()) {
2553 if (ParamType->isVoidType()) {
2556 } else if (ParamType->isHalfType() && !getLangOpts().HalfArgsAndReturns) {
2608 if (T->isReferenceType()) {
2614 if (T->isVoidType()) {
2620 if (!Class->isDependentType() && !Class->isRecordType()) {
2620 if (!Class->isDependentType() && !Class->isRecordType()) {
2630 if (T->isFunctionType())
2650 if (!T->isFunctionType()) {
2740 if (!declSpecType->isObjCRetainableType()) return;
2748 if (declSpecType->isObjCARCImplicitlyUnretainedType())
2760 if (!isBlockPointer && !declSpecType->isObjCObjectType())
2874 unsigned AtomicQual = RetTy->isAtomicType() ? DeclSpec::TQ_atomic : 0;
2955 if (DeducedType *Deduced = T->getContainedDeducedType()) {
3232 if (RT->isVoidType())
3236 if (!RT->isRecordType() && FTI.NumParams > 1)
3240 if (RT->isReferenceType() && FTI.NumParams != 1)
3300 const CXXRecordDecl *RD = RT->getAsCXXRecordDecl();
3340 (T->isRecordType() || T->isDependentType()) &&
3340 (T->isRecordType() || T->isDependentType()) &&
3424 auto *RD = T->getAsCXXRecordDecl();
3615 if (type->isDependentType())
3656 if (auto ptrType = type->getAs<PointerType>()) {
3668 if (type->getAs<BlockPointerType>()) {
3674 if (type->getAs<MemberPointerType>()) {
3680 if (auto objcObjectPtr = type->getAs<ObjCObjectPointerType>()) {
3696 if (auto objcClass = type->getAs<ObjCInterfaceType>()) {
3709 if (auto recordType = type->getAs<RecordType>()) {
4035 bool IsQualifiedFunction = T->isFunctionProtoType() &&
4036 (!T->castAs<FunctionProtoType>()->getMethodQuals().empty() ||
4037 T->castAs<FunctionProtoType>()->getRefQualifier() != RQ_None);
4043 if (auto *DT = T->getAs<DeducedType>()) {
4044 const AutoType *AT = T->getAs<AutoType>();
4130 if (T->canHaveNullability(/*ResultIfUnknown*/false) &&
4131 !T->getNullability(S.Context)) {
4266 auto *typedefTy = T->getAs<TypedefType>();
4276 typedefTy = typedefTy->desugar()->getAs<TypedefType>();
4345 if (T->canHaveNullability(/*ResultIfUnknown*/false) &&
4346 !T->getNullability(S.Context)) {
4353 if (T->isBlockPointerType())
4355 else if (T->isMemberPointerType())
4370 T->isArrayType() && !T->getNullability(S.Context) && !isVaList(T) &&
4370 T->isArrayType() && !T->getNullability(S.Context) && !isVaList(T) &&
4428 if (LangOpts.ObjC && T->getAs<ObjCObjectType>()) {
4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() ||
4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() ||
4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() ||
4440 T->isBlockPointerType()) {
4516 const AutoType *AT = T->getContainedAutoType();
4606 if (!D.isInvalidType() && (T->isArrayType() || T->isFunctionType()) &&
4606 if (!D.isInvalidType() && (T->isArrayType() || T->isFunctionType()) &&
4615 S.Diag(DeclType.Loc, diagID) << T->isFunctionType() << T;
4622 if (T->isHalfType()) {
4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() ||
4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() ||
4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() ||
4640 T->isPipeType()) {
4660 if (T->isObjCObjectType()) {
4687 if ((T.getCVRQualifiers() || T->isAtomicType()) &&
4689 (T->isDependentType() || T->isRecordType()))) {
4689 (T->isDependentType() || T->isRecordType()))) {
4690 if (T->isVoidType() && !S.getLangOpts().CPlusPlus &&
4816 if (ParamTy->isVoidType()) {
4837 } else if (ParamTy->isHalfType()) {
4853 if (ParamTy->isPromotableIntegerType()) {
4856 } else if (const BuiltinType* BTy = ParamTy->getAs<BuiltinType>()) {
5080 if (LangOpts.CPlusPlus && T->isFunctionType()) {
5081 const FunctionProtoType *FnTy = T->getAs<FunctionProtoType>();
5183 T->isObjectType())
5212 if (!T->containsUnexpandedParameterPack()) {
5230 if (T->containsUnexpandedParameterPack())
5302 if (declSpecTy->isObjCRetainableType() &&
5387 if (declSpecTy->isObjCRetainableType())
5389 if (declSpecTy->isObjCObjectType() && hasIndirection)
5473 if (TInfo->getType()->getAs<ElaboratedType>()) {
5838 assert(LocT->getTypeClass() != T->getTypeClass() &&
5952 if (T->getAs<DependentAddressSpaceType>()) {
5978 if (Type->isFunctionType()) {
6072 if (!type->isDependentType() && !type->isUndeducedType()) {
6072 if (!type->isDependentType() && !type->isUndeducedType()) {
6073 if (const PointerType *ptr = type->getAs<PointerType>()) {
6075 if (pointee->isObjCRetainableType() || pointee->isPointerType())
6075 if (pointee->isObjCRetainableType() || pointee->isPointerType())
6081 } else if (!type->isObjCRetainableType()) {
6237 type->getAs<ObjCObjectPointerType>()) {
6260 if (!type->isPointerType() &&
6261 !type->isObjCObjectPointerType() &&
6262 !type->isBlockPointerType())
6506 if (Type->isMemberPointerType())
6587 if (auto existingNullability = desugared->getNullability(S.Context)) {
6594 if (auto typedefType = desugared->getAs<TypedefType>()) {
6611 if (!desugared->canHaveNullability() &&
6612 !(allowOnArrayType && desugared->isArrayType())) {
6623 if (desugared->isArrayType())
6624 pointeeType = desugared->getArrayElementTypeNoTypeQual();
6626 pointeeType = desugared->getPointeeType().getTypePtr();
6663 const ObjCObjectPointerType *ptrType = type->getAs<ObjCObjectPointerType>();
6665 : type->getAs<ObjCObjectType>();
6686 if (auto nullability = type->getNullability(S.Context)) {
6998 ->getAs<FunctionType>());
7077 while ((AT = T->getAs<AttributedType>()) &&
7078 AT->getAs<TypedefType>() == T->getAs<TypedefType>()) {
7209 const BuiltinType *BTy = Ty->getAs<BuiltinType>();
7314 if (!(CurType->isImageType() || CurType->isPipeType())) {
7314 if (!(CurType->isImageType() || CurType->isPipeType())) {
7320 if (const TypedefType* TypedefTy = CurType->getAs<TypedefType>()) {
7324 if (BaseTy->isPipeType()) {
7332 } else if (const BuiltinType* ImgType = BaseTy->getAs<BuiltinType>()) {
7358 } else if (CurType->isPipeType()) {
7360 QualType ElemType = CurType->getAs<PipeType>()->getElementType();
7433 (T->isVoidType() && !IsPointee) ||
7438 (T->isDependentType() && !T->isPointerType() && !T->isReferenceType()) ||
7438 (T->isDependentType() && !T->isPointerType() && !T->isReferenceType()) ||
7438 (T->isDependentType() && !T->isPointerType() && !T->isReferenceType()) ||
7441 T->isDecltypeType() ||
7455 (D.getContext() == DeclaratorContext::FileContext && T->isSamplerT()))
7643 if (type->canHaveNullability() || type->isDependentType() ||
7643 if (type->canHaveNullability() || type->isDependentType() ||
7644 type->isArrayType() ||
7795 if (T->isIncompleteArrayType()) {
7832 if (const TagType *Tag = T->getAs<TagType>()) {
7989 if (const MemberPointerType *MPTy = T->getAs<MemberPointerType>()) {
8007 bool Incomplete = T->isIncompleteType(&Def);
8060 if (!T->isIncompleteType())
8112 if (!T->isIncompleteType())
8185 assert(!T->isDependentType() && "type should not be dependent");
8188 if ((isCompleteType(Loc, ElemType) || ElemType->isVoidType()) &&
8189 T->isLiteralType(Context))
8194 if (T->isVariableArrayType())
8197 const RecordType *RT = ElemType->getAs<RecordType>();
8231 if (!I.getType()->isLiteralType(Context)) {
8238 if (!I->getType()->isLiteralType(Context) ||
8305 if (const TagType *TT = T->getAs<TagType>())
8400 if (!BaseType->isDependentType() && !BaseType->isEnumeralType()) {
8400 if (!BaseType->isDependentType() && !BaseType->isEnumeralType()) {
8405 if (!BaseType->isDependentType()) {
8409 if (BaseType->isIncompleteType(&FwdDecl)) {
8415 EnumDecl *ED = BaseType->getAs<EnumType>()->getDecl();
8431 if (!T->isDependentType()) {
8438 if (T->isArrayType())
8440 else if (T->isFunctionType())
8442 else if (T->isReferenceType())
8444 else if (T->isAtomicType())
tools/clang/lib/Sema/TreeTransform.h 1062 T.isNull() ? nullptr : T->getContainedDeducedType())) {
2089 RangeExpr->getType()->isObjCObjectPointerType()) {
2307 assert(Member->getType()->isRecordType() &&
2330 if (isArrow && !BaseType->isPointerType())
3734 if (TL.getType()->isDependentType() || TL.getType()->isRecordType() ||
3734 if (TL.getType()->isDependentType() || TL.getType()->isRecordType() ||
3736 TL.getType()->isEnumeralType())) {
3739 if (TL.getType()->isEnumeralType())
4381 if (T->isFunctionType()) {
4392 if (T->isReferenceType()) {
4402 if (!T->isObjCLifetimeType() && !T->isDependentType())
4402 if (!T->isObjCLifetimeType() && !T->isDependentType())
4587 if (PointeeType->getAs<ObjCObjectType>()) {
4608 TLB.TypeWasModifiedSafely(Result->getPointeeType());
4672 Result->castAs<ReferenceType>()->getPointeeTypeAsWritten());
4738 const MemberPointerType *MPT = Result->getAs<MemberPointerType>();
5299 if (NewType->containsUnexpandedParameterPack()) {
5508 T->getAs<PackExpansionType>()) {
5736 if (Result->isDependentType()) {
5964 const PipeType *PT = Result->castAs<PipeType>();
6180 NamedT->getAs<TemplateSpecializationType>()) {
6240 if (!modifiedType->canHaveNullability()) {
6327 if (const ElaboratedType* ElabT = Result->getAs<ElaboratedType>()) {
6513 ->castAs<PackExpansionType>();
7240 assert(!Promise->getType()->isDependentType() &&
10681 if (E->isArray() && !E->getAllocatedType()->isDependentType()) {
10684 if (const RecordType *RecordT = ElementType->getAs<RecordType>()) {
10754 if (const RecordType *DestroyedRec = Destroyed->getAs<RecordType>()) {
10805 } else if (!ObjectType.isNull() && ObjectType->isDependentType()) {
11052 if (To->containsUnexpandedParameterPack()) {
11413 C->getLocation(), OldVD->getType()->isReferenceType(),
11806 ObjectType = BaseType->castAs<PointerType>()->getPointeeType();
12022 VD->getType()->isReferenceType() ? VK_LValue : VK_RValue,
13066 else if (ThisT->getAs<UnresolvedUsingType>())
13217 if (!First->getType()->isOverloadableType() &&
13218 !Second->getType()->isOverloadableType())
13225 if (!First->getType()->isOverloadableType() ||
13236 if (!First->getType()->isOverloadableType() &&
13237 !Second->getType()->isOverloadableType()) {
13324 (!isArrow && !BaseType->getAs<RecordType>()) ||
13325 (isArrow && BaseType->getAs<PointerType>() &&
13326 !BaseType->castAs<PointerType>()->getPointeeType()
13327 ->template getAs<RecordType>())){
13343 if (!ScopeType->getType()->getAs<TagType>()) {
tools/clang/lib/Serialization/ASTReader.cpp 4824 if (const TypedefType *Typedef = FileType->getAs<TypedefType>())
4827 const TagType *Tag = FileType->getAs<TagType>();
4845 if (const TypedefType *Typedef = Jmp_bufType->getAs<TypedefType>())
4848 const TagType *Tag = Jmp_bufType->getAs<TagType>();
4866 if (const TypedefType *Typedef = Sigjmp_bufType->getAs<TypedefType>())
4869 const TagType *Tag = Sigjmp_bufType->getAs<TagType>();
4902 if (const TypedefType *Typedef = Ucontext_tType->getAs<TypedefType>())
4905 const TagType *Tag = Ucontext_tType->getAs<TagType>();
7504 TypesLoaded[Index]->setFromAST();
9881 auto *DT = FD->getReturnType()->getContainedDeducedType();
11103 FirstParamType->getAs<DecayedType>()) {
11116 SecondParamType->getAs<DecayedType>()) {
11866 FirstParamType->getAs<DecayedType>()) {
11878 SecondParamType->getAs<DecayedType>()) {
12158 auto *FPT = Update.second->getType()->castAs<FunctionProtoType>();
tools/clang/lib/Serialization/ASTReaderDecl.cpp 845 FD->getTypeSourceInfo()->getType()->castAs<FunctionType>()
846 ->getReturnType()->getContainedAutoType()) {
1401 if (VD->hasAttr<BlocksAttr>() && VD->getType()->getAsCXXRecordDecl()) {
3024 auto *XFPT = XT->getAs<FunctionProtoType>();
3025 auto *YFPT = YT->getAs<FunctionProtoType>();
3440 auto *DT = T->getContainedDeducedType();
3475 auto *FPT = FD->getType()->getAs<FunctionProtoType>();
3476 auto *PrevFPT = PrevFD->getType()->getAs<FunctionProtoType>();
4445 auto *FPT = FD->getType()->castAs<FunctionProtoType>();
tools/clang/lib/Serialization/ASTWriter.cpp 163 switch (T->getTypeClass()) {
5369 cast<FunctionDecl>(D)->getType()->castAs<FunctionProtoType>(),
6415 ->castAs<FunctionProtoType>()
tools/clang/lib/Serialization/ASTWriterDecl.cpp 984 if (D->hasAttr<BlocksAttr>() && D->getType()->getAsCXXRecordDecl()) {
1043 !(D->hasAttr<BlocksAttr>() && D->getType()->getAsCXXRecordDecl()) &&
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp 332 if (elemType->isIncompleteType())
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp 481 if (!T->isIntegralOrEnumerationType())
751 if (ArgTy->isObjCObjectPointerType())
755 if (ArgTy->isBlockPointerType())
831 const ObjCObjectPointerType *PT = T->getAs<ObjCObjectPointerType>();
tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp 44 if (Ty->isBooleanType()) // C++ or C99
47 if (const TypedefType *TT = Ty->getAs<TypedefType>())
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp 2035 QualType CharPtrTy = SearchStrPtr->getType()->getPointeeType();
2101 if (!CE->getArg(2)->getType()->isPointerType())
2244 if (!T->isIntegralOrEnumerationType() && !T->isPointerType())
2244 if (!T->isIntegralOrEnumerationType() && !T->isPointerType())
2285 if (!D->getType()->isArrayType())
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp 160 if (ParamDecl->getType()->isPointerType()) {
163 } else if (ParamDecl->getType()->isReferenceType()) {
169 if(!ParamDecl->getType()->getPointeeType().isConstQualified())
208 if (const RecordType *RT = T->getAsStructureType()) {
215 if (T->getAsStructureType()) {
520 if (ResTy->isReferenceType()) {
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp 50 const RecordType *RT = ToPointeeTy->getAs<RecordType>();
62 const Type *ElemType = Last->getType()->getArrayElementTypeNoTypeQual();
99 if (ToPointeeTy->isIncompleteType())
tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp 54 if (!ToPointeeTy->isStructureOrClassType())
58 if (OrigPointeeTy->isVoidType())
62 if (!OrigPointeeTy->isRecordType()) {
83 if (!VD || VD->getType()->isReferenceType())
86 if (ToPointeeTy->isIncompleteType() ||
87 OrigPointeeTy->isIncompleteType())
tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp 108 CastInfo ? CastInfo->to()->getPointeeCXXRecordDecl()->getNameAsString()
109 : CastToTy->getPointeeCXXRecordDecl()->getNameAsString();
143 if (alignTowards->isLValueReferenceType() &&
147 } else if (alignTowards->isLValueReferenceType())
149 else if (alignTowards->isRValueReferenceType())
173 if (CastToTy->isPointerType()) {
174 if (!CastFromTy->isPointerType())
177 if (!CastFromTy->isReferenceType())
223 if (CastFromTy->isPointerType())
225 else if (CastFromTy->isReferenceType())
403 if (!(ParamT->isPointerType() && ResultT->isPointerType()) &&
403 if (!(ParamT->isPointerType() && ResultT->isPointerType()) &&
404 !(ParamT->isReferenceType() && ResultT->isReferenceType()))
404 !(ParamT->isReferenceType() && ResultT->isReferenceType()))
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp 80 if (!T->isObjCRetainableType())
934 if (!M.getArgExpr(0)->getType()->isObjCRetainableType())
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp 33 if (Derived->isAnyPointerType() && Ancestor->isAnyPointerType())
33 if (Derived->isAnyPointerType() && Ancestor->isAnyPointerType())
tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp 280 drLHS = drLHS && drLHS->getType()->isRealFloatingType() ? drLHS : nullptr;
281 drRHS = drRHS && drRHS->getType()->isRealFloatingType() ? drRHS : nullptr;
334 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
344 const PointerType *PT = FPT->getParamType(i)->getAs<PointerType>();
353 if (!FPT->getParamType(2)->isIntegralOrUnscopedEnumerationType())
376 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
386 const PointerType *PT = FPT->getParamType(i)->getAs<PointerType>();
395 if (!FPT->getParamType(2)->isIntegralOrUnscopedEnumerationType())
419 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
428 const PointerType *PT = FPT->getParamType(0)->getAs<PointerType>();
436 if (!FPT->getParamType(1)->isIntegralOrUnscopedEnumerationType())
461 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
470 const PointerType *PT = FPT->getParamType(0)->getAs<PointerType>();
497 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
506 if (!FPT->getParamType(0)->isIntegralOrUnscopedEnumerationType())
510 const PointerType *PT = FPT->getParamType(1)->getAs<PointerType>();
541 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
550 const PointerType *PT = FPT->getParamType(0)->getAs<PointerType>();
807 const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>();
819 const PointerType *PT = FPT->getParamType(i)->getAs<PointerType>();
841 const FunctionProtoType *FTP = FD->getType()->getAs<FunctionProtoType>();
848 const PointerType *PT = FTP->getParamType(0)->getAs<PointerType>();
852 if (! PT->getPointeeType()->isIntegralOrUnscopedEnumerationType())
884 const FunctionProtoType *FTP = FD->getType()->getAs<FunctionProtoType>();
959 const FunctionProtoType *FTP = FD->getType()->getAs<FunctionProtoType>();
970 if (!FTP->getParamType(i)->isIntegralOrUnscopedEnumerationType())
tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp 55 if (T->isPointerType()) {
tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp 137 if (!DestType->isRealType() || !SubType->isIntegerType())
137 if (!DestType->isRealType() || !SubType->isIntegerType())
140 const bool isFloat = DestType->isFloatingType();
157 if (DestType->isSignedIntegerType())
167 if (SubType->isSignedIntegerType())
189 if (!CastType->isUnsignedIntegerType() || !SubType->isSignedIntegerType())
189 if (!CastType->isUnsignedIntegerType() || !SubType->isSignedIntegerType())
tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp 275 if (VD->getType()->getAs<ReferenceType>())
342 if (T->isPointerType() || T->isObjCObjectPointerType()) {
342 if (T->isPointerType() || T->isObjCObjectPointerType()) {
386 if (V->getType()->getAs<ReferenceType>())
435 if (isa<ParmVarDecl>(VD) && VD->getType()->isScalarType())
498 if (FD->getType()->isReferenceType())
tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp 73 const auto *BaseClass = BaseClassRegion->getValueType()->getAsCXXRecordDecl();
75 DerivedClassRegion->getSymbol()->getType()->getPointeeCXXRecordDecl();
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp 115 return DRE->getDecl()->getType()->isReferenceType();
257 if (!TVR->getValueType()->isReferenceType())
tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp 66 if (!B->getRHS()->getType()->isScalarType())
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp 173 const auto *DynObjCType = DynType->getAs<ObjCObjectPointerType>();
174 const auto *StaticObjCType = StaticType->getAs<ObjCObjectPointerType>();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp 311 = MsgE->getClassReceiver()->getAs<ObjCObjectType>())
317 = MsgE->getSuperType()->getAs<ObjCObjectType>())
351 CastE->getType()->getAs<ObjCObjectPointerType>();
359 OldDTy->getAs<ObjCObjectPointerType>();
397 To->getObjectType()->getSuperClassType()->castAs<ObjCObjectType>();
401 const auto *SuperPtrOfTo = SuperPtrOfToQual->castAs<ObjCObjectPointerType>();
528 const auto *OrigObjectPtrType = OriginType->getAs<ObjCObjectPointerType>();
529 const auto *DestObjectPtrType = DestType->getAs<ObjCObjectPointerType>();
655 ReceiverType->getAs<ObjCObjectPointerType>();
664 if (ReceiverType->isObjCIdType() || ReceiverType->isObjCClassType() ||
664 if (ReceiverType->isObjCIdType() || ReceiverType->isObjCClassType() ||
777 const auto *ParamObjectPtrType = ParamType->getAs<ObjCObjectPointerType>();
779 stripCastsAndSugar(Arg)->getType()->getAs<ObjCObjectPointerType>();
830 const auto *ReceiverClassType = ReceiverType->castAs<ObjCObjectType>();
838 ReceiverClassPointerType->castAs<ObjCObjectPointerType>();
886 const auto *ResultPtrType = ResultType->getAs<ObjCObjectPointerType>();
tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp 121 if (!T->isEnumeralType())
128 const EnumDecl *ED = T->castAs<EnumType>()->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp 43 if (!T->isPointerType())
tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp 229 auto *RefTy = CtorDecl->getParamDecl(0)->getType()->getAs<ReferenceType>();
231 RefTy->getPointeeType()->getCanonicalTypeUnqualified() == BoolTy) {
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp 570 if (!ArgTy->isPointerType())
573 QualType ValTy = ArgTy->getPointeeType();
577 if (ValTy->isVoidType())
tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp 230 if ((DeclRef1->getType()->hasFloatingRepresentation()) &&
231 (DeclRef2->getType()->hasFloatingRepresentation())) {
244 } else if (LHS->getType()->hasFloatingRepresentation()) {
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp 160 if (!ParamTy->isReferenceType() ||
161 ParamTy->getPointeeType().isConstQualified())
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 408 Call.getArgExpr(0)->getType()->isIntegralOrEnumerationType()) {
415 Call.getArgExpr(1)->getType()->isIntegralOrEnumerationType()) {
544 Param->getType()->getAs<SubstTemplateTypeParmType>();
595 Call.getArgExpr(0)->getType()->isIntegralOrEnumerationType()) {
603 Call.getArgExpr(1)->getType()->isIntegralOrEnumerationType()) {
1645 if (Type->isPointerType())
1648 const auto *CRD = Type->getUnqualifiedDesugaredType()->getAsCXXRecordDecl();
1919 if (const auto *RefT = Type->getAs<ReferenceType>()) {
1923 return Type->getUnqualifiedDesugaredType()->getAsCXXRecordDecl();
2109 assert(T->isSignedIntegerOrEnumerationType());
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp 282 const ObjCObjectPointerType *IvTy = IvQTy->getAs<ObjCObjectPointerType>();
tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp 30 const RecordType *RT = T->getAs<RecordType>();
50 if (const ElaboratedType *QT = T->getAs<ElaboratedType>())
53 const TypedefType *TT = T->getAs<TypedefType>();
82 const TemplateSpecializationType *TS = T->getAs<TemplateSpecializationType>();
96 const TemplateSpecializationType *TS = T->getAs<TemplateSpecializationType>();
203 if (const RecordType *baseT = T->getAs<RecordType>()) {
249 if (const RecordType *RT = T->getAs<RecordType>()) {
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp 903 const ObjCObjectPointerType *PT = T->getAs<ObjCObjectPointerType>();
tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp 165 .getCanonicalType()->isSignedIntegerType())
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp 165 CE.getArgExpr(1)->getType()->getPointeeType());
172 CE.getArgExpr(1)->getType()->getPointeeType(), Idx, SuperRegion,
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 1296 QualType Result = T, PointeeType = T->getPointeeType();
1299 PointeeType = PointeeType->getPointeeType();
1312 if (!NE->getAllocatedType()->getAsCXXRecordDecl())
1320 QualType CtorParamPointeeT = CtorParam->getType()->getPointeeType();
1326 if (CtorParamPointeeT->getAsCXXRecordDecl())
1872 if (SymBase->getType()->isFunctionPointerType()) {
tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp 135 if (!E->getType()->isIntegralOrEnumerationType())
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp 139 if (B->isVoidPointerType() && A->getAs<PointerType>())
139 if (B->isVoidPointerType() && A->getAs<PointerType>())
149 if (const PointerType *ptrA = A->getAs<PointerType>())
150 if (const PointerType *ptrB = B->getAs<PointerType>()) {
164 while (const ArrayType *AT = T->getAsArrayTypeUnsafe()) {
184 if (!CastedType->isPointerType())
186 QualType PointeeType = CastedType->getPointeeType();
187 if (PointeeType->isVoidType())
192 if (!(*ai)->getType()->isIntegralOrUnscopedEnumerationType())
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp 266 if (Sym->getType()->isRValueReferenceType())
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp 56 if (!D->getReturnType()->isVoidType())
103 if (!D->getReturnType()->isVoidType())
282 const PointerType* PPT = T->getAs<PointerType>();
287 PPT->getPointeeType()->getAs<ObjCObjectPointerType>();
302 const PointerType* PPT = T->getAs<PointerType>();
305 const TypedefType* TT = PPT->getPointeeType()->getAs<TypedefType>();
tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp 86 HasParam ? parms[idx]->getType()->isReferenceType() : false;
113 const RecordType *UT = T->getAsUnionType();
tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp 131 if (Ty->isPointerType() && Ty->getPointeeType()->isCharType())
131 if (Ty->isPointerType() && Ty->getPointeeType()->isCharType())
131 if (Ty->isPointerType() && Ty->getPointeeType()->isCharType())
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp 528 if (!RetExpr->getType()->isAnyPointerType())
587 OS << (RetExpr->getType()->isObjCObjectPointerType() ? "nil" : "Null");
664 if (!Param->getType()->isAnyPointerType() &&
665 !Param->getType()->isReferenceType())
687 OS << (Param->getType()->isObjCObjectPointerType() ? "nil" : "Null");
722 Param->getType()->isReferenceType()) {
754 if (!ReturnType->isAnyPointerType())
822 if (!RetType->isAnyPointerType())
935 if (!OriginType->isAnyPointerType())
937 if (!DestType->isAnyPointerType())
1061 if (!LocType->isAnyPointerType())
1108 OS << (LocType->isObjCObjectPointerType() ? "nil" : "Null");
tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp 136 assert(ObjT.getCanonicalType()->isPointerType());
138 ObjT->getPointeeType().getCanonicalType().getUnqualifiedType());
tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp 115 if (Ty->getPointeeType().getObjCLifetime() != Qualifiers::OCL_Autoreleasing)
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp 54 if (const Type *TElem = PointeeT->getArrayElementTypeNoTypeQual())
tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp 47 if (!T->isObjCObjectPointerType())
50 const std::string &PropTypeName(T->getPointeeType().getCanonicalType()
tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp 87 return visitRecord(CXXRD->bases().begin()->getType()->getAsRecordDecl(),
115 const ArrayType *ArrTy = VD->getType()->getAsArrayTypeUnsafe();
123 const RecordType *RT = ArrTy->getElementType()->getAs<RecordType>();
180 if (Ty->isIncompleteArrayType())
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp 298 if (!UOp->isIncrementDecrementOp() || !UOp->getType()->isPointerType())
312 if (SubsExpr->getBase()->getType()->isVectorType())
327 if (Rhs->getType()->isIntegerType() && Lhs->getType()->isPointerType()) {
327 if (Rhs->getType()->isIntegerType() && Lhs->getType()->isPointerType()) {
334 if (Lhs->getType()->isIntegerType() && Rhs->getType()->isPointerType()) {
334 if (Lhs->getType()->isIntegerType() && Rhs->getType()->isPointerType()) {
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp 190 if (QT->isObjCObjectPointerType()) {
301 if (Ty->isObjCRetainableType())
400 if (const ObjCObjectPointerType *PT = RetTy->getAs<ObjCObjectPointerType>())
427 QualType PT = QT->getPointeeType();
429 if (PT->getAsCXXRecordDecl())
540 if (!CE.getResultType()->isScalarType()) {
851 if (Sym->getType()->getPointeeCXXRecordDecl())
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp 84 QualType PT = QT->getPointeeType();
85 if (!PT.isNull() && !QT->getAs<TypedefType>())
86 if (const auto *RD = PT->getAsCXXRecordDecl())
299 if (!RT.isNull() && !RT->isVoidType()) {
tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp 57 if (!RT.isNull() && RT->isVoidType())
64 RetE->getType()->isVoidType())
74 if (RT->isReferenceType()) {
tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp 42 return CD && CD->getConversionType()->isBooleanType();
tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp 129 const auto *T = C.getVariable()->getType()->getAs<TypedefType>();
275 if (isa<CXXConstructExpr>(RetE) && RetE->getType()->isRecordType())
tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp 175 assert(!T->isVoidType() &&
180 assert(T->isIntegralOrEnumerationType() &&
tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp 109 if (Call.getResultType()->isVoidType())
tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp 159 if (!ExprRetType->isAnyPointerType())
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h 325 return T->isBuiltinType() || T->isEnumeralType() ||
325 return T->isBuiltinType() || T->isEnumeralType() ||
326 T->isFunctionType() || T->isAtomicType() ||
326 T->isFunctionType() || T->isAtomicType() ||
327 T->isVectorType() || T->isScalarType();
327 T->isVectorType() || T->isScalarType();
331 return T->isAnyPointerType() || T->isReferenceType();
331 return T->isAnyPointerType() || T->isReferenceType();
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp 85 assert(T->getAsCXXRecordDecl());
96 Out << BaseClassT->getAsCXXRecordDecl()->getName() << "::";
278 assert(R->getValueType()->isRecordType() &&
279 !R->getValueType()->isUnionType() &&
282 const RecordDecl *RD = R->getValueType()->getAsRecordDecl()->getDefinition();
311 if (T->isStructureOrClassType()) {
317 if (T->isUnionType()) {
326 if (T->isArrayType()) {
378 assert(R->getValueType()->isUnionType() &&
467 if (R && !R->getValueType()->getAsCXXRecordDecl())
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp 51 if (getDecl()->getType()->isPointerType())
73 if (getDecl()->getType()->isIntegerType())
177 QualType PointeeT = DynT->getPointeeType();
179 if (PointeeT->isStructureOrClassType()) {
185 if (PointeeT->isUnionType()) {
197 if (PointeeT->isArrayType()) {
259 if (isDereferencableType(DynT->getPointeeType()))
277 if (T->isVoidPointerType())
279 T = T->getPointeeType();
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp 190 if (!QT->isIntegerType()) {
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp 174 Ty->isPointerType() && Ty->getPointeeType()->isRecordType();
174 Ty->isPointerType() && Ty->getPointeeType()->isRecordType();
174 Ty->isPointerType() && Ty->getPointeeType()->isRecordType();
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp 308 if ((*I)->getType()->isVoidPointerType())
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp 75 if (B->isAdditiveOp() && B->getType()->isPointerType()) {
76 if (B->getLHS()->getType()->isPointerType()) {
78 } else if (B->getRHS()->getType()->isPointerType()) {
120 (U->isIncrementDecrementOp() && U->getType()->isPointerType())) {
482 return !Ty->getPointeeType().isNull() &&
483 Ty->getPointeeType().getCanonicalType().isConstQualified();
509 if (const RecordDecl *RRD = II.getType()->getAsRecordDecl())
526 if (const RecordDecl *RRD = FT->getAsRecordDecl())
531 QualType PT = FT->getPointeeType();
532 if (PT.isNull() || PT->isVoidType() || !VR)
535 if (const RecordDecl *RRD = PT->getAsRecordDecl())
589 bool ParamIsReferenceType = PVD->getType()->isReferenceType();
599 QualType PT = T->getPointeeType();
600 if (PT.isNull() || PT->isVoidType())
603 if (const RecordDecl *RD = PT->getAsRecordDecl())
750 Sep = DR->getValueType()->isAnyPointerType() ? "->" : ".";
1068 if (RetE->getType()->isObjCObjectPointerType()) {
1255 if (TR->getValueType()->isObjCObjectPointerType()) {
1294 if (Param->getType()->isObjCObjectPointerType())
1322 if (TR->getValueType()->isObjCObjectPointerType()) {
1838 if (!VD->getType()->isReferenceType())
2043 if (SR->getSymbol()->getType()->getPointeeType()->isVoidType())
2043 if (SR->getSymbol()->getType()->getPointeeType()->isVoidType())
2373 if (OriginalTy->isPointerType()) {
2379 else if (OriginalTy->isObjCObjectPointerType()) {
2630 if (Ty->isPointerType()) {
2635 if (Ty->isObjCObjectPointerType()) {
2640 if (!Ty->isIntegralOrEnumerationType())
2648 if (Ty->isBooleanType())
2653 if (Ty->isBooleanType())
2791 if (!(T->isAnyPointerType() || T->isReferenceType())) {
2791 if (!(T->isAnyPointerType() || T->isReferenceType())) {
2798 if (T->getPointeeType().isConstQualified())
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 98 if (T->isBlockPointerType() ||
99 T->isFunctionPointerType() ||
100 T->isObjCSelType())
106 if (T->isAnyPointerType() || T->isReferenceType())
106 if (T->isAnyPointerType() || T->isReferenceType())
107 T = T->getPointeeType();
109 if (const RecordType *RT = T->getAsStructureType()) {
113 if (FieldT->isBlockPointerType() || FieldT->isFunctionPointerType())
113 if (FieldT->isBlockPointerType() || FieldT->isFunctionPointerType())
121 if (const auto *PT = T->getAs<PointerType>()) {
125 return PointeeTy->isVoidType();
262 QualType PointeeTy = Ty->getPointeeType();
267 if (PointeeTy->isAnyPointerType())
479 if (const FunctionType *FT = Ty->getAs<FunctionType>())
481 if (!Ty->isDependentType())
696 if (T->isPointerType()) // Arrow or implicit-this syntax?
697 T = T->getPointeeType();
698 const CXXRecordDecl *ParentRecord = T->getAsCXXRecordDecl();
745 QualType RegionType = DynType.getType()->getPointeeType();
748 const CXXRecordDecl *RD = RegionType->getAsCXXRecordDecl();
1370 } else if (CE->getCallee()->getType()->isBlockPointerType()) {
tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp 102 const auto *AttrType = Type->getAs<AttributedType>();
tools/clang/lib/StaticAnalyzer/Core/DynamicType.cpp 100 assert((CastToTy->isAnyPointerType() || CastToTy->isReferenceType()) &&
100 assert((CastToTy->isAnyPointerType() || CastToTy->isReferenceType()) &&
160 Out << '\"' << DTI.getType()->getPointeeType().getAsString()
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 333 Result->getType()->isMemberPointerType());
858 if (Init->getType()->isArrayType()) {
866 if (!Field->getType()->isReferenceType())
960 if (varType->isReferenceType()) {
998 const CXXRecordDecl *RD = BTy->getAsCXXRecordDecl();
1480 ->getType()->isRecordType()))
2005 if (!T->isIntegralOrEnumerationType())
2020 if (!bitsInit || !T->isIntegralOrEnumerationType() ||
2133 if (Ex->getType()->isIntegralOrEnumerationType()) {
2407 if (CondExpr->getType()->getAs<EnumType>()) {
2430 assert(Ex->isGLValue() || VD->getType()->isVoidType());
2460 bool IsReference = VInfo->second->isReferenceType();
2522 bool IsVectorType = A->getBase()->getType()->isVectorType();
2540 if (T->isVoidType())
2607 if (M->isGLValue() || M->getType()->isArrayType()) {
2613 assert(M->getType()->isArrayType());
2621 if (field->getType()->isReferenceType()) {
2697 if (const auto *RD = VR->getValueType()->getAsCXXRecordDecl())
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp 33 Ty->isIntegralOrEnumerationType() &&
263 if (T->isLValueReferenceType()) {
264 assert(!CastE->getType()->isLValueReferenceType());
266 } else if (T->isRValueReferenceType()) {
267 assert(!CastE->getType()->isRValueReferenceType());
465 if (T->isReferenceType()) {
661 if (B->getType()->isVectorType()) {
743 (T->isArrayType() || T->isRecordType() || T->isVectorType() ||
743 (T->isArrayType() || T->isRecordType() || T->isVectorType() ||
743 (T->isArrayType() || T->isRecordType() || T->isVectorType() ||
744 T->isAnyComplexType())) {
853 assert(OOE->getType()->castAs<BuiltinType>()->isInteger());
854 assert(IV.isSigned() == OOE->getType()->isSignedIntegerType());
880 if (!T->isIncompleteType() && !T->isConstantSizeType()) {
880 if (!T->isIncompleteType() && !T->isConstantSizeType()) {
881 assert(T->isVariableArrayType() && "Unknown non-constant-sized type.");
886 } else if (T->getAs<ObjCObjectType>()) {
947 if (Ex->getType()->isAnyComplexType()) {
964 if (Ex->getType()->isAnyComplexType()) {
1039 } else if (Ex->getType()->isFloatingType()) {
1106 if (U->getType()->isAnyPointerType())
1108 else if (U->getType()->isIntegralOrEnumerationType())
1117 if (U->getType()->isBooleanType() && U->isIncrementOp())
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp 175 MR, NE->getType()->getPointeeType())));
287 if (!VD->getType()->isReferenceType()) {
612 const CXXRecordDecl *RecordDecl = ObjectType->getAsCXXRecordDecl();
718 if (const auto *ProtoType = Ty->getAs<FunctionProtoType>())
793 if (const auto *ProtoType = Ty->getAs<FunctionProtoType>())
808 QualType ObjTy = CNE->getType()->getPointeeType();
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp 138 if (ExpectedTy->isObjCObjectPointerType() &&
139 ActualTy->isObjCObjectPointerType())
143 const CXXRecordDecl *ExpectedClass = ExpectedTy->getPointeeCXXRecordDecl();
144 const CXXRecordDecl *ActualClass = ActualTy->getPointeeCXXRecordDecl();
149 !Paths.isAmbiguous(ActualTy->getCanonicalTypeUnqualified())) {
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp 172 if (T->isIncompleteType())
912 if (!T->getAs<FunctionType>())
1058 const CXXRecordDecl *Class = Super->getValueType()->getAsCXXRecordDecl();
1066 if (I.getType()->getAsCXXRecordDecl()->getCanonicalDecl() == BaseClass)
1102 const auto *PT = thisPointerTy->getAs<PointerType>();
1111 PT != D->getThisType()->getAs<PointerType>())) {
1251 if (elemType->isIncompleteType()) {
1287 if (I.getType()->getAsCXXRecordDecl() == Base)
1353 Ty = SR->getSymbol()->getType()->getPointeeType();
1357 const CXXRecordDecl *Child = Ty->getAsCXXRecordDecl();
1403 if (EleTy->isIncompleteType()) {
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp 254 if (Loc::isLocType(T) || T->isIntegralOrEnumerationType())
270 if (!T.isNull() && (T->isIntegralOrEnumerationType() || Loc::isLocType(T))) {
tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp 457 bool IsUnsigned = T->isUnsignedIntegerType();
505 if (T->isReferenceType())
533 T->isSignedIntegerOrEnumerationType())
tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp 108 if (!T->isIntegralOrEnumerationType())
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp 1083 if (const auto *RD = TO->getValueType()->getAsCXXRecordDecl()) {
1169 if (T->isRecordType()) {
1473 T = TR->getLocationType()->getPointeeType();
1475 T = SR->getSymbol()->getType()->getPointeeType();
1478 assert(!T->isVoidType() && "Attempting to dereference a void pointer!");
1491 if (RTy->isAnyComplexType())
1502 if (RTy->isStructureOrClassType())
1506 if (RTy->isUnionType())
1509 if (RTy->isArrayType()) {
1510 if (RTy->isConstantArrayType())
1517 if (RTy->isVectorType())
1606 !RegionTy->isVoidPointerType()) {
1757 if (baseT->isScalarType()) {
1759 if (elemT->isScalarType()) {
1942 if (typedSuperR->getValueType()->isVectorType())
2111 const RecordDecl *RD = R->getValueType()->castAs<RecordType>()->getDecl();
2176 if (Ty->isArrayType())
2178 if (Ty->isStructureOrClassType())
2180 if (Ty->isVectorType())
2182 if (Ty->isUnionType())
2190 if (T->isAnyPointerType() || T->isReferenceType())
2190 if (T->isAnyPointerType() || T->isReferenceType())
2191 T = T->getPointeeType();
2212 else if (T->isIntegralOrEnumerationType())
2214 else if (T->isStructureOrClassType() || T->isArrayType()) {
2214 else if (T->isStructureOrClassType() || T->isArrayType()) {
2273 if (ElementTy->isStructureOrClassType())
2275 else if (ElementTy->isArrayType())
2294 const VectorType *VT = T->castAs<VectorType>(); // Use castAs for typedefs.
2320 if (ElemType->isArrayType())
2322 else if (ElemType->isStructureOrClassType())
2351 if (!(Ty->isScalarType() || Ty->isReferenceType()))
2351 if (!(Ty->isScalarType() || Ty->isReferenceType()))
2377 assert(T->isStructureOrClassType());
2379 const RecordType* RT = T->castAs<RecordType>();
2443 assert(BTy->isStructureOrClassType() && "Base classes must be classes!");
2445 const CXXRecordDecl *BRD = BTy->getAsCXXRecordDecl();
2471 if (FTy->isArrayType())
2473 else if (FTy->isStructureOrClassType())
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp 56 if (type->isIntegralOrEnumerationType())
59 if (type->isArrayType() || type->isRecordType() || type->isVectorType() ||
59 if (type->isArrayType() || type->isRecordType() || type->isVectorType() ||
59 if (type->isArrayType() || type->isRecordType() || type->isVectorType() ||
60 type->isAnyComplexType())
121 if (T->isNullPtrType())
141 if (T->isNullPtrType())
158 if (type->isNullPtrType())
176 if (type->isNullPtrType())
197 if (T->isNullPtrType())
225 if (T->isNullPtrType())
477 if (ToTy->isVoidType())
501 castTy->isUnsignedIntegerType());
531 if (castTy->isBooleanType()) {
537 !originalTy->isIntegralOrEnumerationType() &&
538 !originalTy->isMemberPointerType())
555 if (!castTy->isVariableArrayType() && !originalTy->isVariableArrayType())
555 if (!castTy->isVariableArrayType() && !originalTy->isVariableArrayType())
561 if (castTy->isIntegralOrEnumerationType() && Loc::isLocType(originalTy))
565 if (Loc::isLocType(castTy) && originalTy->isIntegralOrEnumerationType()) {
578 if (originalTy->isBlockPointerType() || originalTy->isFunctionPointerType()) {
578 if (originalTy->isBlockPointerType() || originalTy->isFunctionPointerType()) {
592 if (castTy->isPointerType() || castTy->isReferenceType())
592 if (castTy->isPointerType() || castTy->isReferenceType())
597 assert(castTy->isIntegralOrEnumerationType());
609 if (castTy->isIntegralOrEnumerationType())
641 assert(Loc::isLocType(originalTy) || originalTy->isFunctionType() ||
642 originalTy->isBlockPointerType() || castTy->isReferenceType());
642 originalTy->isBlockPointerType() || castTy->isReferenceType());
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp 111 if (castTy->isBooleanType()) {
118 if (!isLocType && !castTy->isIntegralOrEnumerationType())
138 if (Loc::isLocType(castTy) || castTy->isReferenceType())
143 if (castTy->isUnionType())
148 if (castTy->isBooleanType()) {
174 if (castTy->isIntegralOrEnumerationType()) {
303 if (RHS.isSigned() && !SymbolType->isSignedIntegerOrEnumerationType())
336 assert(T->isSignedIntegerOrEnumerationType() &&
485 if (!SingleTy->isSignedIntegerOrEnumerationType())
526 if (resultTy->isIntegralOrEnumerationType())
701 assert(resultTy->isBooleanType() ||
703 assert(symIntExpr->getType()->isBooleanType() ||
1149 QualType pointeeType = resultTy->getPointeeType();
1192 if (resultTy->isAnyPointerType())
1193 elementType = resultTy->getPointeeType();
1199 if (elementType->isVoidType())
tools/clang/lib/StaticAnalyzer/Core/Store.cpp 78 if (CastToTy->isObjCObjectPointerType())
81 if (CastToTy->isBlockPointerType()) {
96 QualType PointeeTy = CastToTy->getPointeeType();
200 if (!PointeeTy->isIncompleteType()) {
237 const CXXRecordDecl *RD = TVR->getValueType()->getAsCXXRecordDecl();
241 const CXXRecordDecl *Expected = Ty->getPointeeCXXRecordDecl();
243 Expected = Ty->getAsCXXRecordDecl();
279 const CXXRecordDecl *BaseDecl = BaseType->getPointeeCXXRecordDecl();
281 BaseDecl = BaseType->getAsCXXRecordDecl();
288 if (SR->getSymbol()->getType()->getPointeeCXXRecordDecl() == BaseDecl)
308 return TVR->getValueType()->getAsCXXRecordDecl();
310 return SR->getSymbol()->getType()->getPointeeCXXRecordDecl();
323 TargetType = TargetType->getPointeeType();
325 const CXXRecordDecl *TargetClass = TargetType->getAsCXXRecordDecl();
326 if (!TargetClass && !TargetType->isVoidType())
339 if (!TargetType->isVoidType() && MRClass->hasDefinition()) {
355 if (TargetType->isVoidType())
384 const CXXRecordDecl *SourceClass = T->getPointeeCXXRecordDecl();
409 if (castTy->isFloatingType()) {
411 if (Sym && !Sym->getType()->isFloatingType())
423 if (castTy->isPointerType() && !castTy->isVoidPointerType())
423 if (castTy->isPointerType() && !castTy->isVoidPointerType())
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp 354 if (T->isIntegralOrEnumerationType())
357 if (T->isRecordType() && !T->isUnionType())
357 if (T->isRecordType() && !T->isUnionType())
tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp 164 if (IsExpr && !ReturnType->isVoidType())
tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp 452 if (const auto* TT = Loc.getType()->getAs<clang::TypedefType>())
454 if (const auto *RD = Loc.getType()->getAsCXXRecordDecl())
457 llvm::dyn_cast_or_null<EnumDecl>(Loc.getType()->getAsTagDecl()))
tools/clang/lib/Tooling/Transformer/Stencil.cpp 208 E->getType()->isAnyPointerType()
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp 918 if (auto *Typedef = Type.getType()->getAs<TypedefType>()) {
923 Type.getType()->getAs<TemplateSpecializationType>()) {
tools/clang/tools/extra/clang-doc/Serialize.cpp 218 if (const RecordDecl *D = T->getAsRecordDecl())
336 if (const auto *Ty = B.getType()->getAs<TemplateSpecializationType>()) {
442 if (const RecordType *Ty = B.getType()->getAs<RecordType>()) {
451 if (const auto *Ty = B.getType()->getAs<TemplateSpecializationType>()) {
tools/clang/tools/extra/clang-include-fixer/IncludeFixer.cpp 156 std::string QueryString = QualType(T->getUnqualifiedDesugaredType(), 0)
tools/clang/tools/extra/clang-tidy/abseil/DurationConversionCastCheck.cpp 53 if (MatchedCast->getTypeAsWritten()->isIntegerType() &&
68 if (MatchedCast->getTypeAsWritten()->isRealFloatingType() &&
tools/clang/tools/extra/clang-tidy/boost/UseToStringCheck.cpp 49 if (CharType->isSpecificBuiltinType(BuiltinType::Char_S) ||
50 CharType->isSpecificBuiltinType(BuiltinType::Char_U))
52 else if (CharType->isSpecificBuiltinType(BuiltinType::WChar_S) ||
53 CharType->isSpecificBuiltinType(BuiltinType::WChar_U))
tools/clang/tools/extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp 40 if (LeftVar->hasInit() && LeftVar->getType()->isReferenceType()) {
tools/clang/tools/extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp 88 return T->isIntegerType() ? Context.getIntWidth(T) : 1024U;
212 dyn_cast<BuiltinType>(CastType->getUnqualifiedDesugaredType());
214 dyn_cast<BuiltinType>(CalcType->getUnqualifiedDesugaredType());
tools/clang/tools/extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp 33 auto *BaseDecl = Base.getType()->getAsCXXRecordDecl();
44 const auto *BaseDecl = Base.getType()->getAsCXXRecordDecl();
tools/clang/tools/extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp 153 bool IsWideCharType = CharType->isWideCharType();
154 if (!CharType->isCharType() && !IsWideCharType)
tools/clang/tools/extra/clang-tidy/bugprone/TooSmallLoopVariableCheck.cpp 101 assert(IntExprType->isIntegerType());
103 return IntExprType->isUnsignedIntegerType()
122 if (!RHSEType->isIntegerType() || !LHSEType->isIntegerType())
122 if (!RHSEType->isIntegerType() || !LHSEType->isIntegerType())
125 bool RHSEIsConstantValue = RHSEType->isEnumeralType() ||
128 bool LHSEIsConstantValue = LHSEType->isEnumeralType() ||
tools/clang/tools/extra/clang-tidy/bugprone/UndefinedMemoryManipulationCheck.cpp 52 if (!DestType->getPointeeType().isNull())
53 DestType = DestType->getPointeeType();
60 if (!SourceType->getPointeeType().isNull())
61 SourceType = SourceType->getPointeeType();
tools/clang/tools/extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp 43 ->getAs<FunctionType>()
47 ->getAs<FunctionType>()
51 if (DerivedReturnTy->isDependentType() || BaseReturnTy->isDependentType())
51 if (DerivedReturnTy->isDependentType() || BaseReturnTy->isDependentType())
61 if (!(BaseReturnTy->isPointerType() && DerivedReturnTy->isPointerType()) &&
61 if (!(BaseReturnTy->isPointerType() && DerivedReturnTy->isPointerType()) &&
62 !(BaseReturnTy->isReferenceType() && DerivedReturnTy->isReferenceType()))
62 !(BaseReturnTy->isReferenceType() && DerivedReturnTy->isReferenceType()))
68 QualType DTy = DerivedReturnTy->getPointeeType().getCanonicalType();
69 QualType BTy = BaseReturnTy->getPointeeType().getCanonicalType();
71 const CXXRecordDecl *DRD = DTy->getAsCXXRecordDecl();
72 const CXXRecordDecl *BRD = BTy->getAsCXXRecordDecl();
125 if (const auto *Decayed = Type->getAs<DecayedType>())
240 if (const auto *BaseRD = BaseSpec.getType()->getAsCXXRecordDecl()) {
tools/clang/tools/extra/clang-tidy/cert/PostfixOperatorCheck.cpp 50 if (const auto *RefType = ReturnType->getAs<ReferenceType>()) {
55 if (Location.isMacroID() || ReturnType->getAs<TypedefType>() ||
56 RefType->getPointeeTypeAsWritten()->getAs<TypedefType>())
63 if (!ReturnType->getPointeeType().isConstQualified())
73 if (ReturnType.isConstQualified() || ReturnType->isBuiltinType() ||
74 ReturnType->isPointerType())
82 if (!Location.isMacroID() && !ReturnType->getAs<TypedefType>())
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp 74 if (TypePtr->isIntegerType())
76 else if (TypePtr->isFloatingType()) {
79 } else if (TypePtr->isAnyPointerType()) {
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp 295 bool DestSigned = DestType->isSignedIntegerOrEnumerationType();
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeCstyleCastCheck.cpp 23 while (SourceType->isPointerType() && DestType->isPointerType()) {
23 while (SourceType->isPointerType() && DestType->isPointerType()) {
24 SourceType = SourceType->getPointeeType();
25 DestType = DestType->getPointeeType();
56 const auto *SourceDecl = SourceType->getPointeeCXXRecordDecl();
58 SourceDecl = SourceType->getAsCXXRecordDecl();
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp 39 if (const CXXRecordDecl *R = F->getType()->getAsCXXRecordDecl())
166 if (const auto *RT = Type.getCanonicalType()->getAs<RecordType>())
323 if (T->isIncompleteArrayType())
337 if (const CXXRecordDecl *ClassDecl = Type->getAsCXXRecordDecl()) {
348 if (QT->isPointerType())
461 if (F->getType()->isEnumeralType() ||
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp 35 const auto *SourceDecl = SourceType->getPointeeCXXRecordDecl();
37 SourceDecl = SourceType->getAsCXXRecordDecl();
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/SlicingCheck.cpp 91 if (const auto *BaseRecordType = Base.getType()->getAs<RecordType>()) {
tools/clang/tools/extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp 74 const auto *Ty = I.getType()->getAs<RecordType>();
107 const auto *Ty = I.getType()->getAs<RecordType>();
116 const auto *Ty = V.getType()->getAs<RecordType>();
tools/clang/tools/extra/clang-tidy/fuchsia/TrailingReturnCheck.cpp 22 return Node.getType()->castAs<FunctionProtoType>()->hasTrailingReturn();
tools/clang/tools/extra/clang-tidy/google/AvoidCStyleCastsCheck.cpp 37 while ((SourceType->isPointerType() && DestType->isPointerType()) ||
37 while ((SourceType->isPointerType() && DestType->isPointerType()) ||
38 (SourceType->isReferenceType() && DestType->isReferenceType())) {
38 (SourceType->isReferenceType() && DestType->isReferenceType())) {
39 SourceType = SourceType->getPointeeType();
40 DestType = DestType->getPointeeType();
42 return (SourceType->isPointerType() == DestType->isPointerType()) &&
42 return (SourceType->isPointerType() == DestType->isPointerType()) &&
43 (SourceType->isReferenceType() == DestType->isReferenceType());
43 (SourceType->isReferenceType() == DestType->isReferenceType());
50 while ((T1->isPointerType() && T2->isPointerType()) ||
50 while ((T1->isPointerType() && T2->isPointerType()) ||
51 (T1->isReferenceType() && T2->isReferenceType())) {
51 (T1->isReferenceType() && T2->isReferenceType())) {
52 T1 = T1->getPointeeType();
53 T2 = T2->getPointeeType();
72 return T->isFunctionType() || T->isFunctionPointerType() ||
72 return T->isFunctionType() || T->isFunctionPointerType() ||
73 T->isMemberFunctionPointerType();
90 DestTypeAsWritten->isRecordType() &&
91 !DestTypeAsWritten->isElaboratedTypeSpecifier();
187 if (DestType->isReferenceType()) {
202 if ((SourceType->isBuiltinType() || SourceType->isEnumeralType()) &&
202 if ((SourceType->isBuiltinType() || SourceType->isEnumeralType()) &&
203 (DestType->isBuiltinType() || DestType->isEnumeralType())) {
203 (DestType->isBuiltinType() || DestType->isEnumeralType())) {
211 if (SourceType->isVoidPointerType())
tools/clang/tools/extra/clang-tidy/google/ExplicitConstructorCheck.cpp 75 if (const auto *TS = Type->getAs<TemplateSpecializationType>()) {
79 if (const auto *RT = Type->getAs<RecordType>()) {
tools/clang/tools/extra/clang-tidy/google/NonConstReferences.cpp 82 if (ReferencedType->isFunctionProtoType())
86 if (ReferencedType->isDependentType())
111 return T->isReferenceType() &&
tools/clang/tools/extra/clang-tidy/hicpp/MultiwayPathsCoveredCheck.cpp 84 if (T->isBooleanType())
86 else if (T->isIntegralType(Context))
tools/clang/tools/extra/clang-tidy/llvm/TwineLocalCheck.cpp 47 if (VD->getType()->getCanonicalTypeUnqualified() ==
48 C->getType()->getCanonicalTypeUnqualified()) {
tools/clang/tools/extra/clang-tidy/misc/MisplacedConstCheck.cpp 35 if (!QT->isPointerType())
42 QualType(QT->getPointeeType().getTypePtr(), Qualifiers::Const));
tools/clang/tools/extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp 55 const auto *FPT = Node.getType()->castAs<FunctionProtoType>();
119 if (BS.getType()->isDependentType())
121 if (const auto *BaseRD = BS.getType()->getAsCXXRecordDecl())
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp 462 return ParamType->isReferenceType() &&
481 !OperatorDecl->getType()->castAs<FunctionType>()->isConst())
tools/clang/tools/extra/clang-tidy/misc/StaticAssertCheck.cpp 104 if (IsAlwaysFalse && (!CastExpr || CastExpr->getType()->isPointerType())) {
tools/clang/tools/extra/clang-tidy/misc/ThrowByValueCatchByReferenceCheck.cpp 75 if (qualType->isPointerType()) {
142 if (const auto *PT = caughtType.getCanonicalType()->getAs<PointerType>()) {
148 if (!PT->getPointeeType()->isAnyCharacterType())
150 } else if (!caughtType->isReferenceType()) {
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp 119 if (const auto *ET = ECD->getType()->getAs<EnumType>())
135 if (auto *RD = Used->getAsType()->getAsCXXRecordDecl())
tools/clang/tools/extra/clang-tidy/modernize/DeprecatedIosBaseAliasesCheck.cpp 57 bool Fix = HasReplacement && !TL->getType()->isDependentType();
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertCheck.cpp 402 !Cast->getType().isNull() && Cast->getType()->isFundamentalType()))
440 if (!CType->isPointerType())
442 CType = CType->getPointeeType();
539 if (AliasVarType->isReferenceType()) {
618 if (!Descriptor.ElemType.isNull() && Descriptor.ElemType->isFundamentalType())
695 if (!Type->isPointerType()) {
698 Type = Type->getPointeeType();
740 CanonicalInitVarType->getPointeeType().isConstQualified();
741 Descriptor.ElemType = CanonicalInitVarType->getPointeeType();
790 if (CanonicalBeginType->isPointerType() &&
791 CanonicalInitVarType->isPointerType()) {
795 CanonicalBeginType->getPointeeType(),
796 CanonicalInitVarType->getPointeeType()))
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.cpp 256 return Idx && Idx->getType()->isIntegerType() &&
371 if (!DeclarationType.isNull() && DeclarationType->isReferenceType())
572 if (!ExprType->isPointerType())
tools/clang/tools/extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp 125 if (New->getType()->getPointeeType()->getContainedAutoType())
125 if (New->getType()->getPointeeType()->getContainedAutoType())
409 if (const CXXRecordDecl *RD = New->getType()->getPointeeCXXRecordDecl()) {
tools/clang/tools/extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp 23 if (auto PT = QT->getAs<PointerType>()) {
26 if (auto *MPT = QT->getAs<MemberPointerType>()) {
29 if (auto FP = QT->getAs<FunctionProtoType>()) {
tools/clang/tools/extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp 21 switch (InitType->getScalarTypeKind()) {
32 switch (InitType->castAs<BuiltinType>()->getKind()) {
50 switch (InitType->castAs<BuiltinType>()->getKind()) {
61 InitType->castAs<ComplexType>()->getElementType());
64 switch (InitType->castAs<BuiltinType>()->getKind()) {
259 bool CanAssign = UseAssignment && (!ValueInit || !Init->getInit()->getType()->isEnumeralType());
tools/clang/tools/extra/clang-tidy/modernize/UseNodiscardCheck.cpp 54 return Node.getReturnType()->isTemplateTypeParmType() ||
55 Node.getReturnType()->isInstantiationDependentType();
62 return Node->isInstantiationDependentType();
71 return (Node->isTemplateTypeParmType() || Node->isPointerType() ||
71 return (Node->isTemplateTypeParmType() || Node->isPointerType() ||
72 (Node->isReferenceType() &&
74 Node->isInstantiationDependentType());
tools/clang/tools/extra/clang-tidy/modernize/UseNoexceptCheck.cpp 68 FnTy = FuncDecl->getType()->getAs<FunctionProtoType>();
75 ->getAs<Type>()
77 ->getAs<FunctionProtoType>();
tools/clang/tools/extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp 251 if (Type->isPointerType())
253 Type->castAs<PointerType>()->getPointeeType());
254 if (Type->isReferenceType())
256 Type->castAs<ReferenceType>()->getPointeeType());
401 if (F->getDeclaredReturnType()->isFunctionPointerType() ||
402 F->getDeclaredReturnType()->isMemberFunctionPointerType() ||
403 F->getDeclaredReturnType()->isMemberPointerType() ||
404 F->getDeclaredReturnType()->getAs<DecltypeType>() != nullptr) {
tools/clang/tools/extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp 102 FunctorParentLoc.getType()->castAs<TemplateSpecializationType>();
108 if (ParentArgType->isRecordType() &&
109 ParentArgType->getAsCXXRecordDecl() ==
110 Functor->getAsType()->getAsCXXRecordDecl())
tools/clang/tools/extra/clang-tidy/modernize/UseUsingCheck.cpp 95 if (MatchedDecl->getUnderlyingType()->isArrayType() || StartLoc.isMacroID())
tools/clang/tools/extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp 21 if (const auto *LeftRefType = Left->getAs<ReferenceType>())
23 if (const auto *RightRefType = Right->getAs<ReferenceType>())
25 return Left->getCanonicalTypeUnqualified() ==
26 Right->getCanonicalTypeUnqualified();
tools/clang/tools/extra/clang-tidy/performance/MoveConstArgCheck.cpp 79 if (const CXXRecordDecl *R = Arg->getType()->getAsCXXRecordDecl()) {
tools/clang/tools/extra/clang-tidy/performance/MoveConstructorInitCheck.cpp 60 const auto *RD = QT->getAsCXXRecordDecl();
tools/clang/tools/extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp 45 const auto *ProtoType = Decl->getType()->getAs<FunctionProtoType>();
tools/clang/tools/extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp 28 bool IsVector = Node.getReturnType()->isVectorType();
31 if (Type->isPointerType())
32 Type = Type->getPointeeType();
33 if (Type->isVectorType())
tools/clang/tools/extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp 121 if (E->getType()->isPointerType())
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp 47 return Type->isUnsignedIntegerType() ? "0u" : "0";
202 (DestType->isPointerType() || DestType->isMemberPointerType()) &&
202 (DestType->isPointerType() || DestType->isMemberPointerType()) &&
207 if (DestType->isFloatingType()) {
214 if (DestType->isUnsignedIntegerType()) {
tools/clang/tools/extra/clang-tidy/readability/IsolateDeclarationCheck.cpp 62 const auto *Pointee = T->getPointeeType()->castAs<FunctionType>();
150 if (FirstDecl->getType()->isFunctionPointerType())
tools/clang/tools/extra/clang-tidy/readability/NamedParameterCheck.cpp 56 Parm->getType()->isSpecificBuiltinType(BuiltinType::Int))
65 if (auto Typedef = Parm->getType()->getAs<clang::TypedefType>())
70 if (Parm->getType().getCanonicalType()->isNullPtrType())
tools/clang/tools/extra/clang-tidy/readability/NonConstParameterCheck.cpp 94 if ((T->isPointerType() && !T->getPointeeType().isConstQualified()) ||
94 if ((T->isPointerType() && !T->getPointeeType().isConstQualified()) ||
95 T->isArrayType())
103 if (!T->isPointerType() || T->getPointeeType().isConstQualified() ||
103 if (!T->isPointerType() || T->getPointeeType().isConstQualified() ||
104 !(T->getPointeeType()->isIntegerType() ||
104 !(T->getPointeeType()->isIntegerType() ||
105 T->getPointeeType()->isFloatingType()))
105 T->getPointeeType()->isFloatingType()))
163 if (T->isPointerType() && T->getPointeeType().isConstQualified())
163 if (T->isPointerType() && T->getPointeeType().isConstQualified())
179 if (T->isPointerType() && !T->getPointeeType().isConstQualified())
179 if (T->isPointerType() && !T->getPointeeType().isConstQualified())
tools/clang/tools/extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp 155 ImpCast->getSubExpr()->getType()->isBooleanType()) {
168 return !E->getType()->isBooleanType();
tools/clang/tools/extra/clang-tidy/readability/StaticAccessedThroughInstanceCheck.cpp 20 if (const ElaboratedType *ElType = QType->getAs<ElaboratedType>()) {
63 BaseExpr->getType()->isPointerType()
64 ? BaseExpr->getType()->getPointeeType().getUnqualifiedType()
tools/clang/tools/extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.cpp 50 if (PtrExpr->getType()->isDependentType())
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.cpp 127 if (const auto *FPT = Func->getType()->getAs<FunctionProtoType>()) {
146 ThrownExpr->getType()->getUnqualifiedDesugaredType();
150 ->getUnqualifiedDesugaredType();
152 ThrownExpr->getType()->getUnqualifiedDesugaredType());
172 Catch->getCaughtType()->getUnqualifiedDesugaredType();
176 ->getUnqualifiedDesugaredType();
tools/clang/tools/extra/clang-tidy/utils/TypeTraits.cpp 22 auto *Record = Type->getAsCXXRecordDecl();
29 auto *Record = Type->getAsCXXRecordDecl();
43 if (Type->isDependentType() || Type->isIncompleteType())
43 if (Type->isDependentType() || Type->isIncompleteType())
48 !Type->isObjCLifetimeType();
96 if (Type->isArrayType())
102 if (Type->isIncompleteType())
116 if (Type->isObjCLifetimeType())
123 if (CanonicalType->isDependentType())
127 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
127 if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
130 if (const auto *RT = CanonicalType->getAs<RecordType>()) {
139 auto *Record = Type->getAsCXXRecordDecl();
145 auto *Record = Type->getAsCXXRecordDecl();
tools/clang/tools/extra/clangd/ExpectedTypes.cpp 23 if (T.isNull() || T->isDependentType())
28 if (T->isBooleanType())
30 if (T->isIntegerType() && !T->isEnumeralType())
30 if (T->isIntegerType() && !T->isEnumeralType())
32 if (T->isFloatingType() && !T->isComplexType())
32 if (T->isFloatingType() && !T->isComplexType())
36 if (T->isArrayType()) // Decay arrays to pointers.
37 return Ctx.getPointerType(QualType(T->getArrayElementTypeNoTypeQual(), 0))
58 if (auto FuncT = T->getAs<FunctionType>()) {
tools/clang/tools/extra/clangd/Selection.cpp 132 OS << TL->getType()->getTypeClassName() << "TypeLoc";
tools/clang/tools/extra/clangd/SemanticHighlighting.cpp 260 auto *AT = D->getType()->getContainedAutoType();
tools/clang/tools/extra/clangd/XRefs.cpp 575 while (!QT->getPointeeType().isNull())
576 QT = QT->getPointeeType();
578 if (const auto *CD = QT->getAsCXXRecordDecl())
783 if (auto *AT = D->getType()->getContainedAutoType()) {
812 const AutoType *AT = D->getReturnType()->getContainedAutoType();
tools/clang/tools/libclang/CIndex.cpp 562 if (const ObjCObjectType *ObjT = A->getInterface()->getAs<ObjCObjectType>())
792 if (const FunctionType *AFT = Ty->getAs<FunctionType>()) {
1556 if (const TypedefType *Typedef = VisitType->getAs<TypedefType>())
3911 if (rettype->isVectorType() || callExpr->getNumArgs() > 1)
3914 if (rettype->isIntegralType(ctx) || rettype->isRealFloatingType()) {
3914 if (rettype->isIntegralType(ctx) || rettype->isRealFloatingType()) {
3916 !callExpr->getArg(0)->getType()->isIntegralType(ctx))
tools/clang/tools/libclang/CIndexCodeCompletion.cpp 616 if (const TagType *Tag = baseType->getAs<TagType>())
621 baseType->getAs<ObjCObjectPointerType>())
624 else if (const ObjCObjectType *Obj = baseType->getAs<ObjCObjectType>())
628 baseType->getAs<InjectedClassNameType>())
tools/clang/tools/libclang/CXCursor.cpp 1133 if (const ElaboratedType *ElabT = Ty->getAs<ElaboratedType>()) {
1139 if (const TypedefType *Typedef = Ty->getAs<TypedefType>())
1141 if (const TagType *Tag = Ty->getAs<TagType>())
1143 if (const TemplateTypeParmType *TemplP = Ty->getAs<TemplateTypeParmType>())
tools/clang/tools/libclang/CXIndexDataConsumer.cpp 317 if (const ObjCObjectType *ObjectTy = Ty->getAs<ObjCObjectType>()) {
347 if (const TypedefType *TDT = T->getAs<TypedefType>()) {
350 TST = T->getAs<TemplateSpecializationType>()) {
352 } else if (const RecordType *RT = T->getAs<RecordType>()) {
tools/clang/tools/libclang/CXType.cpp 130 if (auto *ATT = T->getAs<AttributedType>()) {
138 if (auto *PTT = T->getAs<ParenType>()) {
154 if (const DecayedType *DT = T->getAs<DecayedType>()) {
179 if (const auto *Specialization = Type->getAs<TemplateSpecializationType>())
182 if (const auto *RecordDecl = Type->getAsCXXRecordDecl()) {
433 const TypedefType *TT = T->getAs<TypedefType>();
633 if (const FunctionProtoType *FD = T->getAs<FunctionProtoType>())
636 if (T->getAs<FunctionNoProtoType>())
647 if (const FunctionType *FD = T->getAs<FunctionType>()) {
681 if (const FunctionProtoType *FD = T->getAs<FunctionProtoType>()) {
685 if (T->getAs<FunctionNoProtoType>()) {
697 if (const FunctionProtoType *FD = T->getAs<FunctionProtoType>()) {
713 if (const FunctionType *FD = T->getAs<FunctionType>())
766 if (const auto *FD = T->getAs<FunctionProtoType>())
891 return QT->isIncompleteArrayType() || !QT->isIncompleteType();
891 return QT->isIncompleteArrayType() || !QT->isIncompleteType();
902 if (QT->isReferenceType())
906 if (QT->isDependentType())
934 if (QT->isReferenceType())
942 if (QT->isIncompleteType())
944 if (QT->isDependentType())
946 if (!QT->isConstantSizeType())
954 if (QT->isVoidType() || QT->isFunctionType())
954 if (QT->isVoidType() || QT->isFunctionType())
960 return QT->isIncompleteType() && !QT->isIncompleteArrayType();
960 return QT->isIncompleteType() && !QT->isIncompleteArrayType();
968 if (FQT->isDependentType())
971 if (const RecordType *ChildType = I->getType()->getAs<RecordType>()) {
998 if (RT->isIncompleteType())
1000 if (RT->isDependentType())
1045 if (auto *ATT = T->getAs<AttributedType>())
1074 const FunctionProtoType *FD = QT->getAs<FunctionProtoType>();
1309 if (auto nullability = T->getNullability(Ctx)) {
tools/clang/unittests/AST/ASTImporterTest.cpp 4235 ASSERT_TRUE(ToD->getUnderlyingType()->isIncompleteType());
4247 ASSERT_FALSE(FromD->getUnderlyingType()->isIncompleteType());
4251 EXPECT_FALSE(ImportedD->getUnderlyingType()->isIncompleteType());
tools/clang/unittests/AST/ASTTraverserTest.cpp 230 ASSERT_TRUE(TL.getType()->isPointerType());
tools/clang/unittests/AST/SourceLocationTest.cpp 687 if (TL.getType()->isPointerType()) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp 333 if (expr_qual_type->getAs<ObjCObjectType>() != nullptr)
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp 351 ClangUtil::GetQualType(clang_type)->getAs<TagType>();
389 ClangUtil::GetQualType(clang_type)->getAs<TagType>();
1841 const RecordType *base_record_type = base_type->getAs<RecordType>();
2079 copied_qual_type->getCanonicalTypeInternal().isNull())
2230 } else if (const TagType *tag_type = qual_type->getAs<TagType>()) {
2237 qual_type->getAs<ObjCObjectType>()) {
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp 267 context = clang::TagDecl::castToDeclContext(parent_qt->getAsTagDecl());
472 if (auto *tag = qt->getAsTagDecl()) {
518 clang::TagDecl *tag = qt->getAsTagDecl();
559 clang::TagDecl *tag = qt->getAsTagDecl();
637 clang::TagDecl *tag = qt->getAsTagDecl();
972 clang::TagDecl *tag = qt->getAsTagDecl();
tools/lldb/source/Symbol/ClangASTContext.cpp 174 specifier->getType()->getAs<clang::RecordType>()->getDecl())) {
1742 base_class->getType()->getAs<RecordType>()->getDecl());
1776 return !ClangASTContext::RecordHasFields(b->getType()->getAsCXXRecordDecl());
2561 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2597 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2610 clang::CXXRecordDecl *cxx_record_decl = qual_type->getAsCXXRecordDecl();
2753 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2790 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2830 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2919 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
2923 qual_type->getAs<clang::VectorType>();
2935 qual_type->getAs<clang::ExtVectorType>();
2972 return GetQualType(type).getUnqualifiedType()->isCharType();
3015 if (qual_type->isFunctionType()) {
3027 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3072 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3077 qual_type->getAsCXXRecordDecl();
3100 if (field_qual_type->isFloatingType()) {
3101 if (field_qual_type->isComplexType())
3115 } else if (field_qual_type->isVectorType() ||
3116 field_qual_type->isExtVectorType()) {
3196 if (qual_type->isFunctionPointerType())
3199 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3239 if (qual_type->isBlockPointerType()) {
3242 qual_type->getAs<clang::BlockPointerType>();
3251 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3297 llvm::dyn_cast<clang::BuiltinType>(qual_type->getCanonicalTypeInternal());
3313 GetCanonicalQualType(type)->getCanonicalTypeInternal());
3329 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3401 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3488 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3545 qual_type->getCanonicalTypeInternal())) {
3555 qual_type->getCanonicalTypeInternal())) {
3563 qual_type->getCanonicalTypeInternal())) {
3618 return ClangUtil::GetCanonicalQualType(type)->isObjCObjectOrInterfaceType();
3626 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3634 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3641 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3672 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3687 qual_type->getPointeeType().getTypePtrOrNull()) {
3752 pointee_qual_type.getCanonicalType()->getTypeClass();
3770 pointee_qual_type->getAsCXXRecordDecl();
3832 return GetQualType(type)->getTypeClass() == clang::Type::Typedef;
3838 return GetCanonicalQualType(type)->isVoidType();
3858 clang::CXXRecordDecl *cxx_record_decl = qual_type->getAsCXXRecordDecl();
3874 return !qual_type.isNull() && qual_type->getAsCXXRecordDecl() != nullptr;
3894 if (!qual_type.isNull() && qual_type->isObjCObjectPointerType()) {
3896 if (!qual_type->isObjCClassType() && !qual_type->isObjCIdType()) {
3896 if (!qual_type->isObjCClassType() && !qual_type->isObjCIdType()) {
3932 qual_type->getAs<clang::TypedefType>();
3954 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
3958 qual_type->getAs<clang::AttributedType>()
3963 qual_type->getCanonicalTypeInternal());
4021 this, qual_type->getPointeeType().getAsOpaquePtr());
4028 qual_type->getCanonicalTypeInternal());
4031 if (complex_element_type->isIntegerType())
4033 else if (complex_element_type->isFloatingType())
4109 this, qual_type->getPointeeType().getAsOpaquePtr());
4121 this, qual_type->getPointeeType().getAsOpaquePtr());
4125 if (qual_type->getAsCXXRecordDecl())
4162 qual_type->getCanonicalTypeInternal());
4184 if (qual_type->isAnyPointerType()) {
4185 if (qual_type->isObjCObjectPointerType())
4187 if (qual_type->getPointeeCXXRecordDecl())
4190 clang::QualType pointee_type(qual_type->getPointeeType());
4191 if (pointee_type->getPointeeCXXRecordDecl())
4193 if (pointee_type->isObjCObjectOrInterfaceType())
4195 if (pointee_type->isObjCClassType())
4201 if (qual_type->isObjCObjectOrInterfaceType())
4203 if (qual_type->getAsCXXRecordDecl())
4205 switch (qual_type->getTypeClass()) {
4269 switch (qual_type->getTypeClass()) {
4307 if (qual_type->isComplexType())
4474 if (qual_type->isPointerType())
4476 GetFullyUnqualifiedType_Impl(ast, qual_type->getPointeeType()));
4536 switch (qual_type->getTypeClass()) {
4553 qual_type->getAs<clang::ObjCObjectPointerType>();
4625 switch (qual_type->getTypeClass()) {
4663 qual_type->getAs<clang::ObjCObjectPointerType>();
4813 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
4899 if (const clang::RecordType *rt = qual_type->getAs<clang::RecordType>())
4901 if (const clang::EnumType *et = qual_type->getAs<clang::EnumType>())
4959 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
5001 if (qual_type->isIncompleteArrayType())
5003 qual_type->getArrayElementTypeNoTypeQual()
5006 if (qual_type->isObjCObjectOrInterfaceType())
5011 if (qual_type->isFunctionProtoType())
5036 switch (qual_type->getTypeClass()) {
5220 if (qual_type->isComplexType())
5224 qual_type->getAsComplexIntegerType();
5323 switch (qual_type->getTypeClass()) {
5405 if (qual_type->isComplexType())
5506 if (qual_type->isIncompleteArrayType())
5521 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
5558 ->getAs<clang::RecordType>()
5716 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
5818 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
5871 qual_type->getAs<clang::ObjCObjectPointerType>();
5968 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6020 qual_type->getAs<clang::ObjCObjectPointerType>();
6094 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6099 qual_type->getAsCXXRecordDecl();
6112 qual_type->getAsObjCQualifiedInterfaceType();
6125 qual_type->getAs<clang::ObjCInterfaceType>();
6169 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6174 qual_type->getAsCXXRecordDecl();
6214 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6219 qual_type->getAsCXXRecordDecl();
6234 ->getAs<clang::RecordType>()
6260 qual_type->getAsObjCQualifiedInterfaceType();
6282 qual_type->getAs<clang::ObjCInterfaceType>();
6337 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6342 qual_type->getAsCXXRecordDecl();
6357 ->getAs<clang::RecordType>()
6412 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
6580 parent_qual_type->getTypeClass();
6632 base_class->getType()->getAs<clang::RecordType>()->getDecl());
6640 base_class->getType()->getAs<clang::RecordType>()->getDecl());
6913 const clang::ArrayType *array = GetQualType(type)->getAsArrayTypeUnsafe();
7154 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
7227 ->getAs<clang::RecordType>()
7425 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
7450 ->getAs<clang::RecordType>()
7648 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
7653 qual_type->getAsCXXRecordDecl();
7703 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
7709 qual_type->getAsCXXRecordDecl();
7852 return GetCanonicalQualType(type)->getAsCXXRecordDecl();
7907 field->getType()->getAs<clang::TagType>()) {
7982 field_qual_type->getAs<clang::RecordType>();
8052 if (last_field_pos->getType()->isIncompleteArrayType())
8133 record_qual_type->getAsCXXRecordDecl();
8697 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
8700 clang::CXXRecordDecl *cxx_record_decl = qual_type->getAsCXXRecordDecl();
8770 const clang::TagType *tag_type = qual_type->getAs<clang::TagType>();
8780 qual_type->getAs<clang::ObjCObjectType>();
8799 const clang::TagType *tag_type = qual_type->getAs<clang::TagType>();
8817 const clang::EnumType *enutype = qual_type->getAs<clang::EnumType>();
8842 if (enum_decl->getIntegerType()->isSignedIntegerType())
9015 switch (qual_type->getTypeClass()) {
9039 base_class->getType()->getAs<clang::RecordType>()->getDecl());
9198 element_qual_type->getCanonicalTypeInternal().getTypePtr();
9426 if (qual_type->isSignedIntegerOrEnumerationType())
9475 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
9649 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
9670 qual_type->getAs<clang::TypedefType>();
9746 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
9750 qual_type->getAsCXXRecordDecl();
tools/lldb/source/Symbol/ClangASTImporter.cpp 350 QualType::getFromOpaquePtr(type)->getTypeClassName(),
356 if (auto *t = QualType::getFromOpaquePtr(type)->getAs<TagType>())
414 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
418 qual_type->getAsCXXRecordDecl();
490 const clang::Type::TypeClass type_class = qual_type->getTypeClass();
494 qual_type->getAsCXXRecordDecl();
706 if (const TagType *tag_type = type->getAs<TagType>()) {
739 if (const ObjCObjectType *objc_object_type = type->getAs<ObjCObjectType>()) {
776 if (const TagType *tag_type = type->getAs<TagType>()) {
784 if (const ObjCObjectType *objc_object_type = type->getAs<ObjCObjectType>()) {
791 if (const ArrayType *array_type = type->getAsArrayTypeUnsafe()) {
794 if (const AtomicType *atomic_type = type->getAs<AtomicType>()) {
tools/lldb/source/Symbol/ClangUtil.cpp 56 return qual_type->getAsTagDecl();
tools/lldb/tools/lldb-instr/Instrument.cpp 200 ShouldInsertDummy |= T->isFunctionPointerType() || T->isVoidPointerType();
200 ShouldInsertDummy |= T->isFunctionPointerType() || T->isVoidPointerType();
248 bool ShouldRecordResult = ReturnType->isStructureOrClassType() ||
249 ReturnType->getPointeeCXXRecordDecl();