diff options
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprObjC.cpp | 146 |
1 files changed, 75 insertions, 71 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index b291fc8691d..52909aced16 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -50,8 +50,8 @@ ExprResult Sema::ParseObjCStringLiteral(SourceLocation *AtLocs, // ObjC strings can't be wide or UTF. if (!S->isAscii()) { - Diag(S->getLocStart(), diag::err_cfstring_literal_not_string_constant) - << S->getSourceRange(); + Diag(S->getBeginLoc(), diag::err_cfstring_literal_not_string_constant) + << S->getSourceRange(); return true; } @@ -107,8 +107,8 @@ ExprResult Sema::BuildObjCStringLiteral(SourceLocation AtLoc, StringLiteral *S){ } else { // If there is no NSConstantString interface defined then treat this // as error and recover from it. - Diag(S->getLocStart(), diag::err_no_nsconstant_string_class) << NSIdent - << S->getSourceRange(); + Diag(S->getBeginLoc(), diag::err_no_nsconstant_string_class) + << NSIdent << S->getSourceRange(); Ty = Context.getObjCIdType(); } } else { @@ -399,9 +399,8 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, InitializedEntity Entity = InitializedEntity::InitializeParameter(S.Context, T, /*Consumed=*/false); - InitializationKind Kind - = InitializationKind::CreateCopy(Element->getLocStart(), - SourceLocation()); + InitializationKind Kind = InitializationKind::CreateCopy( + Element->getBeginLoc(), SourceLocation()); InitializationSequence Seq(S, Entity, Kind, Element); if (!Seq.Failed()) return Seq.Perform(S, Entity, Kind, Element); @@ -432,12 +431,12 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, isa<ObjCBoolLiteralExpr>(OrigElement)) ? 2 : 3; - S.Diag(OrigElement->getLocStart(), diag::err_box_literal_collection) - << Which << OrigElement->getSourceRange() - << FixItHint::CreateInsertion(OrigElement->getLocStart(), "@"); + S.Diag(OrigElement->getBeginLoc(), diag::err_box_literal_collection) + << Which << OrigElement->getSourceRange() + << FixItHint::CreateInsertion(OrigElement->getBeginLoc(), "@"); - Result = S.BuildObjCNumericLiteral(OrigElement->getLocStart(), - OrigElement); + Result = + S.BuildObjCNumericLiteral(OrigElement->getBeginLoc(), OrigElement); if (Result.isInvalid()) return ExprError(); @@ -448,11 +447,11 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, // If this is potentially an Objective-C string literal, add the '@'. else if (StringLiteral *String = dyn_cast<StringLiteral>(OrigElement)) { if (String->isAscii()) { - S.Diag(OrigElement->getLocStart(), diag::err_box_literal_collection) - << 0 << OrigElement->getSourceRange() - << FixItHint::CreateInsertion(OrigElement->getLocStart(), "@"); + S.Diag(OrigElement->getBeginLoc(), diag::err_box_literal_collection) + << 0 << OrigElement->getSourceRange() + << FixItHint::CreateInsertion(OrigElement->getBeginLoc(), "@"); - Result = S.BuildObjCStringLiteral(OrigElement->getLocStart(), String); + Result = S.BuildObjCStringLiteral(OrigElement->getBeginLoc(), String); if (Result.isInvalid()) return ExprError(); @@ -462,8 +461,8 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, } if (!Recovered) { - S.Diag(Element->getLocStart(), diag::err_invalid_collection_element) - << Element->getType(); + S.Diag(Element->getBeginLoc(), diag::err_invalid_collection_element) + << Element->getType(); return ExprError(); } } @@ -481,9 +480,9 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, break; } if (!hasMacro) - S.Diag(Element->getLocStart(), + S.Diag(Element->getBeginLoc(), diag::warn_concatenated_nsarray_literal) - << Element->getType(); + << Element->getType(); } } } @@ -491,9 +490,9 @@ static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, // Make sure that the element has the type that the container factory // function expects. return S.PerformCopyInitialization( - InitializedEntity::InitializeParameter(S.Context, T, - /*Consumed=*/false), - Element->getLocStart(), Element); + InitializedEntity::InitializeParameter(S.Context, T, + /*Consumed=*/false), + Element->getBeginLoc(), Element); } ExprResult Sema::BuildObjCBoxedExpr(SourceRange SR, Expr *ValueExpr) { @@ -1034,8 +1033,8 @@ ExprResult Sema::BuildObjCDictionaryLiteral(SourceRange SR, !Element.Value->containsUnexpandedParameterPack()) { Diag(Element.EllipsisLoc, diag::err_pack_expansion_without_parameter_packs) - << SourceRange(Element.Key->getLocStart(), - Element.Value->getLocEnd()); + << SourceRange(Element.Key->getBeginLoc(), + Element.Value->getLocEnd()); return ExprError(); } @@ -1693,12 +1692,12 @@ bool Sema::CheckMessageArgumentTypes(QualType ReceiverType, } else { // Check for extra arguments to non-variadic methods. if (Args.size() != NumNamedArgs) { - Diag(Args[NumNamedArgs]->getLocStart(), + Diag(Args[NumNamedArgs]->getBeginLoc(), diag::err_typecheck_call_too_many_args) - << 2 /*method*/ << NumNamedArgs << static_cast<unsigned>(Args.size()) - << Method->getSourceRange() - << SourceRange(Args[NumNamedArgs]->getLocStart(), - Args.back()->getLocEnd()); + << 2 /*method*/ << NumNamedArgs << static_cast<unsigned>(Args.size()) + << Method->getSourceRange() + << SourceRange(Args[NumNamedArgs]->getBeginLoc(), + Args.back()->getLocEnd()); } } @@ -2323,7 +2322,7 @@ static void checkFoundationAPI(Sema &S, SourceLocation Loc, << (!Ret->isRecordType() ? /*Vector*/ 2 : Ret->isUnionType() ? /*Union*/ 1 : /*Struct*/ 0); - S.Diag(ImpliedMethod->getLocStart(), + S.Diag(ImpliedMethod->getBeginLoc(), diag::note_objc_unsafe_perform_selector_method_declared_here) << ImpliedMethod->getSelector() << Ret; } @@ -2582,7 +2581,7 @@ static bool isMethodDeclaredInRootProtocol(Sema &S, const ObjCMethodDecl *M) { return false; const IdentifierInfo *II = S.NSAPIObj->getNSClassId(NSAPI::ClassId_NSObject); if (const auto *RootClass = dyn_cast_or_null<ObjCInterfaceDecl>( - S.LookupSingleName(S.TUScope, II, Protocol->getLocStart(), + S.LookupSingleName(S.TUScope, II, Protocol->getBeginLoc(), Sema::LookupOrdinaryName))) { for (const ObjCProtocolDecl *P : RootClass->all_referenced_protocols()) { if (P->getCanonicalDecl() == Protocol->getCanonicalDecl()) @@ -2635,7 +2634,7 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver, "use it instead."); // The location of the receiver. - SourceLocation Loc = SuperLoc.isValid()? SuperLoc : Receiver->getLocStart(); + SourceLocation Loc = SuperLoc.isValid() ? SuperLoc : Receiver->getBeginLoc(); SourceRange RecRange = SuperLoc.isValid()? SuperLoc : Receiver->getSourceRange(); ArrayRef<SourceLocation> SelectorSlotLocs; @@ -2856,8 +2855,8 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver, return ExprError(); forwardClass = OCIType->getInterfaceDecl(); - Diag(Receiver ? Receiver->getLocStart() - : SuperLoc, diag::note_receiver_is_id); + Diag(Receiver ? Receiver->getBeginLoc() : SuperLoc, + diag::note_receiver_is_id); Method = nullptr; } else { Method = ClassDecl->lookupInstanceMethod(Sel); @@ -3776,8 +3775,8 @@ static bool CheckObjCBridgeNSCast(Sema &S, QualType castType, Expr *castExpr, (CastClass && CastClass->isSuperClassOf(ExprClass))) return true; if (warn) - S.Diag(castExpr->getLocStart(), diag::warn_objc_invalid_bridge) - << T << Target->getName() << castType->getPointeeType(); + S.Diag(castExpr->getBeginLoc(), diag::warn_objc_invalid_bridge) + << T << Target->getName() << castType->getPointeeType(); return false; } else if (castType->isObjCIdType() || (S.Context.ObjCObjectAdoptsQTypeProtocols( @@ -3788,20 +3787,21 @@ static bool CheckObjCBridgeNSCast(Sema &S, QualType castType, Expr *castExpr, return true; else { if (warn) { - S.Diag(castExpr->getLocStart(), diag::warn_objc_invalid_bridge) - << T << Target->getName() << castType; - S.Diag(TDNDecl->getLocStart(), diag::note_declared_at); - S.Diag(Target->getLocStart(), diag::note_declared_at); + S.Diag(castExpr->getBeginLoc(), diag::warn_objc_invalid_bridge) + << T << Target->getName() << castType; + S.Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); + S.Diag(Target->getBeginLoc(), diag::note_declared_at); } return false; } } } else if (!castType->isObjCIdType()) { - S.Diag(castExpr->getLocStart(), diag::err_objc_cf_bridged_not_interface) - << castExpr->getType() << Parm; - S.Diag(TDNDecl->getLocStart(), diag::note_declared_at); + S.Diag(castExpr->getBeginLoc(), + diag::err_objc_cf_bridged_not_interface) + << castExpr->getType() << Parm; + S.Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); if (Target) - S.Diag(Target->getLocStart(), diag::note_declared_at); + S.Diag(Target->getBeginLoc(), diag::note_declared_at); } return true; } @@ -3841,9 +3841,10 @@ static bool CheckObjCBridgeCFCast(Sema &S, QualType castType, Expr *castExpr, (ExprClass && CastClass->isSuperClassOf(ExprClass))) return true; if (warn) { - S.Diag(castExpr->getLocStart(), diag::warn_objc_invalid_bridge_to_cf) - << castExpr->getType()->getPointeeType() << T; - S.Diag(TDNDecl->getLocStart(), diag::note_declared_at); + S.Diag(castExpr->getBeginLoc(), + diag::warn_objc_invalid_bridge_to_cf) + << castExpr->getType()->getPointeeType() << T; + S.Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); } return false; } else if (castExpr->getType()->isObjCIdType() || @@ -3855,20 +3856,22 @@ static bool CheckObjCBridgeCFCast(Sema &S, QualType castType, Expr *castExpr, return true; else { if (warn) { - S.Diag(castExpr->getLocStart(), diag::warn_objc_invalid_bridge_to_cf) - << castExpr->getType() << castType; - S.Diag(TDNDecl->getLocStart(), diag::note_declared_at); - S.Diag(Target->getLocStart(), diag::note_declared_at); + S.Diag(castExpr->getBeginLoc(), + diag::warn_objc_invalid_bridge_to_cf) + << castExpr->getType() << castType; + S.Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); + S.Diag(Target->getBeginLoc(), diag::note_declared_at); } return false; } } } - S.Diag(castExpr->getLocStart(), diag::err_objc_ns_bridged_invalid_cfobject) - << castExpr->getType() << castType; - S.Diag(TDNDecl->getLocStart(), diag::note_declared_at); + S.Diag(castExpr->getBeginLoc(), + diag::err_objc_ns_bridged_invalid_cfobject) + << castExpr->getType() << castType; + S.Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); if (Target) - S.Diag(Target->getLocStart(), diag::note_declared_at); + S.Diag(Target->getBeginLoc(), diag::note_declared_at); return true; } return false; @@ -3945,8 +3948,8 @@ void Sema::CheckObjCBridgeRelatedCast(QualType castType, Expr *castExpr) { ARCConversionTypeClass castExprACTC = classifyTypeForARCConversion(castType); if (srcExprACTC != ACTC_retainable || castExprACTC != ACTC_coreFoundation) return; - CheckObjCBridgeRelatedConversions(castExpr->getLocStart(), - castType, SrcType, castExpr); + CheckObjCBridgeRelatedConversions(castExpr->getBeginLoc(), castType, SrcType, + castExpr); } bool Sema::CheckTollFreeBridgeStaticCast(QualType castType, Expr *castExpr, @@ -3991,7 +3994,7 @@ bool Sema::checkObjCBridgeRelatedComponents(SourceLocation Loc, if (Diagnose) { Diag(Loc, diag::err_objc_bridged_related_invalid_class) << RCId << SrcType << DestType; - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); } return false; } @@ -4002,9 +4005,9 @@ bool Sema::checkObjCBridgeRelatedComponents(SourceLocation Loc, if (Diagnose) { Diag(Loc, diag::err_objc_bridged_related_invalid_class_name) << RCId << SrcType << DestType; - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); if (Target) - Diag(Target->getLocStart(), diag::note_declared_at); + Diag(Target->getBeginLoc(), diag::note_declared_at); } return false; } @@ -4017,7 +4020,7 @@ bool Sema::checkObjCBridgeRelatedComponents(SourceLocation Loc, if (Diagnose) { Diag(Loc, diag::err_objc_bridged_related_known_method) << SrcType << DestType << Sel << false; - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); } return false; } @@ -4031,7 +4034,7 @@ bool Sema::checkObjCBridgeRelatedComponents(SourceLocation Loc, if (Diagnose) { Diag(Loc, diag::err_objc_bridged_related_known_method) << SrcType << DestType << Sel << true; - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); } return false; } @@ -4070,11 +4073,12 @@ Sema::CheckObjCBridgeRelatedConversions(SourceLocation Loc, SourceLocation SrcExprEndLoc = getLocForEndOfToken(SrcExpr->getLocEnd()); // Provide a fixit: [RelatedClass ClassMethod SrcExpr] Diag(Loc, diag::err_objc_bridged_related_known_method) - << SrcType << DestType << ClassMethod->getSelector() << false - << FixItHint::CreateInsertion(SrcExpr->getLocStart(), ExpressionString) - << FixItHint::CreateInsertion(SrcExprEndLoc, "]"); - Diag(RelatedClass->getLocStart(), diag::note_declared_at); - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + << SrcType << DestType << ClassMethod->getSelector() << false + << FixItHint::CreateInsertion(SrcExpr->getBeginLoc(), + ExpressionString) + << FixItHint::CreateInsertion(SrcExprEndLoc, "]"); + Diag(RelatedClass->getBeginLoc(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); QualType receiverType = Context.getObjCInterfaceType(RelatedClass); // Argument. @@ -4113,11 +4117,11 @@ Sema::CheckObjCBridgeRelatedConversions(SourceLocation Loc, Diag(Loc, diag::err_objc_bridged_related_known_method) << SrcType << DestType << InstanceMethod->getSelector() << true - << FixItHint::CreateInsertion(SrcExpr->getLocStart(), "[") + << FixItHint::CreateInsertion(SrcExpr->getBeginLoc(), "[") << FixItHint::CreateInsertion(SrcExprEndLoc, ExpressionString); } - Diag(RelatedClass->getLocStart(), diag::note_declared_at); - Diag(TDNDecl->getLocStart(), diag::note_declared_at); + Diag(RelatedClass->getBeginLoc(), diag::note_declared_at); + Diag(TDNDecl->getBeginLoc(), diag::note_declared_at); ExprResult msg = BuildInstanceMessageImplicit(SrcExpr, SrcType, |