r338291 - Remove trailing space

Fāng-ruì Sòng via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 30 12:52:18 PDT 2018


Oops.. sorry but now they have been committed..
On Mon, Jul 30, 2018 at 12:31 PM Aaron Ballman <aaron at aaronballman.com> wrote:
>
> This is an extraordinary amount of churn for very little value, IMO.
> The same goes for r338291. Were these changes discussed somewhere
> before being committed? I worry about the negative impact for third
> parties having to deal with changes on this scale.
>
> ~Aaron
>
> On Mon, Jul 30, 2018 at 3:24 PM, Fangrui Song via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
> > Modified: cfe/trunk/lib/Sema/SemaExprObjC.cpp
> > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprObjC.cpp?rev=338291&r1=338290&r2=338291&view=diff
> > ==============================================================================
> > --- cfe/trunk/lib/Sema/SemaExprObjC.cpp (original)
> > +++ cfe/trunk/lib/Sema/SemaExprObjC.cpp Mon Jul 30 12:24:48 2018
> > @@ -73,7 +73,7 @@ ExprResult Sema::ParseObjCStringLiteral(
> >                                /*Pascal=*/false, StrTy, &StrLocs[0],
> >                                StrLocs.size());
> >    }
> > -
> > +
> >    return BuildObjCStringLiteral(AtLocs[0], S);
> >  }
> >
> > @@ -92,12 +92,12 @@ ExprResult Sema::BuildObjCStringLiteral(
> >    } else if (getLangOpts().NoConstantCFStrings) {
> >      IdentifierInfo *NSIdent=nullptr;
> >      std::string StringClass(getLangOpts().ObjCConstantStringClass);
> > -
> > +
> >      if (StringClass.empty())
> >        NSIdent = &Context.Idents.get("NSConstantString");
> >      else
> >        NSIdent = &Context.Idents.get(StringClass);
> > -
> > +
> >      NamedDecl *IF = LookupSingleName(TUScope, NSIdent, AtLoc,
> >                                       LookupOrdinaryName);
> >      if (ObjCInterfaceDecl *StrIF = dyn_cast_or_null<ObjCInterfaceDecl>(IF)) {
> > @@ -126,10 +126,10 @@ ExprResult Sema::BuildObjCStringLiteral(
> >        // being an 'id' type.
> >        Ty = Context.getObjCNSStringType();
> >        if (Ty.isNull()) {
> > -        ObjCInterfaceDecl *NSStringIDecl =
> > -          ObjCInterfaceDecl::Create (Context,
> > -                                     Context.getTranslationUnitDecl(),
> > -                                     SourceLocation(), NSIdent,
> > +        ObjCInterfaceDecl *NSStringIDecl =
> > +          ObjCInterfaceDecl::Create (Context,
> > +                                     Context.getTranslationUnitDecl(),
> > +                                     SourceLocation(), NSIdent,
> >                                       nullptr, nullptr, SourceLocation());
> >          Ty = Context.getObjCInterfaceType(NSStringIDecl);
> >          Context.setObjCNSStringType(Ty);
> > @@ -252,16 +252,16 @@ static ObjCMethodDecl *getNSNumberFactor
> >      }
> >      return nullptr;
> >    }
> > -
> > +
> >    // If we already looked up this method, we're done.
> >    if (S.NSNumberLiteralMethods[*Kind])
> >      return S.NSNumberLiteralMethods[*Kind];
> > -
> > +
> >    Selector Sel = S.NSAPIObj->getNSNumberLiteralSelector(*Kind,
> >                                                          /*Instance=*/false);
> > -
> > +
> >    ASTContext &CX = S.Context;
> > -
> > +
> >    // Look up the NSNumber class, if we haven't done so already. It's cached
> >    // in the Sema instance.
> >    if (!S.NSNumberDecl) {
> > @@ -277,7 +277,7 @@ static ObjCMethodDecl *getNSNumberFactor
> >      QualType NSNumberObject = CX.getObjCInterfaceType(S.NSNumberDecl);
> >      S.NSNumberPointer = CX.getObjCObjectPointerType(NSNumberObject);
> >    }
> > -
> > +
> >    // Look for the appropriate method within NSNumber.
> >    ObjCMethodDecl *Method = S.NSNumberDecl->lookupClassMethod(Sel);
> >    if (!Method && S.getLangOpts().DebuggerObjCLiteral) {
> > @@ -304,7 +304,7 @@ static ObjCMethodDecl *getNSNumberFactor
> >
> >    // Note: if the parameter type is out-of-line, we'll catch it later in the
> >    // implicit conversion.
> > -
> > +
> >    S.NSNumberLiteralMethods[*Kind] = Method;
> >    return Method;
> >  }
> > @@ -322,21 +322,21 @@ ExprResult Sema::BuildObjCNumericLiteral
> >      case CharacterLiteral::UTF8:
> >        NumberType = Context.CharTy;
> >        break;
> > -
> > +
> >      case CharacterLiteral::Wide:
> >        NumberType = Context.getWideCharType();
> >        break;
> > -
> > +
> >      case CharacterLiteral::UTF16:
> >        NumberType = Context.Char16Ty;
> >        break;
> > -
> > +
> >      case CharacterLiteral::UTF32:
> >        NumberType = Context.Char32Ty;
> >        break;
> >      }
> >    }
> > -
> > +
> >    // Look for the appropriate method within NSNumber.
> >    // Construct the literal.
> >    SourceRange NR(Number->getSourceRange());
> > @@ -355,33 +355,33 @@ ExprResult Sema::BuildObjCNumericLiteral
> >    if (ConvertedNumber.isInvalid())
> >      return ExprError();
> >    Number = ConvertedNumber.get();
> > -
> > +
> >    // Use the effective source range of the literal, including the leading '@'.
> >    return MaybeBindToTemporary(
> >             new (Context) ObjCBoxedExpr(Number, NSNumberPointer, Method,
> >                                         SourceRange(AtLoc, NR.getEnd())));
> >  }
> >
> > -ExprResult Sema::ActOnObjCBoolLiteral(SourceLocation AtLoc,
> > +ExprResult Sema::ActOnObjCBoolLiteral(SourceLocation AtLoc,
> >                                        SourceLocation ValueLoc,
> >                                        bool Value) {
> >    ExprResult Inner;
> >    if (getLangOpts().CPlusPlus) {
> >      Inner = ActOnCXXBoolLiteral(ValueLoc, Value? tok::kw_true : tok::kw_false);
> >    } else {
> > -    // C doesn't actually have a way to represent literal values of type
> > +    // C doesn't actually have a way to represent literal values of type
> >      // _Bool. So, we'll use 0/1 and implicit cast to _Bool.
> >      Inner = ActOnIntegerConstant(ValueLoc, Value? 1 : 0);
> > -    Inner = ImpCastExprToType(Inner.get(), Context.BoolTy,
> > +    Inner = ImpCastExprToType(Inner.get(), Context.BoolTy,
> >                                CK_IntegralToBoolean);
> >    }
> > -
> > +
> >    return BuildObjCNumericLiteral(AtLoc, Inner.get());
> >  }
> >
> >  /// Check that the given expression is a valid element of an Objective-C
> >  /// collection literal.
> > -static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element,
> > +static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element,
> >                                                      QualType T,
> >                                                      bool ArrayLiteral = false) {
> >    // If the expression is type-dependent, there's nothing for us to do.
> > @@ -393,7 +393,7 @@ static ExprResult CheckObjCCollectionLit
> >      return ExprError();
> >    Element = Result.get();
> >
> > -  // In C++, check for an implicit conversion to an Objective-C object pointer
> > +  // In C++, check for an implicit conversion to an Objective-C object pointer
> >    // type.
> >    if (S.getLangOpts().CPlusPlus && Element->getType()->isRecordType()) {
> >      InitializedEntity Entity
> > @@ -413,15 +413,15 @@ static ExprResult CheckObjCCollectionLit
> >    Result = S.DefaultLvalueConversion(Element);
> >    if (Result.isInvalid())
> >      return ExprError();
> > -  Element = Result.get();
> > +  Element = Result.get();
> >
> >    // Make sure that we have an Objective-C pointer type or block.
> >    if (!Element->getType()->isObjCObjectPointerType() &&
> >        !Element->getType()->isBlockPointerType()) {
> >      bool Recovered = false;
> > -
> > +
> >      // If this is potentially an Objective-C numeric literal, add the '@'.
> > -    if (isa<IntegerLiteral>(OrigElement) ||
> > +    if (isa<IntegerLiteral>(OrigElement) ||
> >          isa<CharacterLiteral>(OrigElement) ||
> >          isa<FloatingLiteral>(OrigElement) ||
> >          isa<ObjCBoolLiteralExpr>(OrigElement) ||
> > @@ -431,16 +431,16 @@ static ExprResult CheckObjCCollectionLit
> >                    : (isa<CXXBoolLiteralExpr>(OrigElement) ||
> >                       isa<ObjCBoolLiteralExpr>(OrigElement)) ? 2
> >                    : 3;
> > -
> > +
> >          S.Diag(OrigElement->getLocStart(), diag::err_box_literal_collection)
> >            << Which << OrigElement->getSourceRange()
> >            << FixItHint::CreateInsertion(OrigElement->getLocStart(), "@");
> > -
> > +
> >          Result = S.BuildObjCNumericLiteral(OrigElement->getLocStart(),
> >                                             OrigElement);
> >          if (Result.isInvalid())
> >            return ExprError();
> > -
> > +
> >          Element = Result.get();
> >          Recovered = true;
> >        }
> > @@ -455,12 +455,12 @@ static ExprResult CheckObjCCollectionLit
> >          Result = S.BuildObjCStringLiteral(OrigElement->getLocStart(), String);
> >          if (Result.isInvalid())
> >            return ExprError();
> > -
> > +
> >          Element = Result.get();
> >          Recovered = true;
> >        }
> >      }
> > -
> > +
> >      if (!Recovered) {
> >        S.Diag(Element->getLocStart(), diag::err_invalid_collection_element)
> >          << Element->getType();
> > @@ -488,17 +488,17 @@ static ExprResult CheckObjCCollectionLit
> >        }
> >      }
> >
> > -  // Make sure that the element has the type that the container factory
> > -  // function expects.
> > +  // Make sure that the element has the type that the container factory
> > +  // function expects.
> >    return S.PerformCopyInitialization(
> > -           InitializedEntity::InitializeParameter(S.Context, T,
> > +           InitializedEntity::InitializeParameter(S.Context, T,
> >                                                    /*Consumed=*/false),
> >             Element->getLocStart(), Element);
> >  }
> >
> >  ExprResult Sema::BuildObjCBoxedExpr(SourceRange SR, Expr *ValueExpr) {
> >    if (ValueExpr->isTypeDependent()) {
> > -    ObjCBoxedExpr *BoxedExpr =
> > +    ObjCBoxedExpr *BoxedExpr =
> >        new (Context) ObjCBoxedExpr(ValueExpr, Context.DependentTy, nullptr, SR);
> >      return BoxedExpr;
> >    }
> > @@ -525,7 +525,7 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >          QualType NSStringObject = Context.getObjCInterfaceType(NSStringDecl);
> >          NSStringPointer = Context.getObjCObjectPointerType(NSStringObject);
> >        }
> > -
> > +
> >        if (!StringWithUTF8StringMethod) {
> >          IdentifierInfo *II = &Context.Idents.get("stringWithUTF8String");
> >          Selector stringWithUTF8String = Context.Selectors.getUnarySelector(II);
> > @@ -561,7 +561,7 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >
> >          StringWithUTF8StringMethod = BoxingMethod;
> >        }
> > -
> > +
> >        BoxingMethod = StringWithUTF8StringMethod;
> >        BoxedType = NSStringPointer;
> >        // Transfer the nullability from method's return type.
> > @@ -588,22 +588,22 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >        case CharacterLiteral::UTF8:
> >          ValueType = Context.CharTy;
> >          break;
> > -
> > +
> >        case CharacterLiteral::Wide:
> >          ValueType = Context.getWideCharType();
> >          break;
> > -
> > +
> >        case CharacterLiteral::UTF16:
> >          ValueType = Context.Char16Ty;
> >          break;
> > -
> > +
> >        case CharacterLiteral::UTF32:
> >          ValueType = Context.Char32Ty;
> >          break;
> >        }
> >      }
> >      // FIXME:  Do I need to do anything special with BoolTy expressions?
> > -
> > +
> >      // Look for the appropriate method within NSNumber.
> >      BoxingMethod = getNSNumberFactoryMethod(*this, Loc, ValueType);
> >      BoxedType = NSNumberPointer;
> > @@ -620,7 +620,7 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >    } else if (ValueType->isObjCBoxableRecordType()) {
> >      // Support for structure types, that marked as objc_boxable
> >      // struct __attribute__((objc_boxable)) s { ... };
> > -
> > +
> >      // Look up the NSValue class, if we haven't done so already. It's cached
> >      // in the Sema instance.
> >      if (!NSValueDecl) {
> > @@ -634,14 +634,14 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >        QualType NSValueObject = Context.getObjCInterfaceType(NSValueDecl);
> >        NSValuePointer = Context.getObjCObjectPointerType(NSValueObject);
> >      }
> > -
> > +
> >      if (!ValueWithBytesObjCTypeMethod) {
> >        IdentifierInfo *II[] = {
> >          &Context.Idents.get("valueWithBytes"),
> >          &Context.Idents.get("objCType")
> >        };
> >        Selector ValueWithBytesObjCType = Context.Selectors.getSelector(2, II);
> > -
> > +
> >        // Look for the appropriate method within NSValue.
> >        BoxingMethod = NSValueDecl->lookupClassMethod(ValueWithBytesObjCType);
> >        if (!BoxingMethod && getLangOpts().DebuggerObjCLiteral) {
> > @@ -662,9 +662,9 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >                                                 /*isDefined=*/false,
> >                                                 ObjCMethodDecl::Required,
> >                                                 /*HasRelatedResultType=*/false);
> > -
> > +
> >          SmallVector<ParmVarDecl *, 2> Params;
> > -
> > +
> >          ParmVarDecl *bytes =
> >          ParmVarDecl::Create(Context, M,
> >                              SourceLocation(), SourceLocation(),
> > @@ -673,7 +673,7 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >                              /*TInfo=*/nullptr,
> >                              SC_None, nullptr);
> >          Params.push_back(bytes);
> > -
> > +
> >          QualType ConstCharType = Context.CharTy.withConst();
> >          ParmVarDecl *type =
> >          ParmVarDecl::Create(Context, M,
> > @@ -683,18 +683,18 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >                              /*TInfo=*/nullptr,
> >                              SC_None, nullptr);
> >          Params.push_back(type);
> > -
> > +
> >          M->setMethodParams(Context, Params, None);
> >          BoxingMethod = M;
> >        }
> > -
> > +
> >        if (!validateBoxingMethod(*this, Loc, NSValueDecl,
> >                                  ValueWithBytesObjCType, BoxingMethod))
> >          return ExprError();
> > -
> > +
> >        ValueWithBytesObjCTypeMethod = BoxingMethod;
> >      }
> > -
> > +
> >      if (!ValueType.isTriviallyCopyableType(Context)) {
> >        Diag(Loc, diag::err_objc_non_trivially_copyable_boxed_expression_type)
> >          << ValueType << ValueExpr->getSourceRange();
> > @@ -710,13 +710,13 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >        << ValueType << ValueExpr->getSourceRange();
> >      return ExprError();
> >    }
> > -
> > +
> >    DiagnoseUseOfDecl(BoxingMethod, Loc);
> >
> >    ExprResult ConvertedValueExpr;
> >    if (ValueType->isObjCBoxableRecordType()) {
> >      InitializedEntity IE = InitializedEntity::InitializeTemporary(ValueType);
> > -    ConvertedValueExpr = PerformCopyInitialization(IE, ValueExpr->getExprLoc(),
> > +    ConvertedValueExpr = PerformCopyInitialization(IE, ValueExpr->getExprLoc(),
> >                                                     ValueExpr);
> >    } else {
> >      // Convert the expression to the type that the parameter requires.
> > @@ -726,12 +726,12 @@ ExprResult Sema::BuildObjCBoxedExpr(Sour
> >      ConvertedValueExpr = PerformCopyInitialization(IE, SourceLocation(),
> >                                                     ValueExpr);
> >    }
> > -
> > +
> >    if (ConvertedValueExpr.isInvalid())
> >      return ExprError();
> >    ValueExpr = ConvertedValueExpr.get();
> > -
> > -  ObjCBoxedExpr *BoxedExpr =
> > +
> > +  ObjCBoxedExpr *BoxedExpr =
> >      new (Context) ObjCBoxedExpr(ValueExpr, BoxedType,
> >                                        BoxingMethod, SR);
> >    return MaybeBindToTemporary(BoxedExpr);
> > @@ -756,7 +756,7 @@ ExprResult Sema::BuildObjCSubscriptExpre
> >    if (Result.isInvalid())
> >      return ExprError();
> >    IndexExpr = Result.get();
> > -
> > +
> >    // Perform lvalue-to-rvalue conversion on the base.
> >    Result = DefaultLvalueConversion(BaseExpr);
> >    if (Result.isInvalid())
> > @@ -821,24 +821,24 @@ ExprResult Sema::BuildObjCArrayLiteral(S
> >      // Dig out the type that all elements should be converted to.
> >      QualType T = Method->parameters()[0]->getType();
> >      const PointerType *PtrT = T->getAs<PointerType>();
> > -    if (!PtrT ||
> > +    if (!PtrT ||
> >          !Context.hasSameUnqualifiedType(PtrT->getPointeeType(), IdT)) {
> >        Diag(SR.getBegin(), diag::err_objc_literal_method_sig)
> >          << Sel;
> >        Diag(Method->parameters()[0]->getLocation(),
> >             diag::note_objc_literal_method_param)
> > -        << 0 << T
> > +        << 0 << T
> >          << Context.getPointerType(IdT.withConst());
> >        return ExprError();
> >      }
> > -
> > +
> >      // Check that the 'count' parameter is integral.
> >      if (!Method->parameters()[1]->getType()->isIntegerType()) {
> >        Diag(SR.getBegin(), diag::err_objc_literal_method_sig)
> >          << Sel;
> >        Diag(Method->parameters()[1]->getLocation(),
> >             diag::note_objc_literal_method_param)
> > -        << 1
> > +        << 1
> >          << Method->parameters()[1]->getType()
> >          << "integral";
> >        return ExprError();
> > @@ -860,11 +860,11 @@ ExprResult Sema::BuildObjCArrayLiteral(S
> >                                                               RequiredType, true);
> >      if (Converted.isInvalid())
> >        return ExprError();
> > -
> > +
> >      ElementsBuffer[I] = Converted.get();
> >    }
> > -
> > -  QualType Ty
> > +
> > +  QualType Ty
> >      = Context.getObjCObjectPointerType(
> >                                      Context.getObjCInterfaceType(NSArrayDecl));
> >
> > @@ -893,7 +893,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >                                 NSAPI::NSDict_dictionaryWithObjectsForKeysCount);
> >      ObjCMethodDecl *Method = NSDictionaryDecl->lookupClassMethod(Sel);
> >      if (!Method && getLangOpts().DebuggerObjCLiteral) {
> > -      Method = ObjCMethodDecl::Create(Context,
> > +      Method = ObjCMethodDecl::Create(Context,
> >                             SourceLocation(), SourceLocation(), Sel,
> >                             IdT,
> >                             nullptr /*TypeSourceInfo */,
> > @@ -938,7 +938,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >      // Dig out the type that all values should be converted to.
> >      QualType ValueT = Method->parameters()[0]->getType();
> >      const PointerType *PtrValue = ValueT->getAs<PointerType>();
> > -    if (!PtrValue ||
> > +    if (!PtrValue ||
> >          !Context.hasSameUnqualifiedType(PtrValue->getPointeeType(), IdT)) {
> >        Diag(SR.getBegin(), diag::err_objc_literal_method_sig)
> >          << Sel;
> > @@ -952,7 +952,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >      // Dig out the type that all keys should be converted to.
> >      QualType KeyT = Method->parameters()[1]->getType();
> >      const PointerType *PtrKey = KeyT->getAs<PointerType>();
> > -    if (!PtrKey ||
> > +    if (!PtrKey ||
> >          !Context.hasSameUnqualifiedType(PtrKey->getPointeeType(),
> >                                          IdT)) {
> >        bool err = true;
> > @@ -962,7 +962,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >            if (ObjCProtocolDecl *NSCopyingPDecl =
> >                LookupProtocol(&Context.Idents.get("NSCopying"), SR.getBegin())) {
> >              ObjCProtocolDecl *PQ[] = {NSCopyingPDecl};
> > -            QIDNSCopying =
> > +            QIDNSCopying =
> >                Context.getObjCObjectType(Context.ObjCBuiltinIdTy, { },
> >                                          llvm::makeArrayRef(
> >                                            (ObjCProtocolDecl**) PQ,
> > @@ -975,7 +975,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >            err = !Context.hasSameUnqualifiedType(PtrKey->getPointeeType(),
> >                                                  QIDNSCopying);
> >        }
> > -
> > +
> >        if (err) {
> >          Diag(SR.getBegin(), diag::err_objc_literal_method_sig)
> >            << Sel;
> > @@ -1008,7 +1008,7 @@ ExprResult Sema::BuildObjCDictionaryLite
> >    QualType KeysT = DictionaryWithObjectsMethod->parameters()[1]->getType();
> >    QualType KeyT = KeysT->castAs<PointerType>()->getPointeeType();
> >
> > -  // Check that each of the keys and values provided is valid in a collection
> > +  // Check that each of the keys and values provided is valid in a collection
> >    // literal, performing conversions as necessary.
> >    bool HasPackExpansions = false;
> >    for (ObjCDictionaryElement &Element : Elements) {
> > @@ -1017,19 +1017,19 @@ ExprResult Sema::BuildObjCDictionaryLite
> >                                                         KeyT);
> >      if (Key.isInvalid())
> >        return ExprError();
> > -
> > +
> >      // Check the value.
> >      ExprResult Value
> >        = CheckObjCCollectionLiteralElement(*this, Element.Value, ValueT);
> >      if (Value.isInvalid())
> >        return ExprError();
> > -
> > +
> >      Element.Key = Key.get();
> >      Element.Value = Value.get();
> > -
> > +
> >      if (Element.EllipsisLoc.isInvalid())
> >        continue;
> > -
> > +
> >      if (!Element.Key->containsUnexpandedParameterPack() &&
> >          !Element.Value->containsUnexpandedParameterPack()) {
> >        Diag(Element.EllipsisLoc,
> > @@ -1038,10 +1038,10 @@ ExprResult Sema::BuildObjCDictionaryLite
> >                         Element.Value->getLocEnd());
> >        return ExprError();
> >      }
> > -
> > +
> >      HasPackExpansions = true;
> >    }
> > -
> > +
> >    QualType Ty
> >      = Context.getObjCObjectPointerType(
> >                                  Context.getObjCInterfaceType(NSDictionaryDecl));
> > @@ -1147,7 +1147,7 @@ static void DiagnoseMismatchedSelectors(
> >      if (HelperToDiagnoseMismatchedMethodsInGlobalPool(S, AtLoc, LParenLoc, RParenLoc,
> >                                                        Method, InstMethList))
> >        Warned = true;
> > -
> > +
> >      // second, class methods
> >      ObjCMethodList &ClsMethList = b->second.second;
> >      if (HelperToDiagnoseMismatchedMethodsInGlobalPool(S, AtLoc, LParenLoc, RParenLoc,
> > @@ -1175,7 +1175,7 @@ ExprResult Sema::ParseObjCSelectorExpres
> >        Diag(SelLoc, diag::warn_undeclared_selector_with_typo)
> >          << Sel << MatchedSel
> >          << FixItHint::CreateReplacement(SelectorRange, MatchedSel.getAsString());
> > -
> > +
> >      } else
> >          Diag(SelLoc, diag::warn_undeclared_selector) << Sel;
> >    } else
> > @@ -1187,7 +1187,7 @@ ExprResult Sema::ParseObjCSelectorExpres
> >        !getSourceManager().isInSystemHeader(Method->getLocation()))
> >      ReferencedSelectors.insert(std::make_pair(Sel, AtLoc));
> >
> > -  // In ARC, forbid the user from using @selector for
> > +  // In ARC, forbid the user from using @selector for
> >    // retain/release/autorelease/dealloc/retainCount.
> >    if (getLangOpts().ObjCAutoRefCount) {
> >      switch (Sel.getMethodFamily()) {
> > @@ -1196,7 +1196,7 @@ ExprResult Sema::ParseObjCSelectorExpres
> >      case OMF_autorelease:
> >      case OMF_retainCount:
> >      case OMF_dealloc:
> > -      Diag(AtLoc, diag::err_arc_illegal_selector) <<
> > +      Diag(AtLoc, diag::err_arc_illegal_selector) <<
> >          Sel << SourceRange(LParenLoc, RParenLoc);
> >        break;
> >
> > @@ -1269,7 +1269,7 @@ static QualType stripObjCInstanceType(AS
> >
> >    if (T == Context.getObjCInstanceType())
> >      return Context.getObjCIdType();
> > -
> > +
> >    return origType;
> >  }
> >
> > @@ -1313,7 +1313,7 @@ static QualType getBaseMessageSendResult
> >    //     was a class message send, T is the declared return type of the method
> >    //     found
> >    if (Method->isInstanceMethod() && isClassMessage)
> > -    return stripObjCInstanceType(Context,
> > +    return stripObjCInstanceType(Context,
> >                                   Method->getSendResultType(ReceiverType));
> >
> >    //   - if the receiver is super, T is a pointer to the class of the
> > @@ -1334,7 +1334,7 @@ static QualType getBaseMessageSendResult
> >    //     T is the declared return type of the method.
> >    if (ReceiverType->isObjCClassType() ||
> >        ReceiverType->isObjCQualifiedClassType())
> > -    return stripObjCInstanceType(Context,
> > +    return stripObjCInstanceType(Context,
> >                                   Method->getSendResultType(ReceiverType));
> >
> >    //   - if the receiver is id, qualified id, Class, or qualified Class, T
> > @@ -1424,14 +1424,14 @@ findExplicitInstancetypeDeclarer(const O
> >    if (const ObjCImplDecl *impl =
> >          dyn_cast<ObjCImplDecl>(MD->getDeclContext())) {
> >      const ObjCContainerDecl *iface;
> > -    if (const ObjCCategoryImplDecl *catImpl =
> > +    if (const ObjCCategoryImplDecl *catImpl =
> >            dyn_cast<ObjCCategoryImplDecl>(impl)) {
> >        iface = catImpl->getCategoryDecl();
> >      } else {
> >        iface = impl->getClassInterface();
> >      }
> >
> > -    const ObjCMethodDecl *ifaceMD =
> > +    const ObjCMethodDecl *ifaceMD =
> >        iface->getMethod(MD->getSelector(), MD->isInstanceMethod());
> >      if (ifaceMD) return findExplicitInstancetypeDeclarer(ifaceMD, instancetype);
> >    }
> > @@ -1481,11 +1481,11 @@ void Sema::EmitRelatedResultTypeNote(con
> >    const ObjCMessageExpr *MsgSend = dyn_cast<ObjCMessageExpr>(E);
> >    if (!MsgSend)
> >      return;
> > -
> > +
> >    const ObjCMethodDecl *Method = MsgSend->getMethodDecl();
> >    if (!Method)
> >      return;
> > -
> > +
> >    if (!Method->hasRelatedResultType())
> >      return;
> >
> > @@ -1496,7 +1496,7 @@ void Sema::EmitRelatedResultTypeNote(con
> >    if (!Context.hasSameUnqualifiedType(Method->getReturnType(),
> >                                        Context.getObjCInstanceType()))
> >      return;
> > -
> > +
> >    Diag(Method->getLocation(), diag::note_related_result_type_inferred)
> >      << Method->isInstanceMethod() << Method->getSelector()
> >      << MsgSend->getType();
> > @@ -1560,7 +1560,7 @@ bool Sema::CheckMessageArgumentTypes(Qua
> >        }
> >        else
> >          Diag(SelLoc, DiagID)
> > -          << Sel << isClassMessage << SourceRange(SelectorLocs.front(),
> > +          << Sel << isClassMessage << SourceRange(SelectorLocs.front(),
> >                                                  SelectorLocs.back());
> >        // Find the class to which we are sending this message.
> >        if (ReceiverType->isObjCObjectPointerType()) {
> > @@ -1587,7 +1587,7 @@ bool Sema::CheckMessageArgumentTypes(Qua
> >      return false;
> >    }
> >
> > -  ReturnType = getMessageSendResultType(ReceiverType, Method, isClassMessage,
> > +  ReturnType = getMessageSendResultType(ReceiverType, Method, isClassMessage,
> >                                          isSuperMessage);
> >    VK = Expr::getValueKindForType(Method->getReturnType());
> >
> > @@ -1751,7 +1751,7 @@ ObjCMethodDecl *Sema::LookupMethodInObje
> >    return nullptr;
> >  }
> >
> > -/// LookupMethodInQualifiedType - Lookups up a method in protocol qualifier
> > +/// LookupMethodInQualifiedType - Lookups up a method in protocol qualifier
> >  /// list of a qualified objective pointer type.
> >  ObjCMethodDecl *Sema::LookupMethodInQualifiedType(Selector Sel,
> >                                                const ObjCObjectPointerType *OPT,
> > @@ -1785,14 +1785,14 @@ HandleExprPropertyRefExpr(const ObjCObje
> >    }
> >
> >    IdentifierInfo *Member = MemberName.getAsIdentifierInfo();
> > -
> > +
> >    SourceRange BaseRange = Super? SourceRange(SuperLoc)
> >                                 : BaseExpr->getSourceRange();
> > -  if (RequireCompleteType(MemberLoc, OPT->getPointeeType(),
> > +  if (RequireCompleteType(MemberLoc, OPT->getPointeeType(),
> >                            diag::err_property_not_found_forward_class,
> >                            MemberName, BaseRange))
> >      return ExprError();
> > -
> > +
> >    if (ObjCPropertyDecl *PD = IFace->FindPropertyDeclaration(
> >            Member, ObjCPropertyQueryKind::OBJC_PR_query_instance)) {
> >      // Check whether we can reference this property.
> > @@ -1832,7 +1832,7 @@ HandleExprPropertyRefExpr(const ObjCObje
> >
> >    Selector Sel = PP.getSelectorTable().getNullarySelector(Member);
> >    ObjCMethodDecl *Getter = IFace->lookupInstanceMethod(Sel);
> > -
> > +
> >    // May be found in property's qualified list.
> >    if (!Getter)
> >      Getter = LookupMethodInQualifiedType(Sel, OPT, true);
> > @@ -1852,17 +1852,17 @@ HandleExprPropertyRefExpr(const ObjCObje
> >      SelectorTable::constructSetterSelector(PP.getIdentifierTable(),
> >                                             PP.getSelectorTable(), Member);
> >    ObjCMethodDecl *Setter = IFace->lookupInstanceMethod(SetterSel);
> > -
> > +
> >    // May be found in property's qualified list.
> >    if (!Setter)
> >      Setter = LookupMethodInQualifiedType(SetterSel, OPT, true);
> > -
> > +
> >    if (!Setter) {
> >      // If this reference is in an @implementation, also check for 'private'
> >      // methods.
> >      Setter = IFace->lookupPrivateMethod(SetterSel);
> >    }
> > -
> > +
> >    if (Setter && DiagnoseUseOfDecl(Setter, MemberLoc))
> >      return ExprError();
> >
> > @@ -1926,23 +1926,23 @@ HandleExprPropertyRefExpr(const ObjCObje
> >      }
> >    }
> >    ObjCInterfaceDecl *ClassDeclared;
> > -  if (ObjCIvarDecl *Ivar =
> > +  if (ObjCIvarDecl *Ivar =
> >        IFace->lookupInstanceVariable(Member, ClassDeclared)) {
> >      QualType T = Ivar->getType();
> > -    if (const ObjCObjectPointerType * OBJPT =
> > +    if (const ObjCObjectPointerType * OBJPT =
> >          T->getAsObjCInterfacePointerType()) {
> > -      if (RequireCompleteType(MemberLoc, OBJPT->getPointeeType(),
> > +      if (RequireCompleteType(MemberLoc, OBJPT->getPointeeType(),
> >                                diag::err_property_not_as_forward_class,
> >                                MemberName, BaseExpr))
> >          return ExprError();
> >      }
> > -    Diag(MemberLoc,
> > +    Diag(MemberLoc,
> >           diag::err_ivar_access_using_property_syntax_suggest)
> >      << MemberName << QualType(OPT, 0) << Ivar->getDeclName()
> >      << FixItHint::CreateReplacement(OpLoc, "->");
> >      return ExprError();
> >    }
> > -
> > +
> >    Diag(MemberLoc, diag::err_property_not_found)
> >      << MemberName << QualType(OPT, 0);
> >    if (Setter)
> > @@ -2086,10 +2086,10 @@ Sema::ObjCMessageKind Sema::getObjCMessa
> >    // trailing dot, it's an instance message.
> >    if (IsSuper && S->isInObjcMethodScope())
> >      return HasTrailingDot? ObjCInstanceMessage : ObjCSuperMessage;
> > -
> > +
> >    LookupResult Result(*this, Name, NameLoc, LookupOrdinaryName);
> >    LookupName(Result, S);
> > -
> > +
> >    switch (Result.getResultKind()) {
> >    case LookupResult::NotFound:
> >      // Normal name lookup didn't find anything. If we're in an
> > @@ -2103,11 +2103,11 @@ Sema::ObjCMessageKind Sema::getObjCMessa
> >        }
> >
> >        ObjCInterfaceDecl *ClassDeclared;
> > -      if (Method->getClassInterface()->lookupInstanceVariable(Name,
> > +      if (Method->getClassInterface()->lookupInstanceVariable(Name,
> >                                                                ClassDeclared))
> >          return ObjCInstanceMessage;
> >      }
> > -
> > +
> >      // Break out; we'll perform typo correction below.
> >      break;
> >
> > @@ -2171,7 +2171,7 @@ Sema::ObjCMessageKind Sema::getObjCMessa
> >    return ObjCInstanceMessage;
> >  }
> >
> > -ExprResult Sema::ActOnSuperMessage(Scope *S,
> > +ExprResult Sema::ActOnSuperMessage(Scope *S,
> >                                     SourceLocation SuperLoc,
> >                                     Selector Sel,
> >                                     SourceLocation LBracLoc,
> > @@ -2213,7 +2213,7 @@ ExprResult Sema::ActOnSuperMessage(Scope
> >                                  Sel, /*Method=*/nullptr,
> >                                  LBracLoc, SelectorLocs, RBracLoc, Args);
> >    }
> > -
> > +
> >    // Since we are in a class method, this is a class message to
> >    // the superclass.
> >    return BuildClassMessage(/*ReceiverTypeInfo=*/nullptr,
> > @@ -2353,7 +2353,7 @@ DiagnoseCStringFormatDirectiveInObjCAPI(
> >    }
> >    if (!Format || NumArgs <= Idx)
> >      return;
> > -
> > +
> >    Expr *FormatExpr = Args[Idx];
> >    if (ObjCStringLiteral *OSL =
> >        dyn_cast<ObjCStringLiteral>(FormatExpr->IgnoreParenImpCasts())) {
> > @@ -2401,7 +2401,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >                                     SourceLocation SuperLoc,
> >                                     Selector Sel,
> >                                     ObjCMethodDecl *Method,
> > -                                   SourceLocation LBracLoc,
> > +                                   SourceLocation LBracLoc,
> >                                     ArrayRef<SourceLocation> SelectorLocs,
> >                                     SourceLocation RBracLoc,
> >                                     MultiExprArg ArgsIn,
> > @@ -2431,7 +2431,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >          SelectorLocs, /*Method=*/nullptr, makeArrayRef(Args, NumArgs), RBracLoc,
> >          isImplicit);
> >    }
> > -
> > +
> >    // Find the class to which we are sending this message.
> >    ObjCInterfaceDecl *Class = nullptr;
> >    const ObjCObjectType *ClassType = ReceiverType->getAs<ObjCObjectType>();
> > @@ -2446,7 +2446,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >      (void)DiagnoseUseOfDecl(Class, SelectorSlotLocs);
> >    // Find the method we are messaging.
> >    if (!Method) {
> > -    SourceRange TypeRange
> > +    SourceRange TypeRange
> >        = SuperLoc.isValid()? SourceRange(SuperLoc)
> >                            : ReceiverTypeInfo->getTypeLoc().getSourceRange();
> >      if (RequireCompleteType(Loc, Context.getObjCInterfaceType(Class),
> > @@ -2455,7 +2455,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >                                 : diag::warn_receiver_forward_class),
> >                              TypeRange)) {
> >        // A forward class used in messaging is treated as a 'Class'
> > -      Method = LookupFactoryMethodInGlobalPool(Sel,
> > +      Method = LookupFactoryMethodInGlobalPool(Sel,
> >                                                 SourceRange(LBracLoc, RBracLoc));
> >        if (Method && !getLangOpts().ObjCAutoRefCount)
> >          Diag(Method->getLocation(), diag::note_method_sent_forward_class)
> > @@ -2490,7 +2490,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >        RequireCompleteType(LBracLoc, Method->getReturnType(),
> >                            diag::err_illegal_message_expr_incomplete_type))
> >      return ExprError();
> > -
> > +
> >    // Warn about explicit call of +initialize on its own class. But not on 'super'.
> >    if (Method && Method->getMethodFamily() == OMF_initialize) {
> >      if (!SuperLoc.isValid()) {
> > @@ -2513,19 +2513,19 @@ ExprResult Sema::BuildClassMessage(TypeS
> >        }
> >      }
> >    }
> > -
> > +
> >    DiagnoseCStringFormatDirectiveInObjCAPI(*this, Method, Sel, Args, NumArgs);
> > -
> > +
> >    // Construct the appropriate ObjCMessageExpr.
> >    ObjCMessageExpr *Result;
> >    if (SuperLoc.isValid())
> > -    Result = ObjCMessageExpr::Create(Context, ReturnType, VK, LBracLoc,
> > -                                     SuperLoc, /*IsInstanceSuper=*/false,
> > +    Result = ObjCMessageExpr::Create(Context, ReturnType, VK, LBracLoc,
> > +                                     SuperLoc, /*IsInstanceSuper=*/false,
> >                                       ReceiverType, Sel, SelectorLocs,
> >                                       Method, makeArrayRef(Args, NumArgs),
> >                                       RBracLoc, isImplicit);
> >    else {
> > -    Result = ObjCMessageExpr::Create(Context, ReturnType, VK, LBracLoc,
> > +    Result = ObjCMessageExpr::Create(Context, ReturnType, VK, LBracLoc,
> >                                       ReceiverTypeInfo, Sel, SelectorLocs,
> >                                       Method, makeArrayRef(Args, NumArgs),
> >                                       RBracLoc, isImplicit);
> > @@ -2541,7 +2541,7 @@ ExprResult Sema::BuildClassMessage(TypeS
> >  // ActOnClassMessage - used for both unary and keyword messages.
> >  // ArgExprs is optional - if it is present, the number of expressions
> >  // is obtained from Sel.getNumArgs().
> > -ExprResult Sema::ActOnClassMessage(Scope *S,
> > +ExprResult Sema::ActOnClassMessage(Scope *S,
> >                                     ParsedType Receiver,
> >                                     Selector Sel,
> >                                     SourceLocation LBracLoc,
> > @@ -2556,7 +2556,7 @@ ExprResult Sema::ActOnClassMessage(Scope
> >    if (!ReceiverTypeInfo)
> >      ReceiverTypeInfo = Context.getTrivialTypeSourceInfo(ReceiverType, LBracLoc);
> >
> > -  return BuildClassMessage(ReceiverTypeInfo, ReceiverType,
> > +  return BuildClassMessage(ReceiverTypeInfo, ReceiverType,
> >                             /*SuperLoc=*/SourceLocation(), Sel,
> >                             /*Method=*/nullptr, LBracLoc, SelectorLocs, RBracLoc,
> >                             Args);
> > @@ -2625,7 +2625,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                                        SourceLocation SuperLoc,
> >                                        Selector Sel,
> >                                        ObjCMethodDecl *Method,
> > -                                      SourceLocation LBracLoc,
> > +                                      SourceLocation LBracLoc,
> >                                        ArrayRef<SourceLocation> SelectorLocs,
> >                                        SourceLocation RBracLoc,
> >                                        MultiExprArg ArgsIn,
> > @@ -2691,15 +2691,15 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >        // do nothing
> >      } else if (!getLangOpts().ObjCAutoRefCount &&
> >                 !Context.getObjCIdType().isNull() &&
> > -               (ReceiverType->isPointerType() ||
> > +               (ReceiverType->isPointerType() ||
> >                  ReceiverType->isIntegerType())) {
> >        // Implicitly convert integers and pointers to 'id' but emit a warning.
> >        // But not in ARC.
> >        Diag(Loc, diag::warn_bad_receiver_type)
> > -        << ReceiverType
> > +        << ReceiverType
> >          << Receiver->getSourceRange();
> >        if (ReceiverType->isPointerType()) {
> > -        Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
> > +        Receiver = ImpCastExprToType(Receiver, Context.getObjCIdType(),
> >                                       CK_CPointerToObjCPointerCast).get();
> >        } else {
> >          // TODO: specialized warning on null receivers?
> > @@ -2828,7 +2828,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >        // We allow sending a message to a qualified ID ("id<foo>"), which is ok as
> >        // long as one of the protocols implements the selector (if not, warn).
> >        // And as long as message is not deprecated/unavailable (warn if it is).
> > -      if (const ObjCObjectPointerType *QIdTy
> > +      if (const ObjCObjectPointerType *QIdTy
> >                                     = ReceiverType->getAsObjCQualifiedIdType()) {
> >          // Search protocols for instance methods.
> >          Method = LookupMethodInQualifiedType(Sel, QIdTy, true);
> > @@ -2854,9 +2854,9 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                                          : SourceRange(SuperLoc))) {
> >            if (getLangOpts().ObjCAutoRefCount)
> >              return ExprError();
> > -
> > +
> >            forwardClass = OCIType->getInterfaceDecl();
> > -          Diag(Receiver ? Receiver->getLocStart()
> > +          Diag(Receiver ? Receiver->getLocStart()
> >                          : SuperLoc, diag::note_receiver_is_id);
> >            Method = nullptr;
> >          } else {
> > @@ -2866,7 +2866,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >          if (!Method)
> >            // Search protocol qualifiers.
> >            Method = LookupMethodInQualifiedType(Sel, OCIType, true);
> > -
> > +
> >          if (!Method) {
> >            // If we have implementations in scope, check "private" methods.
> >            Method = ClassDecl->lookupPrivateMethod(Sel);
> > @@ -2975,7 +2975,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                         ReceiverType->isObjCQualifiedClassType());
> >    if (CheckMessageArgumentTypes(ReceiverType, MultiExprArg(Args, NumArgs),
> >                                  Sel, SelectorLocs, Method,
> > -                                ClassMessage, SuperLoc.isValid(),
> > +                                ClassMessage, SuperLoc.isValid(),
> >                                  LBracLoc, RBracLoc, RecRange, ReturnType, VK))
> >      return ExprError();
> >
> > @@ -2984,7 +2984,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                            diag::err_illegal_message_expr_incomplete_type))
> >      return ExprError();
> >
> > -  // In ARC, forbid the user from sending messages to
> > +  // In ARC, forbid the user from sending messages to
> >    // retain/release/autorelease/dealloc/retainCount explicitly.
> >    if (getLangOpts().ObjCAutoRefCount) {
> >      ObjCMethodFamily family =
> > @@ -3013,13 +3013,13 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >        Diag(SelLoc, diag::err_arc_illegal_explicit_message)
> >          << Sel << RecRange;
> >        break;
> > -
> > +
> >      case OMF_performSelector:
> >        if (Method && NumArgs >= 1) {
> >          if (const auto *SelExp =
> >                  dyn_cast<ObjCSelectorExpr>(Args[0]->IgnoreParens())) {
> >            Selector ArgSel = SelExp->getSelector();
> > -          ObjCMethodDecl *SelMethod =
> > +          ObjCMethodDecl *SelMethod =
> >              LookupInstanceMethodInGlobalPool(ArgSel,
> >                                               SelExp->getSourceRange());
> >            if (!SelMethod)
> > @@ -3036,8 +3036,8 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                case OMF_init:
> >                  // Issue error, unless ns_returns_not_retained.
> >                  if (!SelMethod->hasAttr<NSReturnsNotRetainedAttr>()) {
> > -                  // selector names a +1 method
> > -                  Diag(SelLoc,
> > +                  // selector names a +1 method
> > +                  Diag(SelLoc,
> >                         diag::err_arc_perform_selector_retains);
> >                    Diag(SelMethod->getLocation(), diag::note_method_declared_at)
> >                      << SelMethod->getDeclName();
> > @@ -3047,7 +3047,7 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >                  // +0 call. OK. unless ns_returns_retained.
> >                  if (SelMethod->hasAttr<NSReturnsRetainedAttr>()) {
> >                    // selector names a +1 method
> > -                  Diag(SelLoc,
> > +                  Diag(SelLoc,
> >                         diag::err_arc_perform_selector_retains);
> >                    Diag(SelMethod->getLocation(), diag::note_method_declared_at)
> >                      << SelMethod->getDeclName();
> > @@ -3066,13 +3066,13 @@ ExprResult Sema::BuildInstanceMessage(Ex
> >    }
> >
> >    DiagnoseCStringFormatDirectiveInObjCAPI(*this, Method, Sel, Args, NumArgs);
> > -
> > +
> >    // Construct the appropriate ObjCMessageExpr instance.
> >    ObjCMessageExpr *Result;
> >    if (SuperLoc.isValid())
> >      Result = ObjCMessageExpr::Create(Context, ReturnType, VK, LBracLoc,
> >                                       SuperLoc,  /*IsInstanceSuper=*/true,
> > -                                     ReceiverType, Sel, SelectorLocs, Method,
> > +                                     ReceiverType, Sel, SelectorLocs, Method,
> >                                       makeArrayRef(Args, NumArgs), RBracLoc,
> >                                       isImplicit);
> >    else {
> > @@ -3158,7 +3158,7 @@ static void RemoveSelectorFromWarningCac
> >  // ArgExprs is optional - if it is present, the number of expressions
> >  // is obtained from Sel.getNumArgs().
> >  ExprResult Sema::ActOnInstanceMessage(Scope *S,
> > -                                      Expr *Receiver,
> > +                                      Expr *Receiver,
> >                                        Selector Sel,
> >                                        SourceLocation LBracLoc,
> >                                        ArrayRef<SourceLocation> SelectorLocs,
> > @@ -3173,7 +3173,7 @@ ExprResult Sema::ActOnInstanceMessage(Sc
> >      if (Result.isInvalid()) return ExprError();
> >      Receiver = Result.get();
> >    }
> > -
> > +
> >    if (RespondsToSelectorSel.isNull()) {
> >      IdentifierInfo *SelectorId = &Context.Idents.get("respondsToSelector");
> >      RespondsToSelectorSel = Context.Selectors.getUnarySelector(SelectorId);
> > @@ -3218,13 +3218,13 @@ static bool isAnyCLike(ARCConversionType
> >
> >  static ARCConversionTypeClass classifyTypeForARCConversion(QualType type) {
> >    bool isIndirect = false;
> > -
> > +
> >    // Ignore an outermost reference type.
> >    if (const ReferenceType *ref = type->getAs<ReferenceType>()) {
> >      type = ref->getPointeeType();
> >      isIndirect = true;
> >    }
> > -
> > +
> >    // Drill through pointers and arrays recursively.
> >    while (true) {
> >      if (const PointerType *ptr = type->getAs<PointerType>()) {
> > @@ -3242,7 +3242,7 @@ static ARCConversionTypeClass classifyTy
> >      }
> >      isIndirect = true;
> >    }
> > -
> > +
> >    if (isIndirect) {
> >      if (type->isObjCARCBridgableType())
> >        return ACTC_indirectRetainable;
> > @@ -3322,7 +3322,7 @@ namespace {
> >
> >        return ACC_invalid;
> >      }
> > -
> > +
> >      /// Look through certain implicit and explicit casts.
> >      ACCResult VisitCastExpr(CastExpr *e) {
> >        switch (e->getCastKind()) {
> > @@ -3428,10 +3428,10 @@ namespace {
> >        // Otherwise, don't do anything implicit with an unaudited function.
> >        if (!fn->hasAttr<CFAuditedTransferAttr>())
> >          return ACC_invalid;
> > -
> > +
> >        // Otherwise, it's +0 unless it follows the create convention.
> >        if (ento::coreFoundation::followsCreateRule(fn))
> > -        return Diagnose ? ACC_plusOne
> > +        return Diagnose ? ACC_plusOne
> >                          : ACC_invalid; // ACC_plusOne if we start accepting this
> >
> >        return ACC_plusZero;
> > @@ -3458,7 +3458,7 @@ namespace {
> >        // return type is CF.
> >        if (!isAnyRetainable(TargetClass) || !isCFType(method->getReturnType()))
> >          return ACC_invalid;
> > -
> > +
> >        // If the method is explicitly marked not-retained, it's +0.
> >        if (method->hasAttr<CFReturnsNotRetainedAttr>())
> >          return ACC_plusZero;
> > @@ -3517,12 +3517,12 @@ static void addFixitForObjCARCConversion
> >          SourceRange range(NCE->getOperatorLoc(),
> >                            NCE->getAngleBrackets().getEnd());
> >          SmallString<32> BridgeCall;
> > -
> > +
> >          SourceManager &SM = S.getSourceManager();
> >          char PrevChar = *SM.getCharacterData(range.getBegin().getLocWithOffset(-1));
> >          if (Lexer::isIdentifierBodyChar(PrevChar, S.getLangOpts()))
> >            BridgeCall += ' ';
> > -
> > +
> >          BridgeCall += CFBridgeName;
> >          DiagB.AddFixItHint(FixItHint::CreateReplacement(range, BridgeCall));
> >        }
> > @@ -3623,7 +3623,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >                            Sema::CheckedConversionKind CCK) {
> >    SourceLocation loc =
> >      (castRange.isValid() ? castRange.getBegin() : castExpr->getExprLoc());
> > -
> > +
> >    if (S.makeUnavailableInSystemHeader(loc,
> >                                   UnavailableAttr::IR_ARCForbiddenConversion))
> >      return;
> > @@ -3637,7 +3637,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >        (exprACTC == ACTC_coreFoundation && castACTC == ACTC_retainable &&
> >         ObjCBridgeRelatedAttrFromType(castExprType, TDNDecl)))
> >      return;
> > -
> > +
> >    unsigned srcKind = 0;
> >    switch (exprACTC) {
> >    case ACTC_none:
> > @@ -3652,7 +3652,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >      srcKind = 4;
> >      break;
> >    }
> > -
> > +
> >    // Check whether this could be fixed with a bridge cast.
> >    SourceLocation afterLParen = S.getLocForEndOfToken(castRange.getBegin());
> >    SourceLocation noteLoc = afterLParen.isValid() ? afterLParen : loc;
> > @@ -3671,12 +3671,12 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >        << castRange
> >        << castExpr->getSourceRange();
> >      bool br = S.isKnownName("CFBridgingRelease");
> > -    ACCResult CreateRule =
> > +    ACCResult CreateRule =
> >        ARCCastChecker(S.Context, exprACTC, castACTC, true).Visit(castExpr);
> >      assert(CreateRule != ACC_bottom && "This cast should already be accepted.");
> >      if (CreateRule != ACC_plusOne)
> >      {
> > -      DiagnosticBuilder DiagB =
> > +      DiagnosticBuilder DiagB =
> >          (CCK != Sema::CCK_OtherCast) ? S.Diag(noteLoc, diag::note_arc_bridge)
> >                                : S.Diag(noteLoc, diag::note_arc_cstyle_bridge);
> >
> > @@ -3700,7 +3700,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >
> >      return;
> >    }
> > -
> > +
> >    // Bridge from a CF type to an ARC type.
> >    if (exprACTC == ACTC_retainable && isAnyRetainable(castACTC)) {
> >      bool br = S.isKnownName("CFBridgingRetain");
> > @@ -3712,7 +3712,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >        << castType
> >        << castRange
> >        << castExpr->getSourceRange();
> > -    ACCResult CreateRule =
> > +    ACCResult CreateRule =
> >        ARCCastChecker(S.Context, exprACTC, castACTC, true).Visit(castExpr);
> >      assert(CreateRule != ACC_bottom && "This cast should already be accepted.");
> >      if (CreateRule != ACC_plusOne)
> > @@ -3740,7 +3740,7 @@ diagnoseObjCARCConversion(Sema &S, Sourc
> >
> >      return;
> >    }
> > -
> > +
> >    S.Diag(loc, diag::err_arc_mismatched_cast)
> >      << !convKindForDiag
> >      << srcKind << castExprType << castType
> > @@ -3759,7 +3759,7 @@ static bool CheckObjCBridgeNSCast(Sema &
> >          HadTheAttribute = true;
> >          if (Parm->isStr("id"))
> >            return true;
> > -
> > +
> >          NamedDecl *Target = nullptr;
> >          // Check for an existing type with this name.
> >          LookupResult R(S, DeclarationName(Parm), SourceLocation(),
> > @@ -3897,7 +3897,7 @@ void Sema::CheckTollFreeBridgeCast(QualT
> >                                                     HasObjCBridgeMutableAttr, false);
> >      if (ObjCBridgeMutableAttrWillNotWarn && HasObjCBridgeMutableAttr)
> >        return;
> > -
> > +
> >      if (HasObjCBridgeAttr)
> >        CheckObjCBridgeNSCast<ObjCBridgeAttr>(*this, castType, castExpr, HasObjCBridgeAttr,
> >                                              true);
> > @@ -3918,7 +3918,7 @@ void Sema::CheckTollFreeBridgeCast(QualT
> >                                                     HasObjCBridgeMutableAttr, false);
> >      if (ObjCBridgeMutableAttrWillNotWarn && HasObjCBridgeMutableAttr)
> >        return;
> > -
> > +
> >      if (HasObjCBridgeAttr)
> >        CheckObjCBridgeCFCast<ObjCBridgeAttr>(*this, castType, castExpr, HasObjCBridgeAttr,
> >                                              true);
> > @@ -3940,7 +3940,7 @@ void Sema::CheckObjCBridgeRelatedCast(Qu
> >          SrcType = Getter->getReturnType();
> >      }
> >    }
> > -
> > +
> >    ARCConversionTypeClass srcExprACTC = classifyTypeForARCConversion(SrcType);
> >    ARCConversionTypeClass castExprACTC = classifyTypeForARCConversion(castType);
> >    if (srcExprACTC != ACTC_retainable || castExprACTC != ACTC_coreFoundation)
> > @@ -3977,7 +3977,7 @@ bool Sema::checkObjCBridgeRelatedCompone
> >    ObjCBridgeRelatedAttr *ObjCBAttr = ObjCBridgeRelatedAttrFromType(T, TDNDecl);
> >    if (!ObjCBAttr)
> >      return false;
> > -
> > +
> >    IdentifierInfo *RCId = ObjCBAttr->getRelatedClass();
> >    IdentifierInfo *CMId = ObjCBAttr->getClassMethod();
> >    IdentifierInfo *IMId = ObjCBAttr->getInstanceMethod();
> > @@ -4008,7 +4008,7 @@ bool Sema::checkObjCBridgeRelatedCompone
> >      }
> >      return false;
> >    }
> > -
> > +
> >    // Check for an existing class method with the given selector name.
> >    if (CfToNs && CMId) {
> >      Selector Sel = Context.Selectors.getUnarySelector(CMId);
> > @@ -4022,7 +4022,7 @@ bool Sema::checkObjCBridgeRelatedCompone
> >        return false;
> >      }
> >    }
> > -
> > +
> >    // Check for an existing instance method with the given selector name.
> >    if (!CfToNs && IMId) {
> >      Selector Sel = Context.Selectors.getNullarySelector(IMId);
> > @@ -4049,7 +4049,7 @@ Sema::CheckObjCBridgeRelatedConversions(
> >    bool NsToCf = (rhsExprACTC == ACTC_retainable && lhsExprACTC == ACTC_coreFoundation);
> >    if (!CfToNs && !NsToCf)
> >      return false;
> > -
> > +
> >    ObjCInterfaceDecl *RelatedClass;
> >    ObjCMethodDecl *ClassMethod = nullptr;
> >    ObjCMethodDecl *InstanceMethod = nullptr;
> > @@ -4058,7 +4058,7 @@ Sema::CheckObjCBridgeRelatedConversions(
> >                                          ClassMethod, InstanceMethod, TDNDecl,
> >                                          CfToNs, Diagnose))
> >      return false;
> > -
> > +
> >    if (CfToNs) {
> >      // Implicit conversion from CF to ObjC object is needed.
> >      if (ClassMethod) {
> > @@ -4075,7 +4075,7 @@ Sema::CheckObjCBridgeRelatedConversions(
> >            << FixItHint::CreateInsertion(SrcExprEndLoc, "]");
> >          Diag(RelatedClass->getLocStart(), diag::note_declared_at);
> >          Diag(TDNDecl->getLocStart(), diag::note_declared_at);
> > -
> > +
> >          QualType receiverType = Context.getObjCInterfaceType(RelatedClass);
> >          // Argument.
> >          Expr *args[] = { SrcExpr };
> > @@ -4118,7 +4118,7 @@ Sema::CheckObjCBridgeRelatedConversions(
> >          }
> >          Diag(RelatedClass->getLocStart(), diag::note_declared_at);
> >          Diag(TDNDecl->getLocStart(), diag::note_declared_at);
> > -
> > +
> >          ExprResult msg =
> >            BuildInstanceMessageImplicit(SrcExpr, SrcType,
> >                                         InstanceMethod->getLocation(),
> > @@ -4144,7 +4144,7 @@ Sema::CheckObjCConversion(SourceRange ca
> >    QualType effCastType = castType;
> >    if (const ReferenceType *ref = castType->getAs<ReferenceType>())
> >      effCastType = ref->getPointeeType();
> > -
> > +
> >    ARCConversionTypeClass exprACTC = classifyTypeForARCConversion(castExprType);
> >    ARCConversionTypeClass castACTC = classifyTypeForARCConversion(effCastType);
> >    if (exprACTC == castACTC) {
> > @@ -4167,7 +4167,7 @@ Sema::CheckObjCConversion(SourceRange ca
> >        if (QDT != castType &&
> >            QDT.getObjCLifetime() !=  Qualifiers::OCL_None) {
> >          if (Diagnose) {
> > -          SourceLocation loc = (castRange.isValid() ? castRange.getBegin()
> > +          SourceLocation loc = (castRange.isValid() ? castRange.getBegin()
> >                                                      : castExpr->getExprLoc());
> >            Diag(loc, diag::err_arc_nolifetime_behavior);
> >          }
> > @@ -4188,7 +4188,7 @@ Sema::CheckObjCConversion(SourceRange ca
> >    // vice-versa).
> >    if (castACTC == ACTC_none && castType->isIntegralType(Context))
> >      return ACR_okay;
> > -
> > +
> >    // Allow casts between pointers to lifetime types (e.g., __strong id*)
> >    // and pointers to void (e.g., cv void *). Casting from void* to lifetime*
> >    // must be explicit.
> > @@ -4229,7 +4229,7 @@ Sema::CheckObjCConversion(SourceRange ca
> >    if (castACTC == ACTC_retainable && exprACTC == ACTC_none &&
> >        ConversionToObjCStringLiteralCheck(castType, castExpr, Diagnose))
> >      return ACR_error;
> > -
> > +
> >    // Do not issue "bridge cast" diagnostic when implicit casting
> >    // a retainable object to a CF type parameter belonging to an audited
> >    // CF API function. Let caller issue a normal type mismatched diagnostic
> > @@ -4322,9 +4322,9 @@ Expr *Sema::stripARCUnbridgedCast(Expr *
> >
> >  bool Sema::CheckObjCARCUnavailableWeakConversion(QualType castType,
> >                                                   QualType exprType) {
> > -  QualType canCastType =
> > +  QualType canCastType =
> >      Context.getCanonicalType(castType).getUnqualifiedType();
> > -  QualType canExprType =
> > +  QualType canExprType =
> >      Context.getCanonicalType(exprType).getUnqualifiedType();
> >    if (isa<ObjCObjectPointerType>(canCastType) &&
> >        castType.getObjCLifetime() == Qualifiers::OCL_Weak &&
> > @@ -4399,7 +4399,7 @@ ExprResult Sema::BuildObjCBridgedCast(So
> >      switch (Kind) {
> >      case OBC_Bridge:
> >        break;
> > -
> > +
> >      case OBC_BridgeRetained: {
> >        bool br = isKnownName("CFBridgingRelease");
> >        Diag(BridgeKeywordLoc, diag::err_arc_bridge_cast_wrong_kind)
> > @@ -4413,14 +4413,14 @@ ExprResult Sema::BuildObjCBridgedCast(So
> >          << FixItHint::CreateReplacement(BridgeKeywordLoc, "__bridge");
> >        Diag(BridgeKeywordLoc, diag::note_arc_bridge_transfer)
> >          << FromType << br
> > -        << FixItHint::CreateReplacement(BridgeKeywordLoc,
> > -                                        br ? "CFBridgingRelease "
> > +        << FixItHint::CreateReplacement(BridgeKeywordLoc,
> > +                                        br ? "CFBridgingRelease "
> >                                             : "__bridge_transfer ");
> >
> >        Kind = OBC_Bridge;
> >        break;
> >      }
> > -
> > +
> >      case OBC_BridgeTransfer:
> >        // We must consume the Objective-C object produced by the cast.
> >        MustConsume = true;
> > @@ -4435,14 +4435,14 @@ ExprResult Sema::BuildObjCBridgedCast(So
> >        // is very dangerous, so we don't do it.
> >        SubExpr = maybeUndoReclaimObject(SubExpr);
> >        break;
> > -
> > -    case OBC_BridgeRetained:
> > +
> > +    case OBC_BridgeRetained:
> >        // Produce the object before casting it.
> >        SubExpr = ImplicitCastExpr::Create(Context, FromType,
> >                                           CK_ARCProduceObject,
> >                                           SubExpr, nullptr, VK_RValue);
> >        break;
> > -
> > +
> >      case OBC_BridgeTransfer: {
> >        bool br = isKnownName("CFBridgingRetain");
> >        Diag(BridgeKeywordLoc, diag::err_arc_bridge_cast_wrong_kind)
> > @@ -4452,14 +4452,14 @@ ExprResult Sema::BuildObjCBridgedCast(So
> >          << T
> >          << SubExpr->getSourceRange()
> >          << Kind;
> > -
> > +
> >        Diag(BridgeKeywordLoc, diag::note_arc_bridge)
> >          << FixItHint::CreateReplacement(BridgeKeywordLoc, "__bridge ");
> >        Diag(BridgeKeywordLoc, diag::note_arc_bridge_retained)
> >          << T << br
> > -        << FixItHint::CreateReplacement(BridgeKeywordLoc,
> > +        << FixItHint::CreateReplacement(BridgeKeywordLoc,
> >                            br ? "CFBridgingRetain " : "__bridge_retained");
> > -
> > +
> >        Kind = OBC_Bridge;
> >        break;
> >      }
> > @@ -4475,13 +4475,13 @@ ExprResult Sema::BuildObjCBridgedCast(So
> >    Expr *Result = new (Context) ObjCBridgedCastExpr(LParenLoc, Kind, CK,
> >                                                     BridgeKeywordLoc,
> >                                                     TSInfo, SubExpr);
> > -
> > +
> >    if (MustConsume) {
> >      Cleanup.setExprNeedsCleanups(true);
> > -    Result = ImplicitCastExpr::Create(Context, T, CK_ARCConsumeObject, Result,
> > +    Result = ImplicitCastExpr::Create(Context, T, CK_ARCConsumeObject, Result,
> >



-- 
宋方睿


More information about the cfe-commits mailing list