r338291 - Remove trailing space
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 30 12:31:00 PDT 2018
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,
> nullptr, VK_RValue);
> }
> -
> +
> return Result;
> }
>
> @@ -4498,6 +4498,6 @@ ExprResult Sema::ActOnObjCBridgedCast(Sc
> CheckTollFreeBridgeCast(T, SubExpr);
> if (!TSInfo)
> TSInfo = Context.getTrivialTypeSourceInfo(T, LParenLoc);
> - return BuildObjCBridgedCast(LParenLoc, Kind, BridgeKeywordLoc, TSInfo,
> + return BuildObjCBridgedCast(LParenLoc, Kind, BridgeKeywordLoc, TSInfo,
> SubExpr);
> }
>
> Modified: cfe/trunk/lib/Sema/SemaInit.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaInit.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaInit.cpp Mon Jul 30 12:24:48 2018
> @@ -191,7 +191,7 @@ static void CheckStringInit(Expr *Str, Q
> if (SL->isPascal())
> StrLength--;
> }
> -
> +
> // [dcl.init.string]p2
> if (StrLength > CAT->getSize().getZExtValue())
> S.Diag(Str->getLocStart(),
> @@ -450,7 +450,7 @@ ExprResult InitListChecker::PerformEmpty
> IsInStd = true;
> }
>
> - if (IsInStd && llvm::StringSwitch<bool>(R->getName())
> + if (IsInStd && llvm::StringSwitch<bool>(R->getName())
> .Cases("basic_string", "deque", "forward_list", true)
> .Cases("list", "map", "multimap", "multiset", true)
> .Cases("priority_queue", "queue", "set", "stack", true)
> @@ -1578,7 +1578,7 @@ void InitListChecker::CheckVectorType(co
> T->getVectorKind() == VectorType::NeonPolyVector)) {
> // The ability to use vector initializer lists is a GNU vector extension
> // and is unrelated to the NEON intrinsics in arm_neon.h. On little
> - // endian machines it works fine, however on big endian machines it
> + // endian machines it works fine, however on big endian machines it
> // exhibits surprising behaviour:
> //
> // uint32x2_t x = {42, 64};
> @@ -2225,7 +2225,7 @@ InitListChecker::CheckDesignatedInitiali
> SemaRef.Diag(D->getLocStart(),
> diag::warn_subobject_initializer_overrides)
> << SourceRange(D->getLocStart(), DIE->getLocEnd());
> -
> +
> SemaRef.Diag(ExistingInit->getLocStart(),
> diag::note_previous_initializer)
> << /*FIXME:has side effects=*/0
> @@ -3000,7 +3000,7 @@ DeclarationName InitializedEntity::getNa
>
> case EK_LambdaCapture:
> return DeclarationName(Capture.VarID);
> -
> +
> case EK_Result:
> case EK_StmtExprResult:
> case EK_Exception:
> @@ -3653,13 +3653,13 @@ ResolveConstructorOverload(Sema &S, Sour
> CandidateSet, SuppressUserConversions);
> else {
> // C++ [over.match.copy]p1:
> - // - When initializing a temporary to be bound to the first parameter
> + // - When initializing a temporary to be bound to the first parameter
> // of a constructor [for type T] that takes a reference to possibly
> // cv-qualified T as its first argument, called with a single
> // argument in the context of direct-initialization, explicit
> // conversion functions are also considered.
> // FIXME: What if a constructor template instantiates to such a signature?
> - bool AllowExplicitConv = AllowExplicit && !CopyInitializing &&
> + bool AllowExplicitConv = AllowExplicit && !CopyInitializing &&
> Args.size() == 1 &&
> hasCopyOrMoveCtorParam(S.Context, Info);
> S.AddOverloadCandidate(Info.Constructor, Info.FoundDecl, Args,
> @@ -4226,7 +4226,7 @@ static OverloadingResult TryRefInitWithC
> (void)DerivedToBase;
> (void)ObjCConversion;
> (void)ObjCLifetimeConversion;
> -
> +
> // Build the candidate set directly in the initialization sequence
> // structure, so that it will persist if we fail.
> OverloadCandidateSet &CandidateSet = Sequence.getFailedCandidateSet();
> @@ -4646,7 +4646,7 @@ static void TryReferenceInitializationCo
> /*FIXME:InOverloadResolution=*/false,
> /*CStyle=*/Kind.isCStyleOrFunctionalCast(),
> /*AllowObjCWritebackConversion=*/false);
> -
> +
> if (ICS.isBad()) {
> // FIXME: Use the conversion function set stored in ICS to turn
> // this into an overloading ambiguity diagnostic. However, we need
> @@ -4787,7 +4787,7 @@ static void TryDefaultInitialization(Sem
> // To default-initialize an object of type T means:
> // - if T is an array type, each element is default-initialized;
> QualType DestType = S.Context.getBaseElementType(Entity.getType());
> -
> +
> // - if T is a (possibly cv-qualified) class type (Clause 9), the default
> // constructor for T is called (and the initialization is ill-formed if
> // T has no accessible default constructor);
> @@ -5043,11 +5043,11 @@ static InvalidICRKind isInvalidICRSource
>
> // If we have a declaration reference, it had better be a local variable.
> } else if (isa<DeclRefExpr>(e)) {
> - // set isWeakAccess to true, to mean that there will be an implicit
> + // set isWeakAccess to true, to mean that there will be an implicit
> // load which requires a cleanup.
> if (e->getType().getObjCLifetime() == Qualifiers::OCL_Weak)
> isWeakAccess = true;
> -
> +
> if (!isAddressOf) return IIK_nonlocal;
>
> VarDecl *var = dyn_cast<VarDecl>(cast<DeclRefExpr>(e)->getDecl());
> @@ -5082,7 +5082,7 @@ static void checkIndirectCopyRestoreSour
> assert(src->isRValue());
> bool isWeakAccess = false;
> InvalidICRKind iik = isInvalidICRSource(S.Context, src, false, isWeakAccess);
> - // If isWeakAccess to true, there will be an implicit
> + // If isWeakAccess to true, there will be an implicit
> // load which requires a cleanup.
> if (S.getLangOpts().ObjCAutoRefCount && isWeakAccess)
> S.Cleanup.setExprNeedsCleanups(true);
> @@ -5124,7 +5124,7 @@ static bool tryObjCWritebackConversion(S
> ArgPointee = ArgArrayType->getElementType();
> ArgType = S.Context.getPointerType(ArgPointee);
> }
> -
> +
> // Handle write-back conversion.
> QualType ConvertedArgType;
> if (!S.isObjCWritebackConversion(ArgType, Entity.getType(),
> @@ -5151,10 +5151,10 @@ static bool tryObjCWritebackConversion(S
> ICS.Standard.First = ICK_Lvalue_To_Rvalue;
> ResultType = Initializer->getType().getNonLValueExprType(S.Context);
> }
> -
> +
> Sequence.AddConversionSequenceStep(ICS, ResultType);
> }
> -
> +
> Sequence.AddPassByIndirectCopyRestoreStep(Entity.getType(), ShouldCopy);
> return true;
> }
> @@ -5567,13 +5567,13 @@ void InitializationSequence::InitializeF
> if (ICS.isStandard() &&
> ICS.Standard.Second == ICK_Writeback_Conversion) {
> // Objective-C ARC writeback conversion.
> -
> +
> // We should copy unless we're passing to an argument explicitly
> // marked 'out'.
> bool ShouldCopy = true;
> if (ParmVarDecl *Param = cast_or_null<ParmVarDecl>(Entity.getDecl()))
> ShouldCopy = (Param->getObjCDeclQualifier() != ParmVarDecl::OBJC_TQ_Out);
> -
> +
> // If there was an lvalue adjustment, add it as a separate conversion.
> if (ICS.Standard.First == ICK_Array_To_Pointer ||
> ICS.Standard.First == ICK_Lvalue_To_Rvalue) {
> @@ -5584,7 +5584,7 @@ void InitializationSequence::InitializeF
> LvalueICS.Standard.First = ICS.Standard.First;
> AddConversionSequenceStep(LvalueICS, ICS.Standard.getToType(0));
> }
> -
> +
> AddPassByIndirectCopyRestoreStep(DestType, ShouldCopy);
> } else if (ICS.isBad()) {
> DeclAccessPair dap;
> @@ -5635,9 +5635,9 @@ getAssignmentAction(const InitializedEnt
> if (Entity.getDecl() &&
> isa<ObjCMethodDecl>(Entity.getDecl()->getDeclContext()))
> return Sema::AA_Sending;
> -
> +
> return !Diagnose ? Sema::AA_Passing : Sema::AA_Passing_CFAudited;
> -
> +
> case InitializedEntity::EK_Result:
> case InitializedEntity::EK_StmtExprResult: // FIXME: Not quite right.
> return Sema::AA_Returning;
> @@ -5743,7 +5743,7 @@ static SourceLocation getInitializationL
>
> case InitializedEntity::EK_LambdaCapture:
> return Entity.getCaptureLoc();
> -
> +
> case InitializedEntity::EK_ArrayElement:
> case InitializedEntity::EK_Member:
> case InitializedEntity::EK_Parameter:
> @@ -6065,9 +6065,9 @@ PerformConstructorInitialization(Sema &S
> ExprResult CurInit((Expr *)nullptr);
>
> // C++ [over.match.copy]p1:
> - // - When initializing a temporary to be bound to the first parameter
> - // of a constructor that takes a reference to possibly cv-qualified
> - // T as its first argument, called with a single argument in the
> + // - When initializing a temporary to be bound to the first parameter
> + // of a constructor that takes a reference to possibly cv-qualified
> + // T as its first argument, called with a single argument in the
> // context of direct-initialization, explicit conversion functions
> // are also considered.
> bool AllowExplicitConv =
> @@ -7130,7 +7130,7 @@ InitializationSequence::Perform(Sema &S,
> Args);
> }
> assert(Kind.getKind() == InitializationKind::IK_Copy ||
> - Kind.isExplicitCast() ||
> + Kind.isExplicitCast() ||
> Kind.getKind() == InitializationKind::IK_DirectList);
> return ExprResult(Args[0]);
> }
> @@ -7832,7 +7832,7 @@ InitializationSequence::Perform(Sema &S,
> // this has already been done when parsing the variable declaration.
> if (!Init->isConstantInitializer(S.Context, false))
> break;
> -
> +
> if (!SourceType->isIntegerType() ||
> 32 != S.Context.getIntWidth(SourceType)) {
> S.Diag(Kind.getLocation(), diag::err_sampler_initializer_not_integer)
> @@ -7868,7 +7868,7 @@ InitializationSequence::Perform(Sema &S,
> break;
> }
> case SK_OCLZeroEvent: {
> - assert(Step->Type->isEventT() &&
> + assert(Step->Type->isEventT() &&
> "Event initialization on non-event type.");
>
> CurInit = S.ImpCastExprToType(CurInit.get(), Step->Type,
> @@ -8365,7 +8365,7 @@ bool InitializationSequence::Diagnose(Se
> llvm_unreachable("Inconsistent overload resolution?");
> break;
> }
> -
> +
> // If this is a defaulted or implicitly-declared function, then
> // it was implicitly deleted. Make it clear that the deletion was
> // implicit.
>
> Modified: cfe/trunk/lib/Sema/SemaLambda.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLambda.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaLambda.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaLambda.cpp Mon Jul 30 12:24:48 2018
> @@ -25,28 +25,28 @@ using namespace clang;
> using namespace sema;
>
> /// Examines the FunctionScopeInfo stack to determine the nearest
> -/// enclosing lambda (to the current lambda) that is 'capture-ready' for
> +/// enclosing lambda (to the current lambda) that is 'capture-ready' for
> /// the variable referenced in the current lambda (i.e. \p VarToCapture).
> /// If successful, returns the index into Sema's FunctionScopeInfo stack
> /// of the capture-ready lambda's LambdaScopeInfo.
> -///
> -/// Climbs down the stack of lambdas (deepest nested lambda - i.e. current
> +///
> +/// Climbs down the stack of lambdas (deepest nested lambda - i.e. current
> /// lambda - is on top) to determine the index of the nearest enclosing/outer
> -/// lambda that is ready to capture the \p VarToCapture being referenced in
> -/// the current lambda.
> +/// lambda that is ready to capture the \p VarToCapture being referenced in
> +/// the current lambda.
> /// As we climb down the stack, we want the index of the first such lambda -
> -/// that is the lambda with the highest index that is 'capture-ready'.
> -///
> +/// that is the lambda with the highest index that is 'capture-ready'.
> +///
> /// A lambda 'L' is capture-ready for 'V' (var or this) if:
> /// - its enclosing context is non-dependent
> /// - and if the chain of lambdas between L and the lambda in which
> -/// V is potentially used (i.e. the lambda at the top of the scope info
> +/// V is potentially used (i.e. the lambda at the top of the scope info
> /// stack), can all capture or have already captured V.
> /// If \p VarToCapture is 'null' then we are trying to capture 'this'.
> -///
> +///
> /// Note that a lambda that is deemed 'capture-ready' still needs to be checked
> /// for whether it is 'capture-capable' (see
> -/// getStackIndexOfNearestEnclosingCaptureCapableLambda), before it can truly
> +/// getStackIndexOfNearestEnclosingCaptureCapableLambda), before it can truly
> /// capture.
> ///
> /// \param FunctionScopes - Sema's stack of nested FunctionScopeInfo's (which a
> @@ -120,7 +120,7 @@ getStackIndexOfNearestEnclosingCaptureRe
> return NoLambdaIsCaptureReady;
> }
> EnclosingDC = getLambdaAwareParentOfDeclContext(EnclosingDC);
> -
> +
> assert(CurScopeIndex);
> --CurScopeIndex;
> } while (!EnclosingDC->isTranslationUnit() &&
> @@ -136,13 +136,13 @@ getStackIndexOfNearestEnclosingCaptureRe
> }
>
> /// Examines the FunctionScopeInfo stack to determine the nearest
> -/// enclosing lambda (to the current lambda) that is 'capture-capable' for
> +/// enclosing lambda (to the current lambda) that is 'capture-capable' for
> /// the variable referenced in the current lambda (i.e. \p VarToCapture).
> /// If successful, returns the index into Sema's FunctionScopeInfo stack
> /// of the capture-capable lambda's LambdaScopeInfo.
> ///
> /// Given the current stack of lambdas being processed by Sema and
> -/// the variable of interest, to identify the nearest enclosing lambda (to the
> +/// the variable of interest, to identify the nearest enclosing lambda (to the
> /// current lambda at the top of the stack) that can truly capture
> /// a variable, it has to have the following two properties:
> /// a) 'capture-ready' - be the innermost lambda that is 'capture-ready':
> @@ -175,7 +175,7 @@ Optional<unsigned> clang::getStackIndexO
> VarDecl *VarToCapture, Sema &S) {
>
> const Optional<unsigned> NoLambdaIsCaptureCapable;
> -
> +
> const Optional<unsigned> OptionalStackIndex =
> getStackIndexOfNearestEnclosingCaptureReadyLambda(FunctionScopes,
> VarToCapture);
> @@ -190,7 +190,7 @@ Optional<unsigned> clang::getStackIndexO
>
> const sema::LambdaScopeInfo *const CaptureReadyLambdaLSI =
> cast<sema::LambdaScopeInfo>(FunctionScopes[IndexOfCaptureReadyLambda]);
> -
> +
> // If VarToCapture is null, we are attempting to capture 'this'
> const bool IsCapturingThis = !VarToCapture;
> const bool IsCapturingVariable = !IsCapturingThis;
> @@ -220,7 +220,7 @@ Optional<unsigned> clang::getStackIndexO
> &IndexOfCaptureReadyLambda);
> if (!CanCaptureThis)
> return NoLambdaIsCaptureCapable;
> - }
> + }
> return IndexOfCaptureReadyLambda;
> }
>
> @@ -245,18 +245,18 @@ getGenericLambdaTemplateParameterList(La
>
> CXXRecordDecl *Sema::createLambdaClosureType(SourceRange IntroducerRange,
> TypeSourceInfo *Info,
> - bool KnownDependent,
> + bool KnownDependent,
> LambdaCaptureDefault CaptureDefault) {
> DeclContext *DC = CurContext;
> while (!(DC->isFunctionOrMethod() || DC->isRecord() || DC->isFileContext()))
> DC = DC->getParent();
> bool IsGenericLambda = getGenericLambdaTemplateParameterList(getCurLambda(),
> - *this);
> + *this);
> // Start constructing the lambda class.
> CXXRecordDecl *Class = CXXRecordDecl::CreateLambda(Context, DC, Info,
> IntroducerRange.getBegin(),
> - KnownDependent,
> - IsGenericLambda,
> + KnownDependent,
> + IsGenericLambda,
> CaptureDefault);
> DC->addDecl(Class);
>
> @@ -270,10 +270,10 @@ static bool isInInlineFunction(const Dec
> if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
> if (FD->isInlined())
> return true;
> -
> +
> DC = DC->getLexicalParent();
> }
> -
> +
> return false;
> }
>
> @@ -379,10 +379,10 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> ArrayRef<ParmVarDecl *> Params,
> const bool IsConstexprSpecified) {
> QualType MethodType = MethodTypeInfo->getType();
> - TemplateParameterList *TemplateParams =
> + TemplateParameterList *TemplateParams =
> getGenericLambdaTemplateParameterList(getCurLambda(), *this);
> // If a lambda appears in a dependent context or is a generic lambda (has
> - // template parameters) and has an 'auto' return type, deduce it to a
> + // template parameters) and has an 'auto' return type, deduce it to a
> // dependent type.
> if (Class->isDependentContext() || TemplateParams) {
> const FunctionProtoType *FPT = MethodType->castAs<FunctionProtoType>();
> @@ -395,9 +395,9 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> }
>
> // C++11 [expr.prim.lambda]p5:
> - // The closure type for a lambda-expression has a public inline function
> + // The closure type for a lambda-expression has a public inline function
> // call operator (13.5.4) whose parameters and return type are described by
> - // the lambda-expression's parameter-declaration-clause and
> + // the lambda-expression's parameter-declaration-clause and
> // trailing-return-type respectively.
> DeclarationName MethodName
> = Context.DeclarationNames.getCXXOperatorName(OO_Call);
> @@ -408,7 +408,7 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> = IntroducerRange.getEnd().getRawEncoding();
> CXXMethodDecl *Method
> = CXXMethodDecl::Create(Context, Class, EndLoc,
> - DeclarationNameInfo(MethodName,
> + DeclarationNameInfo(MethodName,
> IntroducerRange.getBegin(),
> MethodNameLoc),
> MethodType, MethodTypeInfo,
> @@ -417,14 +417,14 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> IsConstexprSpecified,
> EndLoc);
> Method->setAccess(AS_public);
> -
> +
> // Temporarily set the lexical declaration context to the current
> // context, so that the Scope stack matches the lexical nesting.
> - Method->setLexicalDeclContext(CurContext);
> + Method->setLexicalDeclContext(CurContext);
> // Create a function template if we have a template parameter list
> FunctionTemplateDecl *const TemplateMethod = TemplateParams ?
> FunctionTemplateDecl::Create(Context, Class,
> - Method->getLocation(), MethodName,
> + Method->getLocation(), MethodName,
> TemplateParams,
> Method) : nullptr;
> if (TemplateMethod) {
> @@ -432,7 +432,7 @@ CXXMethodDecl *Sema::startLambdaDefiniti
> TemplateMethod->setAccess(AS_public);
> Method->setDescribedFunctionTemplate(TemplateMethod);
> }
> -
> +
> // Add parameters.
> if (!Params.empty()) {
> Method->setParams(Params);
> @@ -493,16 +493,16 @@ void Sema::finishLambdaExplicitCaptures(
> LSI->finishedExplicitCaptures();
> }
>
> -void Sema::addLambdaParameters(CXXMethodDecl *CallOperator, Scope *CurScope) {
> +void Sema::addLambdaParameters(CXXMethodDecl *CallOperator, Scope *CurScope) {
> // Introduce our parameters into the function scope
> - for (unsigned p = 0, NumParams = CallOperator->getNumParams();
> + for (unsigned p = 0, NumParams = CallOperator->getNumParams();
> p < NumParams; ++p) {
> ParmVarDecl *Param = CallOperator->getParamDecl(p);
> -
> +
> // If this has an identifier, add it to the scope stack.
> if (CurScope && Param->getIdentifier()) {
> CheckShadow(CurScope, Param);
> -
> +
> PushOnScopeChains(Param, CurScope);
> }
> }
> @@ -637,7 +637,7 @@ static void adjustBlockReturnsToEnum(Sem
> void Sema::deduceClosureReturnType(CapturingScopeInfo &CSI) {
> assert(CSI.HasImplicitReturnType);
> // If it was ever a placeholder, it had to been deduced to DependentTy.
> - assert(CSI.ReturnType.isNull() || !CSI.ReturnType->isUndeducedType());
> + assert(CSI.ReturnType.isNull() || !CSI.ReturnType->isUndeducedType());
> assert((!isa<LambdaScopeInfo>(CSI) || !getLangOpts().CPlusPlus14) &&
> "lambda expressions use auto deduction in C++14 onwards");
>
> @@ -851,7 +851,7 @@ void Sema::ActOnStartOfLambdaDefinition(
> SmallVector<ParmVarDecl *, 8> Params;
> if (ParamInfo.getNumTypeObjects() == 0) {
> // C++11 [expr.prim.lambda]p4:
> - // If a lambda-expression does not include a lambda-declarator, it is as
> + // If a lambda-expression does not include a lambda-declarator, it is as
> // if the lambda-declarator were ().
> FunctionProtoType::ExtProtoInfo EPI(Context.getDefaultCallingConvention(
> /*IsVariadic=*/false, /*IsCXXMethod=*/true));
> @@ -878,8 +878,8 @@ void Sema::ActOnStartOfLambdaDefinition(
> DeclaratorChunk::FunctionTypeInfo &FTI = ParamInfo.getFunctionTypeInfo();
>
> // C++11 [expr.prim.lambda]p5:
> - // This function call operator is declared const (9.3.1) if and only if
> - // the lambda-expression's parameter-declaration-clause is not followed
> + // This function call operator is declared const (9.3.1) if and only if
> + // the lambda-expression's parameter-declaration-clause is not followed
> // by mutable. It is neither virtual nor declared volatile. [...]
> if (!FTI.hasMutableQualifier())
> FTI.TypeQuals |= DeclSpec::TQ_const;
> @@ -917,8 +917,8 @@ void Sema::ActOnStartOfLambdaDefinition(
> // code_seg attribute on lambda apply to the method.
> if (Attr *A = getImplicitCodeSegOrSectionAttrForFunction(Method, /*IsDefinition=*/true))
> Method->addAttr(A);
> -
> - // Attributes on the lambda apply to the method.
> +
> + // Attributes on the lambda apply to the method.
> ProcessDeclAttributes(CurScope, Method, ParamInfo);
>
> // CUDA lambdas get implicit attributes based on the scope in which they're
> @@ -928,7 +928,7 @@ void Sema::ActOnStartOfLambdaDefinition(
>
> // Introduce the function call operator as the current declaration context.
> PushDeclContext(CurScope, Method);
> -
> +
> // Build the lambda scope.
> buildLambdaScope(LSI, Method, Intro.Range, Intro.Default, Intro.DefaultLoc,
> ExplicitParams, ExplicitResultType, !Method->isConst());
> @@ -959,13 +959,13 @@ void Sema::ActOnStartOfLambdaDefinition(
> for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E;
> PrevCaptureLoc = C->Loc, ++C) {
> if (C->Kind == LCK_This || C->Kind == LCK_StarThis) {
> - if (C->Kind == LCK_StarThis)
> + if (C->Kind == LCK_StarThis)
> Diag(C->Loc, !getLangOpts().CPlusPlus17
> ? diag::ext_star_this_lambda_capture_cxx17
> : diag::warn_cxx14_compat_star_this_lambda_capture);
>
> // C++11 [expr.prim.lambda]p8:
> - // An identifier or this shall not appear more than once in a
> + // An identifier or this shall not appear more than once in a
> // lambda-capture.
> if (LSI->isCXXThisCaptured()) {
> Diag(C->Loc, diag::err_capture_more_than_once)
> @@ -993,7 +993,7 @@ void Sema::ActOnStartOfLambdaDefinition(
> Diag(C->Loc, diag::err_this_capture) << true;
> continue;
> }
> -
> +
> CheckCXXThisCapture(C->Loc, /*Explicit=*/true, /*BuildAndDiagnose*/ true,
> /*FunctionScopeIndexToStopAtPtr*/ nullptr,
> C->Kind == LCK_StarThis);
> @@ -1018,9 +1018,9 @@ void Sema::ActOnStartOfLambdaDefinition(
> // If the initializer expression is usable, but the InitCaptureType
> // is not, then an error has occurred - so ignore the capture for now.
> // for e.g., [n{0}] { }; <-- if no <initializer_list> is included.
> - // FIXME: we should create the init capture variable and mark it invalid
> + // FIXME: we should create the init capture variable and mark it invalid
> // in this case.
> - if (C->InitCaptureType.get().isNull())
> + if (C->InitCaptureType.get().isNull())
> continue;
>
> unsigned InitStyle;
> @@ -1050,7 +1050,7 @@ void Sema::ActOnStartOfLambdaDefinition(
> "init capture has valid but null init?");
>
> // C++11 [expr.prim.lambda]p8:
> - // If a lambda-capture includes a capture-default that is &, the
> + // If a lambda-capture includes a capture-default that is &, the
> // identifiers in the lambda-capture shall not be preceded by &.
> // If a lambda-capture includes a capture-default that is =, [...]
> // each identifier it contains shall be preceded by &.
> @@ -1131,7 +1131,7 @@ void Sema::ActOnStartOfLambdaDefinition(
> } else {
> Diag(C->EllipsisLoc, diag::err_pack_expansion_without_parameter_packs)
> << SourceRange(C->Loc);
> -
> +
> // Just ignore the ellipsis.
> }
> } else if (Var->isParameterPack()) {
> @@ -1189,14 +1189,14 @@ QualType Sema::getLambdaConversionFuncti
> // The function type inside the pointer type is the same as the call
> // operator with some tweaks. The calling convention is the default free
> // function convention, and the type qualifications are lost.
> - const FunctionProtoType::ExtProtoInfo CallOpExtInfo =
> - CallOpProto->getExtProtoInfo();
> + const FunctionProtoType::ExtProtoInfo CallOpExtInfo =
> + CallOpProto->getExtProtoInfo();
> FunctionProtoType::ExtProtoInfo InvokerExtInfo = CallOpExtInfo;
> CallingConv CC = Context.getDefaultCallingConvention(
> CallOpProto->isVariadic(), /*IsCXXMethod=*/false);
> InvokerExtInfo.ExtInfo = InvokerExtInfo.ExtInfo.withCallingConv(CC);
> InvokerExtInfo.TypeQuals = 0;
> - assert(InvokerExtInfo.RefQualifier == RQ_None &&
> + assert(InvokerExtInfo.RefQualifier == RQ_None &&
> "Lambda's call operator should not have a reference qualifier");
> return Context.getFunctionType(CallOpProto->getReturnType(),
> CallOpProto->getParamTypes(), InvokerExtInfo);
> @@ -1227,7 +1227,7 @@ static void addFunctionPointerConversion
> /*IsVariadic=*/false, /*IsCXXMethod=*/true));
> // The conversion function is always const.
> ConvExtInfo.TypeQuals = Qualifiers::Const;
> - QualType ConvTy =
> + QualType ConvTy =
> S.Context.getFunctionType(PtrToFunctionTy, None, ConvExtInfo);
>
> SourceLocation Loc = IntroducerRange.getBegin();
> @@ -1236,8 +1236,8 @@ static void addFunctionPointerConversion
> S.Context.getCanonicalType(PtrToFunctionTy));
> DeclarationNameLoc ConvNameLoc;
> // Construct a TypeSourceInfo for the conversion function, and wire
> - // all the parameters appropriately for the FunctionProtoTypeLoc
> - // so that everything works during transformation/instantiation of
> + // all the parameters appropriately for the FunctionProtoTypeLoc
> + // so that everything works during transformation/instantiation of
> // generic lambdas.
> // The main reason for wiring up the parameters of the conversion
> // function with that of the call operator is so that constructs
> @@ -1247,46 +1247,46 @@ static void addFunctionPointerConversion
> // return a;
> // };
> // };
> - // int (*fp)(int) = L(5);
> + // int (*fp)(int) = L(5);
> // Because the trailing return type can contain DeclRefExprs that refer
> - // to the original call operator's variables, we hijack the call
> + // to the original call operator's variables, we hijack the call
> // operators ParmVarDecls below.
> - TypeSourceInfo *ConvNamePtrToFunctionTSI =
> + TypeSourceInfo *ConvNamePtrToFunctionTSI =
> S.Context.getTrivialTypeSourceInfo(PtrToFunctionTy, Loc);
> ConvNameLoc.NamedType.TInfo = ConvNamePtrToFunctionTSI;
>
> // The conversion function is a conversion to a pointer-to-function.
> TypeSourceInfo *ConvTSI = S.Context.getTrivialTypeSourceInfo(ConvTy, Loc);
> - FunctionProtoTypeLoc ConvTL =
> + FunctionProtoTypeLoc ConvTL =
> ConvTSI->getTypeLoc().getAs<FunctionProtoTypeLoc>();
> // Get the result of the conversion function which is a pointer-to-function.
> - PointerTypeLoc PtrToFunctionTL =
> + PointerTypeLoc PtrToFunctionTL =
> ConvTL.getReturnLoc().getAs<PointerTypeLoc>();
> // Do the same for the TypeSourceInfo that is used to name the conversion
> // operator.
> - PointerTypeLoc ConvNamePtrToFunctionTL =
> + PointerTypeLoc ConvNamePtrToFunctionTL =
> ConvNamePtrToFunctionTSI->getTypeLoc().getAs<PointerTypeLoc>();
> -
> +
> // Get the underlying function types that the conversion function will
> // be converting to (should match the type of the call operator).
> - FunctionProtoTypeLoc CallOpConvTL =
> + FunctionProtoTypeLoc CallOpConvTL =
> PtrToFunctionTL.getPointeeLoc().getAs<FunctionProtoTypeLoc>();
> - FunctionProtoTypeLoc CallOpConvNameTL =
> + FunctionProtoTypeLoc CallOpConvNameTL =
> ConvNamePtrToFunctionTL.getPointeeLoc().getAs<FunctionProtoTypeLoc>();
> -
> +
> // Wire up the FunctionProtoTypeLocs with the call operator's parameters.
> // These parameter's are essentially used to transform the name and
> // the type of the conversion operator. By using the same parameters
> // as the call operator's we don't have to fix any back references that
> - // the trailing return type of the call operator's uses (such as
> + // the trailing return type of the call operator's uses (such as
> // decltype(some_type<decltype(a)>::type{} + decltype(a){}) etc.)
> - // - we can simply use the return type of the call operator, and
> - // everything should work.
> + // - we can simply use the return type of the call operator, and
> + // everything should work.
> SmallVector<ParmVarDecl *, 4> InvokerParams;
> for (unsigned I = 0, N = CallOperator->getNumParams(); I != N; ++I) {
> ParmVarDecl *From = CallOperator->getParamDecl(I);
>
> - InvokerParams.push_back(ParmVarDecl::Create(S.Context,
> + InvokerParams.push_back(ParmVarDecl::Create(S.Context,
> // Temporarily add to the TU. This is set to the invoker below.
> S.Context.getTranslationUnitDecl(),
> From->getLocStart(),
> @@ -1300,14 +1300,14 @@ static void addFunctionPointerConversion
> CallOpConvNameTL.setParam(I, From);
> }
>
> - CXXConversionDecl *Conversion
> - = CXXConversionDecl::Create(S.Context, Class, Loc,
> - DeclarationNameInfo(ConversionName,
> + CXXConversionDecl *Conversion
> + = CXXConversionDecl::Create(S.Context, Class, Loc,
> + DeclarationNameInfo(ConversionName,
> Loc, ConvNameLoc),
> - ConvTy,
> + ConvTy,
> ConvTSI,
> /*isInline=*/true, /*isExplicit=*/false,
> - /*isConstexpr=*/S.getLangOpts().CPlusPlus17,
> + /*isConstexpr=*/S.getLangOpts().CPlusPlus17,
> CallOperator->getBody()->getLocEnd());
> Conversion->setAccess(AS_public);
> Conversion->setImplicit(true);
> @@ -1315,7 +1315,7 @@ static void addFunctionPointerConversion
> if (Class->isGenericLambda()) {
> // Create a template version of the conversion operator, using the template
> // parameter list of the function call operator.
> - FunctionTemplateDecl *TemplateCallOperator =
> + FunctionTemplateDecl *TemplateCallOperator =
> CallOperator->getDescribedFunctionTemplate();
> FunctionTemplateDecl *ConversionTemplate =
> FunctionTemplateDecl::Create(S.Context, Class,
> @@ -1337,19 +1337,19 @@ static void addFunctionPointerConversion
> // using FunctionTy & Loc and get its TypeLoc as a FunctionProtoTypeLoc
> // then rewire the parameters accordingly, by hoisting up the InvokeParams
> // loop below and then use its Params to set Invoke->setParams(...) below.
> - // This would avoid the 'const' qualifier of the calloperator from
> - // contaminating the type of the invoker, which is currently adjusted
> + // This would avoid the 'const' qualifier of the calloperator from
> + // contaminating the type of the invoker, which is currently adjusted
> // in SemaTemplateDeduction.cpp:DeduceTemplateArguments. Fixing the
> // trailing return type of the invoker would require a visitor to rebuild
> // the trailing return type and adjusting all back DeclRefExpr's to refer
> // to the new static invoker parameters - not the call operator's.
> CXXMethodDecl *Invoke
> - = CXXMethodDecl::Create(S.Context, Class, Loc,
> - DeclarationNameInfo(InvokerName, Loc),
> + = CXXMethodDecl::Create(S.Context, Class, Loc,
> + DeclarationNameInfo(InvokerName, Loc),
> InvokerFunctionTy,
> - CallOperator->getTypeSourceInfo(),
> + CallOperator->getTypeSourceInfo(),
> SC_Static, /*IsInline=*/true,
> - /*IsConstexpr=*/false,
> + /*IsConstexpr=*/false,
> CallOperator->getBody()->getLocEnd());
> for (unsigned I = 0, N = CallOperator->getNumParams(); I != N; ++I)
> InvokerParams[I]->setOwningFunction(Invoke);
> @@ -1357,7 +1357,7 @@ static void addFunctionPointerConversion
> Invoke->setAccess(AS_private);
> Invoke->setImplicit(true);
> if (Class->isGenericLambda()) {
> - FunctionTemplateDecl *TemplateCallOperator =
> + FunctionTemplateDecl *TemplateCallOperator =
> CallOperator->getDescribedFunctionTemplate();
> FunctionTemplateDecl *StaticInvokerTemplate = FunctionTemplateDecl::Create(
> S.Context, Class, Loc, InvokerName,
> @@ -1372,7 +1372,7 @@ static void addFunctionPointerConversion
> }
>
> /// Add a lambda's conversion to block pointer.
> -static void addBlockPointerConversion(Sema &S,
> +static void addBlockPointerConversion(Sema &S,
> SourceRange IntroducerRange,
> CXXRecordDecl *Class,
> CXXMethodDecl *CallOperator) {
> @@ -1392,13 +1392,13 @@ static void addBlockPointerConversion(Se
> S.Context.getCanonicalType(BlockPtrTy));
> DeclarationNameLoc NameLoc;
> NameLoc.NamedType.TInfo = S.Context.getTrivialTypeSourceInfo(BlockPtrTy, Loc);
> - CXXConversionDecl *Conversion
> - = CXXConversionDecl::Create(S.Context, Class, Loc,
> + CXXConversionDecl *Conversion
> + = CXXConversionDecl::Create(S.Context, Class, Loc,
> DeclarationNameInfo(Name, Loc, NameLoc),
> - ConvTy,
> + ConvTy,
> S.Context.getTrivialTypeSourceInfo(ConvTy, Loc),
> /*isInline=*/true, /*isExplicit=*/false,
> - /*isConstexpr=*/false,
> + /*isConstexpr=*/false,
> CallOperator->getBody()->getLocEnd());
> Conversion->setAccess(AS_public);
> Conversion->setImplicit(true);
> @@ -1421,7 +1421,7 @@ static ExprResult performLambdaVarCaptur
> // direct-initialized in increasing subscript order.) These
> // initializations are performed in the (unspecified) order in
> // which the non-static data members are declared.
> -
> +
> // C++ [expr.prim.lambda]p12:
> // An entity captured by a lambda-expression is odr-used (3.2) in
> // the scope containing the lambda-expression.
> @@ -1437,8 +1437,8 @@ static ExprResult performLambdaVarCaptur
> InitializationSequence Init(S, Entity, InitKind, Ref);
> return Init.Perform(S, Entity, InitKind, Ref);
> }
> -
> -ExprResult Sema::ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body,
> +
> +ExprResult Sema::ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body,
> Scope *CurScope) {
> LambdaScopeInfo LSI = *cast<LambdaScopeInfo>(FunctionScopes.back());
> ActOnFinishFunctionBody(LSI.CallOperator, Body);
> @@ -1531,9 +1531,9 @@ ExprResult Sema::BuildLambdaExpr(SourceL
> IsGenericLambda = Class->isGenericLambda();
>
> CallOperator->setLexicalDeclContext(Class);
> - Decl *TemplateOrNonTemplateCallOperatorDecl =
> - CallOperator->getDescribedFunctionTemplate()
> - ? CallOperator->getDescribedFunctionTemplate()
> + Decl *TemplateOrNonTemplateCallOperatorDecl =
> + CallOperator->getDescribedFunctionTemplate()
> + ? CallOperator->getDescribedFunctionTemplate()
> : cast<Decl>(CallOperator);
>
> TemplateOrNonTemplateCallOperatorDecl->setLexicalDeclContext(Class);
> @@ -1646,7 +1646,7 @@ ExprResult Sema::BuildLambdaExpr(SourceL
> // FIXME: Fix generic lambda to block conversions.
> if (getLangOpts().Blocks && getLangOpts().ObjC1 && !IsGenericLambda)
> addBlockPointerConversion(*this, IntroducerRange, Class, CallOperator);
> -
> +
> // Finalize the lambda class.
> SmallVector<Decl*, 4> Fields(Class->fields());
> ActOnFields(nullptr, Class->getLocation(), Class, Fields, SourceLocation(),
> @@ -1656,9 +1656,9 @@ ExprResult Sema::BuildLambdaExpr(SourceL
>
> Cleanup.mergeFrom(LambdaCleanup);
>
> - LambdaExpr *Lambda = LambdaExpr::Create(Context, Class, IntroducerRange,
> + LambdaExpr *Lambda = LambdaExpr::Create(Context, Class, IntroducerRange,
> CaptureDefault, CaptureDefaultLoc,
> - Captures,
> + Captures,
> ExplicitParams, ExplicitResultType,
> CaptureInits, EndLoc,
> ContainsUnexpandedParameterPack);
> @@ -1718,7 +1718,7 @@ ExprResult Sema::BuildBlockForLambdaConv
> Expr *Src) {
> // Make sure that the lambda call operator is marked used.
> CXXRecordDecl *Lambda = Conv->getParent();
> - CXXMethodDecl *CallOperator
> + CXXMethodDecl *CallOperator
> = cast<CXXMethodDecl>(
> Lambda->lookup(
> Context.DeclarationNames.getCXXOperatorName(OO_Call)).front());
> @@ -1731,10 +1731,10 @@ ExprResult Sema::BuildBlockForLambdaConv
> CurrentLocation, Src);
> if (!Init.isInvalid())
> Init = ActOnFinishFullExpr(Init.get());
> -
> +
> if (Init.isInvalid())
> return ExprError();
> -
> +
> // Create the new block to be returned.
> BlockDecl *Block = BlockDecl::Create(Context, CurContext, ConvLocation);
>
>
> Modified: cfe/trunk/lib/Sema/SemaLookup.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaLookup.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaLookup.cpp Mon Jul 30 12:24:48 2018
> @@ -1621,7 +1621,7 @@ bool Sema::isVisibleSlow(const NamedDecl
> bool Sema::shouldLinkPossiblyHiddenDecl(LookupResult &R, const NamedDecl *New) {
> // FIXME: If there are both visible and hidden declarations, we need to take
> // into account whether redeclaration is possible. Example:
> - //
> + //
> // Non-imported module:
> // int f(T); // #1
> // Some TU:
> @@ -1795,7 +1795,7 @@ bool Sema::LookupName(LookupResult &R, S
> // actually exists in a Scope).
> while (S && !S->isDeclScope(D))
> S = S->getParent();
> -
> +
> // If the scope containing the declaration is the translation unit,
> // then we'll need to perform our checks based on the matching
> // DeclContexts rather than matching scopes.
> @@ -1806,7 +1806,7 @@ bool Sema::LookupName(LookupResult &R, S
> DeclContext *DC = nullptr;
> if (!S)
> DC = (*I)->getDeclContext()->getRedeclContext();
> -
> +
> IdentifierResolver::iterator LastI = I;
> for (++LastI; LastI != IEnd; ++LastI) {
> if (S) {
> @@ -1815,7 +1815,7 @@ bool Sema::LookupName(LookupResult &R, S
> break;
> } else {
> // Match based on DeclContext.
> - DeclContext *LastDC
> + DeclContext *LastDC
> = (*LastI)->getDeclContext()->getRedeclContext();
> if (!LastDC->Equals(DC))
> break;
> @@ -1843,8 +1843,8 @@ bool Sema::LookupName(LookupResult &R, S
> if (AllowBuiltinCreation && LookupBuiltin(*this, R))
> return true;
>
> - // If we didn't find a use of this identifier, the ExternalSource
> - // may be able to handle the situation.
> + // If we didn't find a use of this identifier, the ExternalSource
> + // may be able to handle the situation.
> // Note: some lookup failures are expected!
> // See e.g. R.isForRedeclaration().
> return (ExternalSource && ExternalSource->LookupUnqualified(R, S));
> @@ -2037,11 +2037,11 @@ bool Sema::LookupQualifiedName(LookupRes
> bool oldVal;
> DeclContext *Context;
> // Set flag in DeclContext informing debugger that we're looking for qualified name
> - QualifiedLookupInScope(DeclContext *ctx) : Context(ctx) {
> - oldVal = ctx->setUseQualifiedLookup();
> + QualifiedLookupInScope(DeclContext *ctx) : Context(ctx) {
> + oldVal = ctx->setUseQualifiedLookup();
> }
> - ~QualifiedLookupInScope() {
> - Context->setUseQualifiedLookup(oldVal);
> + ~QualifiedLookupInScope() {
> + Context->setUseQualifiedLookup(oldVal);
> }
> } QL(LookupCtx);
>
> @@ -2738,7 +2738,7 @@ addAssociatedClassesAndNamespaces(Associ
> case Type::DeducedTemplateSpecialization:
> break;
>
> - // If T is an Objective-C object or interface type, or a pointer to an
> + // If T is an Objective-C object or interface type, or a pointer to an
> // object or interface type, the associated namespace is the global
> // namespace.
> case Type::ObjCObject:
> @@ -4434,7 +4434,7 @@ static void AddKeywordsToConsumer(Sema &
> // Add type-specifier keywords to the set of results.
> static const char *const CTypeSpecs[] = {
> "char", "const", "double", "enum", "float", "int", "long", "short",
> - "signed", "struct", "union", "unsigned", "void", "volatile",
> + "signed", "struct", "union", "unsigned", "void", "volatile",
> "_Complex", "_Imaginary",
> // storage-specifiers as well
> "extern", "inline", "static", "typedef"
> @@ -4450,7 +4450,7 @@ static void AddKeywordsToConsumer(Sema &
> Consumer.addKeywordResult("bool");
> else if (SemaRef.getLangOpts().C99)
> Consumer.addKeywordResult("_Bool");
> -
> +
> if (SemaRef.getLangOpts().CPlusPlus) {
> Consumer.addKeywordResult("class");
> Consumer.addKeywordResult("typename");
>
> Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Mon Jul 30 12:24:48 2018
> @@ -307,15 +307,15 @@ makePropertyAttributesAsWritten(unsigned
> attributesAsWritten |= ObjCPropertyDecl::OBJC_PR_atomic;
> if (Attributes & ObjCDeclSpec::DQ_PR_class)
> attributesAsWritten |= ObjCPropertyDecl::OBJC_PR_class;
> -
> +
> return (ObjCPropertyDecl::PropertyAttributeKind)attributesAsWritten;
> }
>
> -static bool LocPropertyAttribute( ASTContext &Context, const char *attrName,
> +static bool LocPropertyAttribute( ASTContext &Context, const char *attrName,
> SourceLocation LParenLoc, SourceLocation &Loc) {
> if (LParenLoc.isMacroID())
> return false;
> -
> +
> SourceManager &SM = Context.getSourceManager();
> std::pair<FileID, unsigned> locInfo = SM.getDecomposedLoc(LParenLoc);
> // Try to load the file buffer.
> @@ -324,7 +324,7 @@ static bool LocPropertyAttribute( ASTCon
> if (invalidTemp)
> return false;
> const char *tokenBegin = file.data() + locInfo.second;
> -
> +
> // Lex from the start of the given location.
> Lexer lexer(SM.getLocForStartOfFile(locInfo.first),
> Context.getLangOpts(),
> @@ -365,7 +365,7 @@ static void checkAtomicPropertyMismatch(
> if (Attrs & ObjCPropertyDecl::OBJC_PR_nonatomic) return false;
>
> // Was 'atomic' specified directly?
> - if (Property->getPropertyAttributesAsWritten() &
> + if (Property->getPropertyAttributesAsWritten() &
> ObjCPropertyDecl::OBJC_PR_atomic)
> return false;
>
> @@ -382,7 +382,7 @@ static void checkAtomicPropertyMismatch(
> Attrs = Attrs & ~AtomicityMask;
> if (OldIsAtomic)
> Attrs |= ObjCPropertyDecl::OBJC_PR_atomic;
> - else
> + else
> Attrs |= ObjCPropertyDecl::OBJC_PR_nonatomic;
>
> NewProperty->overwritePropertyAttributes(Attrs);
> @@ -429,7 +429,7 @@ Sema::HandlePropertyInClassExtension(Sco
> DeclContext *DC = CurContext;
> IdentifierInfo *PropertyId = FD.D.getIdentifier();
> ObjCInterfaceDecl *CCPrimary = CDecl->getClassInterface();
> -
> +
> // We need to look in the @interface to see if the @property was
> // already declared.
> if (!CCPrimary) {
> @@ -445,7 +445,7 @@ Sema::HandlePropertyInClassExtension(Sco
> ObjCPropertyDecl *PIDecl = CCPrimary->FindPropertyVisibleInPrimaryClass(
> PropertyId, ObjCPropertyDecl::getQueryKind(isClassProperty));
>
> - // If we found a property in an extension, complain.
> + // If we found a property in an extension, complain.
> if (PIDecl && isa<ObjCCategoryDecl>(PIDecl->getDeclContext())) {
> Diag(AtLoc, diag::err_duplicate_property);
> Diag(PIDecl->getLocation(), diag::note_property_declare);
> @@ -482,7 +482,7 @@ Sema::HandlePropertyInClassExtension(Sco
> << PIDecl->getGetterName() << GetterSel;
> Diag(PIDecl->getLocation(), diag::note_property_declare);
> }
> -
> +
> // Always adopt the getter from the original declaration.
> GetterSel = PIDecl->getGetterName();
> Attributes |= ObjCDeclSpec::DQ_PR_getter;
> @@ -503,7 +503,7 @@ Sema::HandlePropertyInClassExtension(Sco
> Attributes = (Attributes & ~OwnershipMask) | ExistingOwnership;
> }
>
> - // If the redeclaration is 'weak' but the original property is not,
> + // If the redeclaration is 'weak' but the original property is not,
> if ((Attributes & ObjCPropertyDecl::OBJC_PR_weak) &&
> !(PIDecl->getPropertyAttributesAsWritten()
> & ObjCPropertyDecl::OBJC_PR_weak) &&
> @@ -511,7 +511,7 @@ Sema::HandlePropertyInClassExtension(Sco
> PIDecl->getType().getObjCLifetime() == Qualifiers::OCL_None) {
> Diag(AtLoc, diag::warn_property_implicitly_mismatched);
> Diag(PIDecl->getLocation(), diag::note_property_declare);
> - }
> + }
> }
>
> // Create a new ObjCPropertyDecl with the DeclContext being
> @@ -546,13 +546,13 @@ Sema::HandlePropertyInClassExtension(Sco
> (!isObjCPointerConversion(ClassExtPropertyT, PrimaryClassPropertyT,
> ConvertedType, IncompatibleObjC))
> || IncompatibleObjC) {
> - Diag(AtLoc,
> + Diag(AtLoc,
> diag::err_type_mismatch_continuation_class) << PDecl->getType();
> Diag(PIDecl->getLocation(), diag::note_property_declare);
> return nullptr;
> }
> }
> -
> +
> // Check that atomicity of property in class extension matches the previous
> // declaration.
> checkAtomicPropertyMismatch(*this, PIDecl, PDecl, true);
> @@ -621,7 +621,7 @@ ObjCPropertyDecl *Sema::CreatePropertyDe
> DeclContext *DC = CDecl;
> ObjCPropertyDecl *PDecl = ObjCPropertyDecl::Create(Context, DC,
> FD.D.getIdentifierLoc(),
> - PropertyId, AtLoc,
> + PropertyId, AtLoc,
> LParenLoc, T, TInfo);
>
> bool isClassProperty = (AttributesAsWritten & ObjCDeclSpec::DQ_PR_class) ||
> @@ -770,7 +770,7 @@ static void checkARCPropertyImpl(Sema &S
> S.Diag(ivar->getLocation(), diag::err_arc_assign_property_ownership)
> << property->getDeclName()
> << ivar->getDeclName()
> - << ((property->getPropertyAttributesAsWritten()
> + << ((property->getPropertyAttributesAsWritten()
> & ObjCPropertyDecl::OBJC_PR_assign) != 0);
> break;
>
> @@ -794,12 +794,12 @@ static void checkARCPropertyImpl(Sema &S
> /// life-time is assumed 'strong'.
> static void setImpliedPropertyAttributeForReadOnlyProperty(
> ObjCPropertyDecl *property, ObjCIvarDecl *ivar) {
> - Qualifiers::ObjCLifetime propertyLifetime =
> + Qualifiers::ObjCLifetime propertyLifetime =
> getImpliedARCOwnership(property->getPropertyAttributes(),
> property->getType());
> if (propertyLifetime != Qualifiers::OCL_None)
> return;
> -
> +
> if (!ivar) {
> // if no backing ivar, make property 'strong'.
> property->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_strong);
> @@ -1094,7 +1094,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> Diag(IC->getLocation(), diag::warn_auto_implicit_atomic_property);
> Diag(property->getLocation(), diag::note_property_declare);
> }
> -
> +
> if (const ObjCCategoryDecl *CD =
> dyn_cast<ObjCCategoryDecl>(property->getDeclContext())) {
> if (!CD->IsClassExtension()) {
> @@ -1121,17 +1121,17 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> }
> }
> }
> -
> +
> if (!ReadWriteProperty) {
> Diag(property->getLocation(), diag::warn_auto_readonly_iboutlet_property)
> << property;
> SourceLocation readonlyLoc;
> - if (LocPropertyAttribute(Context, "readonly",
> + if (LocPropertyAttribute(Context, "readonly",
> property->getLParenLoc(), readonlyLoc)) {
> - SourceLocation endLoc =
> + SourceLocation endLoc =
> readonlyLoc.getLocWithOffset(strlen("readonly")-1);
> SourceRange ReadonlySourceRange(readonlyLoc, endLoc);
> - Diag(property->getLocation(),
> + Diag(property->getLocation(),
> diag::note_auto_readonly_iboutlet_fixup_suggest) <<
> FixItHint::CreateReplacement(ReadonlySourceRange, "readwrite");
> }
> @@ -1194,10 +1194,10 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> (property->getPropertyAttributesAsWritten() &
> ObjCPropertyDecl::OBJC_PR_readonly) &&
> PropertyIvarType->isObjCRetainableType()) {
> - setImpliedPropertyAttributeForReadOnlyProperty(property, Ivar);
> + setImpliedPropertyAttributeForReadOnlyProperty(property, Ivar);
> }
> -
> - ObjCPropertyDecl::PropertyAttributeKind kind
> +
> + ObjCPropertyDecl::PropertyAttributeKind kind
> = property->getPropertyAttributes();
>
> bool isARCWeak = false;
> @@ -1244,16 +1244,16 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> }
>
> if (AtLoc.isInvalid()) {
> - // Check when default synthesizing a property that there is
> + // Check when default synthesizing a property that there is
> // an ivar matching property name and issue warning; since this
> // is the most common case of not using an ivar used for backing
> // property in non-default synthesis case.
> ObjCInterfaceDecl *ClassDeclared=nullptr;
> - ObjCIvarDecl *originalIvar =
> - IDecl->lookupInstanceVariable(property->getIdentifier(),
> + ObjCIvarDecl *originalIvar =
> + IDecl->lookupInstanceVariable(property->getIdentifier(),
> ClassDeclared);
> if (originalIvar) {
> - Diag(PropertyDiagLoc,
> + Diag(PropertyDiagLoc,
> diag::warn_autosynthesis_property_ivar_match)
> << PropertyId << (Ivar == nullptr) << PropertyIvar
> << originalIvar->getIdentifier();
> @@ -1261,7 +1261,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> Diag(originalIvar->getLocation(), diag::note_ivar_decl);
> }
> }
> -
> +
> if (!Ivar) {
> // In ARC, give the ivar a lifetime qualifier based on the
> // property attributes.
> @@ -1280,10 +1280,10 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> Qualifiers::ObjCLifetime lifetime =
> getImpliedARCOwnership(kind, PropertyIvarType);
> assert(lifetime && "no lifetime for property?");
> -
> +
> Qualifiers qs;
> qs.addObjCLifetime(lifetime);
> - PropertyIvarType = Context.getQualifiedType(PropertyIvarType, qs);
> + PropertyIvarType = Context.getQualifiedType(PropertyIvarType, qs);
> }
> }
>
> @@ -1333,7 +1333,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
>
> // Check that type of property and its ivar are type compatible.
> if (!Context.hasSameType(PropertyIvarType, IvarType)) {
> - if (isa<ObjCObjectPointerType>(PropertyIvarType)
> + if (isa<ObjCObjectPointerType>(PropertyIvarType)
> && isa<ObjCObjectPointerType>(IvarType))
> compat =
> Context.canAssignObjCInterfaces(
> @@ -1390,7 +1390,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> } else if (PropertyIvar)
> // @dynamic
> Diag(PropertyDiagLoc, diag::err_dynamic_property_ivar_decl);
> -
> +
> assert (property && "ActOnPropertyImplDecl - property declaration missing");
> ObjCPropertyImplDecl *PIDecl =
> ObjCPropertyImplDecl::Create(Context, CurContext, AtLoc, PropertyLoc,
> @@ -1412,7 +1412,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> // FIXME. Eventually we want to do this for Objective-C as well.
> SynthesizedFunctionScope Scope(*this, getterMethod);
> ImplicitParamDecl *SelfDecl = getterMethod->getSelfDecl();
> - DeclRefExpr *SelfExpr =
> + DeclRefExpr *SelfExpr =
> new (Context) DeclRefExpr(SelfDecl, false, SelfDecl->getType(),
> VK_LValue, PropertyDiagLoc);
> MarkDeclRefReferenced(SelfExpr);
> @@ -1440,7 +1440,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> }
> if (property->hasAttr<NSReturnsNotRetainedAttr>() &&
> !getterMethod->hasAttr<NSReturnsNotRetainedAttr>()) {
> - Diag(getterMethod->getLocation(),
> + Diag(getterMethod->getLocation(),
> diag::warn_property_getter_owning_mismatch);
> Diag(property->getLocation(), diag::note_property_declare);
> }
> @@ -1464,7 +1464,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> // FIXME. Eventually we want to do this for Objective-C as well.
> SynthesizedFunctionScope Scope(*this, setterMethod);
> ImplicitParamDecl *SelfDecl = setterMethod->getSelfDecl();
> - DeclRefExpr *SelfExpr =
> + DeclRefExpr *SelfExpr =
> new (Context) DeclRefExpr(SelfDecl, false, SelfDecl->getType(),
> VK_LValue, PropertyDiagLoc);
> MarkDeclRefReferenced(SelfExpr);
> @@ -1484,27 +1484,27 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> DeclRefExpr *rhs = new (Context) DeclRefExpr(Param, false, T,
> VK_LValue, PropertyDiagLoc);
> MarkDeclRefReferenced(rhs);
> - ExprResult Res = BuildBinOp(S, PropertyDiagLoc,
> + ExprResult Res = BuildBinOp(S, PropertyDiagLoc,
> BO_Assign, lhs, rhs);
> - if (property->getPropertyAttributes() &
> + if (property->getPropertyAttributes() &
> ObjCPropertyDecl::OBJC_PR_atomic) {
> Expr *callExpr = Res.getAs<Expr>();
> - if (const CXXOperatorCallExpr *CXXCE =
> + if (const CXXOperatorCallExpr *CXXCE =
> dyn_cast_or_null<CXXOperatorCallExpr>(callExpr))
> if (const FunctionDecl *FuncDecl = CXXCE->getDirectCallee())
> if (!FuncDecl->isTrivial())
> if (property->getType()->isReferenceType()) {
> - Diag(PropertyDiagLoc,
> + Diag(PropertyDiagLoc,
> diag::err_atomic_property_nontrivial_assign_op)
> << property->getType();
> - Diag(FuncDecl->getLocStart(),
> + Diag(FuncDecl->getLocStart(),
> diag::note_callee_decl) << FuncDecl;
> }
> }
> PIDecl->setSetterCXXAssignment(Res.getAs<Expr>());
> }
> }
> -
> +
> if (IC) {
> if (Synthesize)
> if (ObjCPropertyImplDecl *PPIDecl =
> @@ -1537,9 +1537,9 @@ Decl *Sema::ActOnPropertyImplDecl(Scope
> Ivar = IDecl->lookupInstanceVariable(PropertyId, ClassDeclared);
> }
> // Issue diagnostics only if Ivar belongs to current class.
> - if (Ivar && Ivar->getSynthesize() &&
> + if (Ivar && Ivar->getSynthesize() &&
> declaresSameEntity(IC->getClassInterface(), ClassDeclared)) {
> - Diag(Ivar->getLocation(), diag::err_undeclared_var_use)
> + Diag(Ivar->getLocation(), diag::err_undeclared_var_use)
> << PropertyId;
> Ivar->setInvalidDecl();
> }
> @@ -1582,7 +1582,7 @@ Sema::DiagnosePropertyMismatch(ObjCPrope
> Property->getPropertyAttributes();
> ObjCPropertyDecl::PropertyAttributeKind SAttr =
> SuperProperty->getPropertyAttributes();
> -
> +
> // We allow readonly properties without an explicit ownership
> // (assign/unsafe_unretained/weak/retain/strong/copy) in super class
> // to be overridden by a property with any explicit ownership in the subclass.
> @@ -1642,7 +1642,7 @@ Sema::DiagnosePropertyMismatch(ObjCPrope
> // FIXME. For future support of covariant property types, revisit this.
> bool IncompatibleObjC = false;
> QualType ConvertedType;
> - if (!isObjCPointerConversion(RHSType, LHSType,
> + if (!isObjCPointerConversion(RHSType, LHSType,
> ConvertedType, IncompatibleObjC) ||
> IncompatibleObjC) {
> Diag(Property->getLocation(), diag::warn_property_types_are_incompatible)
> @@ -1683,7 +1683,7 @@ bool Sema::DiagnosePropertyAccessorMisma
> compat = false;
> }
> }
> -
> +
> if (!compat) {
> Diag(Loc, diag::warn_accessor_property_type_mismatch)
> << property->getDeclName()
> @@ -1744,9 +1744,9 @@ CollectImmediateProperties(ObjCContainer
> ObjCPropertyDecl *PropertyFromSuper =
> SuperPropMap[std::make_pair(Prop->getIdentifier(),
> Prop->isClassProperty())];
> - // Exclude property for protocols which conform to class's super-class,
> + // Exclude property for protocols which conform to class's super-class,
> // as super-class has to implement the property.
> - if (!PropertyFromSuper ||
> + if (!PropertyFromSuper ||
> PropertyFromSuper->getIdentifier() != Prop->getIdentifier()) {
> ObjCPropertyDecl *&PropEntry =
> PropMap[std::make_pair(Prop->getIdentifier(),
> @@ -1788,7 +1788,7 @@ Sema::IvarBacksCurrentMethodAccessor(Obj
> Method->isInstanceMethod());
> if (!IMD || !IMD->isPropertyAccessor())
> return false;
> -
> +
> // look up a property declaration whose one of its accessors is implemented
> // by this method.
> for (const auto *Property : IFace->instance_properties()) {
> @@ -1841,7 +1841,7 @@ void Sema::DefaultSynthesizeProperties(S
> return;
> ObjCInterfaceDecl::PropertyMap SuperPropMap;
> CollectSuperClassPropertyImplementations(IDecl, SuperPropMap);
> -
> +
> for (unsigned i = 0, e = PropertyOrder.size(); i != e; i++) {
> ObjCPropertyDecl *Prop = PropertyOrder[i];
> // Is there a matching property synthesize/dynamic?
> @@ -1997,7 +1997,7 @@ void Sema::DiagnoseUnimplementedProperti
> }
> if (IDecl)
> CollectSuperClassPropertyImplementations(IDecl, NoNeedToImplPropMap);
> -
> +
> // When SynthesizeProperties is true, we only check class properties.
> CollectImmediateProperties(CDecl, PropMap, NoNeedToImplPropMap,
> SynthesizeProperties/*CollectClassPropsOnly*/);
> @@ -2048,7 +2048,7 @@ void Sema::DiagnoseUnimplementedProperti
> // Collect property accessors implemented in current implementation.
> for (const auto *I : IMPDecl->methods())
> InsMap.insert(I);
> -
> +
> ObjCCategoryDecl *C = dyn_cast<ObjCCategoryDecl>(CDecl);
> ObjCInterfaceDecl *PrimaryClass = nullptr;
> if (C && !C->IsClassExtension())
> @@ -2121,7 +2121,7 @@ Sema::AtomicPropertySetterGetterRules (O
> for (const auto *Ext : IDecl->known_extensions())
> for (auto *Prop : Ext->properties())
> PM[std::make_pair(Prop->getIdentifier(), Prop->isClassProperty())] = Prop;
> -
> +
> for (ObjCContainerDecl::PropertyMap::iterator I = PM.begin(), E = PM.end();
> I != E; ++I) {
> const ObjCPropertyDecl *Property = I->second;
> @@ -2191,7 +2191,7 @@ Sema::AtomicPropertySetterGetterRules (O
> << FixItHint::CreateInsertion(AfterLParen, NonatomicStr);
> } else if (Property->getLParenLoc().isInvalid()) {
> //@property id etc.
> - SourceLocation startLoc =
> + SourceLocation startLoc =
> Property->getTypeSourceInfo()->getTypeLoc().getBeginLoc();
> Diag(Property->getLocation(),
> diag::note_atomic_property_fixup_suggest)
> @@ -2301,8 +2301,8 @@ static void AddPropertyAttrs(Sema &S, Ob
> ObjCPropertyDecl *Property) {
> // Should we just clone all attributes over?
> for (const auto *A : Property->attrs()) {
> - if (isa<DeprecatedAttr>(A) ||
> - isa<UnavailableAttr>(A) ||
> + if (isa<DeprecatedAttr>(A) ||
> + isa<UnavailableAttr>(A) ||
> isa<AvailabilityAttr>(A))
> PropertyMethod->addAttr(A->clone(S.Context));
> }
> @@ -2332,7 +2332,7 @@ void Sema::ProcessPropertyDecl(ObjCPrope
> getClassMethod(property->getGetterName()) :
> CatDecl->getClassInterface()->
> getInstanceMethod(property->getGetterName());
> -
> +
> SetterMethod = IsClassProperty ?
> CD->getClassMethod(property->getSetterName()) :
> CD->getInstanceMethod(property->getSetterName());
> @@ -2352,7 +2352,7 @@ void Sema::ProcessPropertyDecl(ObjCPrope
> Diag(SetterMethod->getLocation(), diag::err_setter_type_void);
> if (SetterMethod->param_size() != 1 ||
> !Context.hasSameUnqualifiedType(
> - (*SetterMethod->param_begin())->getType().getNonReferenceType(),
> + (*SetterMethod->param_begin())->getType().getNonReferenceType(),
> property->getType().getNonReferenceType())) {
> Diag(property->getLocation(),
> diag::warn_accessor_property_type_mismatch)
> @@ -2406,11 +2406,11 @@ void Sema::ProcessPropertyDecl(ObjCPrope
> if (property->hasAttr<NSReturnsNotRetainedAttr>())
> GetterMethod->addAttr(NSReturnsNotRetainedAttr::CreateImplicit(Context,
> Loc));
> -
> +
> if (property->hasAttr<ObjCReturnsInnerPointerAttr>())
> GetterMethod->addAttr(
> ObjCReturnsInnerPointerAttr::CreateImplicit(Context, Loc));
> -
> +
> if (const SectionAttr *SA = property->getAttr<SectionAttr>())
> GetterMethod->addAttr(
> SectionAttr::CreateImplicit(Context, SectionAttr::GNU_section,
> @@ -2535,12 +2535,12 @@ void Sema::CheckObjCPropertyAttributes(D
> // FIXME: Improve the reported location.
> if (!PDecl || PDecl->isInvalidDecl())
> return;
> -
> +
> if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
> (Attributes & ObjCDeclSpec::DQ_PR_readwrite))
> Diag(Loc, diag::err_objc_property_attr_mutually_exclusive)
> << "readonly" << "readwrite";
> -
> +
> ObjCPropertyDecl *PropertyDecl = cast<ObjCPropertyDecl>(PDecl);
> QualType PropertyTy = PropertyDecl->getType();
>
> @@ -2656,19 +2656,19 @@ void Sema::CheckObjCPropertyAttributes(D
> if (Attributes & ObjCDeclSpec::DQ_PR_readonly) {
> // do nothing
> } else if (getLangOpts().ObjCAutoRefCount) {
> - // With arc, @property definitions should default to strong when
> + // With arc, @property definitions should default to strong when
> // not specified.
> PropertyDecl->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_strong);
> } else if (PropertyTy->isObjCObjectPointerType()) {
> - bool isAnyClassTy =
> - (PropertyTy->isObjCClassType() ||
> + bool isAnyClassTy =
> + (PropertyTy->isObjCClassType() ||
> PropertyTy->isObjCQualifiedClassType());
> // In non-gc, non-arc mode, 'Class' is treated as a 'void *' no need to
> // issue any warning.
> if (isAnyClassTy && getLangOpts().getGC() == LangOptions::NonGC)
> ;
> else if (propertyInPrimaryClass) {
> - // Don't issue warning on property with no life time in class
> + // Don't issue warning on property with no life time in class
> // extension as it is inherited from property in primary class.
> // Skip this warning in gc-only mode.
> if (getLangOpts().getGC() != LangOptions::GCOnly)
> @@ -2696,7 +2696,7 @@ void Sema::CheckObjCPropertyAttributes(D
> !(Attributes & ObjCDeclSpec::DQ_PR_strong) &&
> PropertyTy->isBlockPointerType())
> Diag(Loc, diag::warn_objc_property_retain_of_block);
> -
> +
> if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
> (Attributes & ObjCDeclSpec::DQ_PR_setter))
> Diag(Loc, diag::warn_objc_readonly_property_has_setter);
>
> Modified: cfe/trunk/lib/Sema/SemaPseudoObject.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaPseudoObject.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaPseudoObject.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaPseudoObject.cpp Mon Jul 30 12:24:48 2018
> @@ -316,10 +316,10 @@ namespace {
> OpaqueValueExpr *InstanceKey;
> ObjCMethodDecl *AtIndexGetter;
> Selector AtIndexGetterSelector;
> -
> +
> ObjCMethodDecl *AtIndexSetter;
> Selector AtIndexSetterSelector;
> -
> +
> public:
> ObjCSubscriptOpBuilder(Sema &S, ObjCSubscriptRefExpr *refExpr, bool IsUnique)
> : PseudoOpBuilder(S, refExpr->getSourceRange().getBegin(), IsUnique),
> @@ -367,7 +367,7 @@ namespace {
> /// Capture the given expression in an OpaqueValueExpr.
> OpaqueValueExpr *PseudoOpBuilder::capture(Expr *e) {
> // Make a new OVE whose source is the given expression.
> - OpaqueValueExpr *captured =
> + OpaqueValueExpr *captured =
> new (S.Context) OpaqueValueExpr(GenericLoc, e->getType(),
> e->getValueKind(), e->getObjectKind(),
> e);
> @@ -389,7 +389,7 @@ OpaqueValueExpr *PseudoOpBuilder::captur
> assert(ResultIndex == PseudoObjectExpr::NoResult);
>
> // If the expression hasn't already been captured, just capture it
> - // and set the new semantic
> + // and set the new semantic
> if (!isa<OpaqueValueExpr>(e)) {
> OpaqueValueExpr *cap = capture(e);
> setResultToLastSemantic();
> @@ -618,11 +618,11 @@ bool ObjCPropertyOpBuilder::findGetter()
> // Must build the getter selector the hard way.
> ObjCMethodDecl *setter = RefExpr->getImplicitPropertySetter();
> assert(setter && "both setter and getter are null - cannot happen");
> - IdentifierInfo *setterName =
> + IdentifierInfo *setterName =
> setter->getSelector().getIdentifierInfoForSlot(0);
> IdentifierInfo *getterName =
> &S.Context.Idents.get(setterName->getName().substr(3));
> - GetterSelector =
> + GetterSelector =
> S.PP.getSelectorTable().getNullarySelector(getterName);
> return false;
> }
> @@ -636,7 +636,7 @@ bool ObjCPropertyOpBuilder::findGetter()
> /// Try to find the most accurate setter declaration for the property
> /// reference.
> ///
> -/// \return true if a setter was found, in which case Setter
> +/// \return true if a setter was found, in which case Setter
> bool ObjCPropertyOpBuilder::findSetter(bool warn) {
> // For implicit properties, just trust the lookup we already did.
> if (RefExpr->isImplicitProperty()) {
> @@ -987,9 +987,9 @@ ExprResult ObjCPropertyOpBuilder::comple
> // ObjCSubscript build stuff.
> //
>
> -/// objective-c subscripting-specific behavior for doing lvalue-to-rvalue
> +/// objective-c subscripting-specific behavior for doing lvalue-to-rvalue
> /// conversion.
> -/// FIXME. Remove this routine if it is proven that no additional
> +/// FIXME. Remove this routine if it is proven that no additional
> /// specifity is needed.
> ExprResult ObjCSubscriptOpBuilder::buildRValueOperation(Expr *op) {
> ExprResult result = PseudoOpBuilder::buildRValueOperation(op);
> @@ -1007,21 +1007,21 @@ ObjCSubscriptOpBuilder::buildAssignmentO
> // There must be a method to do the Index'ed assignment.
> if (!findAtIndexSetter())
> return ExprError();
> -
> +
> // Verify that we can do a compound assignment.
> if (opcode != BO_Assign && !findAtIndexGetter())
> return ExprError();
> -
> +
> ExprResult result =
> PseudoOpBuilder::buildAssignmentOperation(Sc, opcLoc, opcode, LHS, RHS);
> if (result.isInvalid()) return ExprError();
> -
> +
> // Various warnings about objc Index'ed assignments in ARC.
> if (S.getLangOpts().ObjCAutoRefCount && InstanceBase) {
> S.checkRetainCycles(InstanceBase->getSourceExpr(), RHS);
> S.checkUnsafeExprAssigns(opcLoc, LHS, RHS);
> }
> -
> +
> return result;
> }
>
> @@ -1049,15 +1049,15 @@ Expr *ObjCSubscriptOpBuilder::rebuildAnd
> return syntacticBase;
> }
>
> -/// CheckSubscriptingKind - This routine decide what type
> +/// CheckSubscriptingKind - This routine decide what type
> /// of indexing represented by "FromE" is being done.
> -Sema::ObjCSubscriptKind
> +Sema::ObjCSubscriptKind
> Sema::CheckSubscriptingKind(Expr *FromE) {
> // If the expression already has integral or enumeration type, we're golden.
> QualType T = FromE->getType();
> if (T->isIntegralOrEnumerationType())
> return OS_Array;
> -
> +
> // If we don't have a class type in C++, there's no way we can get an
> // expression of integral or enumeration type.
> const RecordType *RecordTy = T->getAs<RecordType>();
> @@ -1066,7 +1066,7 @@ Sema::ObjCSubscriptKind
> // All other scalar cases are assumed to be dictionary indexing which
> // caller handles, with diagnostics if needed.
> return OS_Dictionary;
> - if (!getLangOpts().CPlusPlus ||
> + if (!getLangOpts().CPlusPlus ||
> !RecordTy || RecordTy->isIncompleteType()) {
> // No indexing can be done. Issue diagnostics and quit.
> const Expr *IndexExpr = FromE->IgnoreParenImpCasts();
> @@ -1078,12 +1078,12 @@ Sema::ObjCSubscriptKind
> << T;
> return OS_Error;
> }
> -
> +
> // We must have a complete class type.
> - if (RequireCompleteType(FromE->getExprLoc(), T,
> + if (RequireCompleteType(FromE->getExprLoc(), T,
> diag::err_objc_index_incomplete_class_type, FromE))
> return OS_Error;
> -
> +
> // Look for a conversion to an integral, enumeration type, or
> // objective-C pointer type.
> int NoIntegrals=0, NoObjCIdPointers=0;
> @@ -1125,17 +1125,17 @@ Sema::ObjCSubscriptKind
>
> /// CheckKeyForObjCARCConversion - This routine suggests bridge casting of CF
> /// objects used as dictionary subscript key objects.
> -static void CheckKeyForObjCARCConversion(Sema &S, QualType ContainerT,
> +static void CheckKeyForObjCARCConversion(Sema &S, QualType ContainerT,
> Expr *Key) {
> if (ContainerT.isNull())
> return;
> // dictionary subscripting.
> // - (id)objectForKeyedSubscript:(id)key;
> IdentifierInfo *KeyIdents[] = {
> - &S.Context.Idents.get("objectForKeyedSubscript")
> + &S.Context.Idents.get("objectForKeyedSubscript")
> };
> Selector GetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
> - ObjCMethodDecl *Getter = S.LookupMethodInObjectType(GetterSelector, ContainerT,
> + ObjCMethodDecl *Getter = S.LookupMethodInObjectType(GetterSelector, ContainerT,
> true /*instance*/);
> if (!Getter)
> return;
> @@ -1147,25 +1147,25 @@ static void CheckKeyForObjCARCConversion
> bool ObjCSubscriptOpBuilder::findAtIndexGetter() {
> if (AtIndexGetter)
> return true;
> -
> +
> Expr *BaseExpr = RefExpr->getBaseExpr();
> QualType BaseT = BaseExpr->getType();
> -
> +
> QualType ResultType;
> if (const ObjCObjectPointerType *PTy =
> BaseT->getAs<ObjCObjectPointerType>()) {
> ResultType = PTy->getPointeeType();
> }
> - Sema::ObjCSubscriptKind Res =
> + Sema::ObjCSubscriptKind Res =
> S.CheckSubscriptingKind(RefExpr->getKeyExpr());
> if (Res == Sema::OS_Error) {
> if (S.getLangOpts().ObjCAutoRefCount)
> - CheckKeyForObjCARCConversion(S, ResultType,
> + CheckKeyForObjCARCConversion(S, ResultType,
> RefExpr->getKeyExpr());
> return false;
> }
> bool arrayRef = (Res == Sema::OS_Array);
> -
> +
> if (ResultType.isNull()) {
> S.Diag(BaseExpr->getExprLoc(), diag::err_objc_subscript_base_type)
> << BaseExpr->getType() << arrayRef;
> @@ -1175,24 +1175,24 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> // dictionary subscripting.
> // - (id)objectForKeyedSubscript:(id)key;
> IdentifierInfo *KeyIdents[] = {
> - &S.Context.Idents.get("objectForKeyedSubscript")
> + &S.Context.Idents.get("objectForKeyedSubscript")
> };
> AtIndexGetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
> }
> else {
> // - (id)objectAtIndexedSubscript:(size_t)index;
> IdentifierInfo *KeyIdents[] = {
> - &S.Context.Idents.get("objectAtIndexedSubscript")
> + &S.Context.Idents.get("objectAtIndexedSubscript")
> };
> -
> +
> AtIndexGetterSelector = S.Context.Selectors.getSelector(1, KeyIdents);
> }
> -
> - AtIndexGetter = S.LookupMethodInObjectType(AtIndexGetterSelector, ResultType,
> +
> + AtIndexGetter = S.LookupMethodInObjectType(AtIndexGetterSelector, ResultType,
> true /*instance*/);
> -
> +
> if (!AtIndexGetter && S.getLangOpts().DebuggerObjCLiteral) {
> - AtIndexGetter = ObjCMethodDecl::Create(S.Context, SourceLocation(),
> + AtIndexGetter = ObjCMethodDecl::Create(S.Context, SourceLocation(),
> SourceLocation(), AtIndexGetterSelector,
> S.Context.getObjCIdType() /*ReturnType*/,
> nullptr /*TypeSourceInfo */,
> @@ -1220,20 +1220,20 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> << BaseExpr->getType() << 0 << arrayRef;
> return false;
> }
> - AtIndexGetter =
> - S.LookupInstanceMethodInGlobalPool(AtIndexGetterSelector,
> - RefExpr->getSourceRange(),
> + AtIndexGetter =
> + S.LookupInstanceMethodInGlobalPool(AtIndexGetterSelector,
> + RefExpr->getSourceRange(),
> true);
> }
> -
> +
> if (AtIndexGetter) {
> QualType T = AtIndexGetter->parameters()[0]->getType();
> if ((arrayRef && !T->isIntegralOrEnumerationType()) ||
> (!arrayRef && !T->isObjCObjectPointerType())) {
> - S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
> + S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
> arrayRef ? diag::err_objc_subscript_index_type
> : diag::err_objc_subscript_key_type) << T;
> - S.Diag(AtIndexGetter->parameters()[0]->getLocation(),
> + S.Diag(AtIndexGetter->parameters()[0]->getLocation(),
> diag::note_parameter_type) << T;
> return false;
> }
> @@ -1251,32 +1251,32 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> bool ObjCSubscriptOpBuilder::findAtIndexSetter() {
> if (AtIndexSetter)
> return true;
> -
> +
> Expr *BaseExpr = RefExpr->getBaseExpr();
> QualType BaseT = BaseExpr->getType();
> -
> +
> QualType ResultType;
> if (const ObjCObjectPointerType *PTy =
> BaseT->getAs<ObjCObjectPointerType>()) {
> ResultType = PTy->getPointeeType();
> }
> -
> - Sema::ObjCSubscriptKind Res =
> +
> + Sema::ObjCSubscriptKind Res =
> S.CheckSubscriptingKind(RefExpr->getKeyExpr());
> if (Res == Sema::OS_Error) {
> if (S.getLangOpts().ObjCAutoRefCount)
> - CheckKeyForObjCARCConversion(S, ResultType,
> + CheckKeyForObjCARCConversion(S, ResultType,
> RefExpr->getKeyExpr());
> return false;
> }
> bool arrayRef = (Res == Sema::OS_Array);
> -
> +
> if (ResultType.isNull()) {
> S.Diag(BaseExpr->getExprLoc(), diag::err_objc_subscript_base_type)
> << BaseExpr->getType() << arrayRef;
> return false;
> }
> -
> +
> if (!arrayRef) {
> // dictionary subscripting.
> // - (void)setObject:(id)object forKeyedSubscript:(id)key;
> @@ -1294,7 +1294,7 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> };
> AtIndexSetterSelector = S.Context.Selectors.getSelector(2, KeyIdents);
> }
> - AtIndexSetter = S.LookupMethodInObjectType(AtIndexSetterSelector, ResultType,
> + AtIndexSetter = S.LookupMethodInObjectType(AtIndexSetterSelector, ResultType,
> true /*instance*/);
>
> if (!AtIndexSetter && S.getLangOpts().DebuggerObjCLiteral) {
> @@ -1328,35 +1328,35 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> Params.push_back(key);
> AtIndexSetter->setMethodParams(S.Context, Params, None);
> }
> -
> +
> if (!AtIndexSetter) {
> if (!BaseT->isObjCIdType()) {
> - S.Diag(BaseExpr->getExprLoc(),
> + S.Diag(BaseExpr->getExprLoc(),
> diag::err_objc_subscript_method_not_found)
> << BaseExpr->getType() << 1 << arrayRef;
> return false;
> }
> - AtIndexSetter =
> - S.LookupInstanceMethodInGlobalPool(AtIndexSetterSelector,
> - RefExpr->getSourceRange(),
> + AtIndexSetter =
> + S.LookupInstanceMethodInGlobalPool(AtIndexSetterSelector,
> + RefExpr->getSourceRange(),
> true);
> }
> -
> +
> bool err = false;
> if (AtIndexSetter && arrayRef) {
> QualType T = AtIndexSetter->parameters()[1]->getType();
> if (!T->isIntegralOrEnumerationType()) {
> - S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
> + S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
> diag::err_objc_subscript_index_type) << T;
> - S.Diag(AtIndexSetter->parameters()[1]->getLocation(),
> + S.Diag(AtIndexSetter->parameters()[1]->getLocation(),
> diag::note_parameter_type) << T;
> err = true;
> }
> T = AtIndexSetter->parameters()[0]->getType();
> if (!T->isObjCObjectPointerType()) {
> - S.Diag(RefExpr->getBaseExpr()->getExprLoc(),
> + S.Diag(RefExpr->getBaseExpr()->getExprLoc(),
> diag::err_objc_subscript_object_type) << T << arrayRef;
> - S.Diag(AtIndexSetter->parameters()[0]->getLocation(),
> + S.Diag(AtIndexSetter->parameters()[0]->getLocation(),
> diag::note_parameter_type) << T;
> err = true;
> }
> @@ -1371,7 +1371,7 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> else
> S.Diag(RefExpr->getBaseExpr()->getExprLoc(),
> diag::err_objc_subscript_dic_object_type) << T;
> - S.Diag(AtIndexSetter->parameters()[i]->getLocation(),
> + S.Diag(AtIndexSetter->parameters()[i]->getLocation(),
> diag::note_parameter_type) << T;
> err = true;
> }
> @@ -1385,13 +1385,13 @@ bool ObjCSubscriptOpBuilder::findAtIndex
> ExprResult ObjCSubscriptOpBuilder::buildGet() {
> if (!findAtIndexGetter())
> return ExprError();
> -
> +
> QualType receiverType = InstanceBase->getType();
> -
> +
> // Build a message-send.
> ExprResult msg;
> Expr *Index = InstanceKey;
> -
> +
> // Arguments.
> Expr *args[] = { Index };
> assert(InstanceBase);
> @@ -1417,17 +1417,17 @@ ExprResult ObjCSubscriptOpBuilder::build
> S.DiagnoseUseOfDecl(AtIndexSetter, GenericLoc);
> QualType receiverType = InstanceBase->getType();
> Expr *Index = InstanceKey;
> -
> +
> // Arguments.
> Expr *args[] = { op, Index };
> -
> +
> // Build a message-send.
> ExprResult msg = S.BuildInstanceMessageImplicit(InstanceBase, receiverType,
> GenericLoc,
> AtIndexSetterSelector,
> AtIndexSetter,
> MultiExprArg(args, 2));
> -
> +
> if (!msg.isInvalid() && captureSetValueAsResult) {
> ObjCMessageExpr *msgExpr =
> cast<ObjCMessageExpr>(msg.get()->IgnoreImplicit());
> @@ -1435,7 +1435,7 @@ ExprResult ObjCSubscriptOpBuilder::build
> if (CanCaptureValue(arg))
> msgExpr->setArg(0, captureValueAsResult(arg));
> }
> -
> +
> return msg;
> }
>
>
> Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaStmt.cpp Mon Jul 30 12:24:48 2018
> @@ -216,7 +216,7 @@ void Sema::DiagnoseUnusedExprResult(cons
> // expression is a call to a function with the warn_unused_result attribute,
> // we warn no matter the location. Because of the order in which the various
> // checks need to happen, we factor out the macro-related test here.
> - bool ShouldSuppress =
> + bool ShouldSuppress =
> SourceMgr.isMacroBodyExpansion(ExprLoc) ||
> SourceMgr.isInSystemMacro(ExprLoc);
>
> @@ -1879,7 +1879,7 @@ Sema::ActOnObjCForCollectionStmt(SourceL
> VarDecl *D = dyn_cast<VarDecl>(DS->getSingleDecl());
> if (!D || D->isInvalidDecl())
> return StmtError();
> -
> +
> FirstType = D->getType();
> // C99 6.8.5p3: The declaration part of a 'for' statement shall only
> // declare identifiers for objects having storage class 'auto' or
> @@ -2373,7 +2373,7 @@ Sema::BuildCXXForRangeStmt(SourceLocatio
> // Rather, we need to determine what it was when the array was first
> // created - so we resort to using sizeof(vla)/sizeof(element).
> // For e.g.
> - // void f(int b) {
> + // void f(int b) {
> // int vla[b];
> // b = -1; <-- This should not affect the num of iterations below
> // for (int &c : vla) { .. }
> @@ -2399,7 +2399,7 @@ Sema::BuildCXXForRangeStmt(SourceLocatio
> EndVar->getSourceRange());
> if (SizeOfVLAExprR.isInvalid())
> return StmtError();
> -
> +
> ExprResult SizeOfEachElementExprR = ActOnUnaryExprOrTypeTraitExpr(
> EndVar->getLocation(), UETT_SizeOf,
> /*isType=*/true,
> @@ -2416,7 +2416,7 @@ Sema::BuildCXXForRangeStmt(SourceLocatio
> SizeOfVLAExprR.get(), SizeOfEachElementExprR.get());
> if (BoundExpr.isInvalid())
> return StmtError();
> -
> +
> } else {
> // Can't be a DependentSizedArrayType or an IncompleteArrayType since
> // UnqAT is not incomplete and Range is not type-dependent.
> @@ -3366,7 +3366,7 @@ bool Sema::DeduceFunctionTypeFromReturnE
> // statement with a non-type-dependent operand.
> assert(AT->isDeduced() && "should have deduced to dependent type");
> return false;
> - }
> + }
>
> if (RetExpr) {
> // Otherwise, [...] deduce a value for U using the rules of template
>
> Modified: cfe/trunk/lib/Sema/SemaStmtAsm.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmtAsm.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaStmtAsm.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp Mon Jul 30 12:24:48 2018
> @@ -603,7 +603,7 @@ StmtResult Sema::ActOnGCCAsmStmt(SourceL
> Context.getTargetInfo(), Context);
> if (ConstraintLoc.isValid())
> return Diag(ConstraintLoc, diag::error_inoutput_conflict_with_clobber);
> -
> +
> return NS;
> }
>
>
> Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Mon Jul 30 12:24:48 2018
> @@ -888,7 +888,7 @@ ParsedTemplateArgument Sema::ActOnTempla
>
> // This is a normal type template argument. Note, if the type template
> // argument is an injected-class-name for a template, it has a dual nature
> - // and can be used as either a type or a template. We handle that in
> + // and can be used as either a type or a template. We handle that in
> // convertTypeTemplateArgumentToTemplate.
> return ParsedTemplateArgument(ParsedTemplateArgument::Type,
> ParsedType.get().getAsOpaquePtr(),
> @@ -1044,14 +1044,14 @@ NamedDecl *Sema::ActOnNonTypeTemplatePar
> // Check that we have valid decl-specifiers specified.
> auto CheckValidDeclSpecifiers = [this, &D] {
> // C++ [temp.param]
> - // p1
> + // p1
> // template-parameter:
> // ...
> // parameter-declaration
> - // p2
> + // p2
> // ... A storage class shall not be specified in a template-parameter
> // declaration.
> - // [dcl.typedef]p1:
> + // [dcl.typedef]p1:
> // The typedef specifier [...] shall not be used in the decl-specifier-seq
> // of a parameter-declaration
> const DeclSpec &DS = D.getDeclSpec();
> @@ -1061,22 +1061,22 @@ NamedDecl *Sema::ActOnNonTypeTemplatePar
> };
> if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified)
> EmitDiag(DS.getStorageClassSpecLoc());
> -
> +
> if (DS.getThreadStorageClassSpec() != TSCS_unspecified)
> EmitDiag(DS.getThreadStorageClassSpecLoc());
> -
> - // [dcl.inline]p1:
> - // The inline specifier can be applied only to the declaration or
> +
> + // [dcl.inline]p1:
> + // The inline specifier can be applied only to the declaration or
> // definition of a variable or function.
> -
> +
> if (DS.isInlineSpecified())
> EmitDiag(DS.getInlineSpecLoc());
> -
> +
> // [dcl.constexpr]p1:
> - // The constexpr specifier shall be applied only to the definition of a
> - // variable or variable template or the declaration of a function or
> + // The constexpr specifier shall be applied only to the definition of a
> + // variable or variable template or the declaration of a function or
> // function template.
> -
> +
> if (DS.isConstexprSpecified())
> EmitDiag(DS.getConstexprSpecLoc());
>
> @@ -1094,7 +1094,7 @@ NamedDecl *Sema::ActOnNonTypeTemplatePar
> };
>
> CheckValidDeclSpecifiers();
> -
> +
> if (TInfo->getType()->isUndeducedType()) {
> Diag(D.getIdentifierLoc(),
> diag::warn_cxx14_compat_template_nontype_parm_auto_type)
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp Mon Jul 30 12:24:48 2018
> @@ -4599,7 +4599,7 @@ bool Sema::DeduceReturnType(FunctionDecl
> CXXRecordDecl *Lambda = cast<CXXMethodDecl>(FD)->getParent();
> FunctionDecl *CallOp = Lambda->getLambdaCallOperator();
>
> - // For a generic lambda, instantiate the call operator if needed.
> + // For a generic lambda, instantiate the call operator if needed.
> if (auto *Args = FD->getTemplateSpecializationArgs()) {
> CallOp = InstantiateFunctionDeclaration(
> CallOp->getDescribedFunctionTemplate(), Args, Loc);
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp Mon Jul 30 12:24:48 2018
> @@ -52,7 +52,7 @@ using namespace sema;
> /// used to determine the proper set of template instantiation arguments for
> /// friend function template specializations.
> MultiLevelTemplateArgumentList
> -Sema::getTemplateInstantiationArgs(NamedDecl *D,
> +Sema::getTemplateInstantiationArgs(NamedDecl *D,
> const TemplateArgumentList *Innermost,
> bool RelativeToPrimary,
> const FunctionDecl *Pattern) {
> @@ -61,7 +61,7 @@ Sema::getTemplateInstantiationArgs(Named
>
> if (Innermost)
> Result.addOuterTemplateArguments(Innermost);
> -
> +
> DeclContext *Ctx = dyn_cast<DeclContext>(D);
> if (!Ctx) {
> Ctx = D->getDeclContext();
> @@ -100,7 +100,7 @@ Sema::getTemplateInstantiationArgs(Named
> // use empty template parameter lists for all of the outer templates
> // to avoid performing any substitutions.
> if (Ctx->isTranslationUnit()) {
> - if (TemplateTemplateParmDecl *TTP
> + if (TemplateTemplateParmDecl *TTP
> = dyn_cast<TemplateTemplateParmDecl>(D)) {
> for (unsigned I = 0, N = TTP->getDepth() + 1; I != N; ++I)
> Result.addOuterTemplateArguments(None);
> @@ -108,7 +108,7 @@ Sema::getTemplateInstantiationArgs(Named
> }
> }
> }
> -
> +
> while (!Ctx->isFileContext()) {
> // Add template arguments from a class template instantiation.
> if (ClassTemplateSpecializationDecl *Spec
> @@ -119,8 +119,8 @@ Sema::getTemplateInstantiationArgs(Named
> break;
>
> Result.addOuterTemplateArguments(&Spec->getTemplateInstantiationArgs());
> -
> - // If this class template specialization was instantiated from a
> +
> + // If this class template specialization was instantiated from a
> // specialized member that is a class template, we're done.
> assert(Spec->getSpecializedTemplate() && "No class template?");
> if (Spec->getSpecializedTemplate()->isMemberSpecialization())
> @@ -129,11 +129,11 @@ Sema::getTemplateInstantiationArgs(Named
> // Add template arguments from a function template specialization.
> else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Ctx)) {
> if (!RelativeToPrimary &&
> - (Function->getTemplateSpecializationKind() ==
> + (Function->getTemplateSpecializationKind() ==
> TSK_ExplicitSpecialization &&
> !Function->getClassScopeSpecializationPattern()))
> break;
> -
> +
> if (const TemplateArgumentList *TemplateArgs
> = Function->getTemplateSpecializationArgs()) {
> // Add the template arguments for this specialization.
> @@ -154,7 +154,7 @@ Sema::getTemplateInstantiationArgs(Named
> // Add the "injected" template arguments.
> Result.addOuterTemplateArguments(FunTmpl->getInjectedTemplateArgs());
> }
> -
> +
> // If this is a friend declaration and it declares an entity at
> // namespace scope, take arguments from its lexical parent
> // instead of its semantic parent, unless of course the pattern we're
> @@ -200,7 +200,7 @@ bool Sema::CodeSynthesisContext::isInsta
> case DeclaringSpecialMember:
> case DefiningSynthesizedFunction:
> return false;
> -
> +
> // This function should never be called when Kind's value is Memoization.
> case Memoization:
> break;
> @@ -413,7 +413,7 @@ bool Sema::InstantiatingTemplate::CheckI
> SourceRange InstantiationRange) {
> assert(SemaRef.NonInstantiationEntries <=
> SemaRef.CodeSynthesisContexts.size());
> - if ((SemaRef.CodeSynthesisContexts.size() -
> + if ((SemaRef.CodeSynthesisContexts.size() -
> SemaRef.NonInstantiationEntries)
> <= SemaRef.getLangOpts().InstantiationDepth)
> return false;
> @@ -517,9 +517,9 @@ void Sema::PrintInstantiationStack() {
> FunctionTemplateDecl *FnTmpl = cast<FunctionTemplateDecl>(Active->Entity);
> Diags.Report(Active->PointOfInstantiation,
> diag::note_explicit_template_arg_substitution_here)
> - << FnTmpl
> - << getTemplateArgumentBindingsText(FnTmpl->getTemplateParameters(),
> - Active->TemplateArgs,
> + << FnTmpl
> + << getTemplateArgumentBindingsText(FnTmpl->getTemplateParameters(),
> + Active->TemplateArgs,
> Active->NumTemplateArgs)
> << Active->InstantiationRange;
> break;
> @@ -531,8 +531,8 @@ void Sema::PrintInstantiationStack() {
> Diags.Report(Active->PointOfInstantiation,
> diag::note_function_template_deduction_instantiation_here)
> << FnTmpl
> - << getTemplateArgumentBindingsText(FnTmpl->getTemplateParameters(),
> - Active->TemplateArgs,
> + << getTemplateArgumentBindingsText(FnTmpl->getTemplateParameters(),
> + Active->TemplateArgs,
> Active->NumTemplateArgs)
> << Active->InstantiationRange;
> } else {
> @@ -556,7 +556,7 @@ void Sema::PrintInstantiationStack() {
> Diags.Report(Active->PointOfInstantiation,
> diag::note_deduced_template_arg_substitution_here)
> << IsVar << IsTemplate << cast<NamedDecl>(Active->Entity)
> - << getTemplateArgumentBindingsText(Params, Active->TemplateArgs,
> + << getTemplateArgumentBindingsText(Params, Active->TemplateArgs,
> Active->NumTemplateArgs)
> << Active->InstantiationRange;
> }
> @@ -596,8 +596,8 @@ void Sema::PrintInstantiationStack() {
> diag::note_prior_template_arg_substitution)
> << isa<TemplateTemplateParmDecl>(Parm)
> << Name
> - << getTemplateArgumentBindingsText(TemplateParams,
> - Active->TemplateArgs,
> + << getTemplateArgumentBindingsText(TemplateParams,
> + Active->TemplateArgs,
> Active->NumTemplateArgs)
> << Active->InstantiationRange;
> break;
> @@ -614,8 +614,8 @@ void Sema::PrintInstantiationStack() {
>
> Diags.Report(Active->PointOfInstantiation,
> diag::note_template_default_arg_checking)
> - << getTemplateArgumentBindingsText(TemplateParams,
> - Active->TemplateArgs,
> + << getTemplateArgumentBindingsText(TemplateParams,
> + Active->TemplateArgs,
> Active->NumTemplateArgs)
> << Active->InstantiationRange;
> break;
> @@ -660,7 +660,7 @@ Optional<TemplateDeductionInfo *> Sema::
> Active = CodeSynthesisContexts.rbegin(),
> ActiveEnd = CodeSynthesisContexts.rend();
> Active != ActiveEnd;
> - ++Active)
> + ++Active)
> {
> switch (Active->Kind) {
> case CodeSynthesisContext::TemplateInstantiation:
> @@ -678,7 +678,7 @@ Optional<TemplateDeductionInfo *> Sema::
> case CodeSynthesisContext::PriorTemplateArgumentSubstitution:
> case CodeSynthesisContext::DefaultTemplateArgumentChecking:
> // A default template argument instantiation and substitution into
> - // template parameters with arguments for prior parameters may or may
> + // template parameters with arguments for prior parameters may or may
> // not be a SFINAE context; look further up the stack.
> break;
>
> @@ -752,18 +752,18 @@ namespace {
> ArrayRef<UnexpandedParameterPack> Unexpanded,
> bool &ShouldExpand, bool &RetainExpansion,
> Optional<unsigned> &NumExpansions) {
> - return getSema().CheckParameterPacksForExpansion(EllipsisLoc,
> + return getSema().CheckParameterPacksForExpansion(EllipsisLoc,
> PatternRange, Unexpanded,
> - TemplateArgs,
> + TemplateArgs,
> ShouldExpand,
> RetainExpansion,
> NumExpansions);
> }
>
> - void ExpandingFunctionParameterPack(ParmVarDecl *Pack) {
> + void ExpandingFunctionParameterPack(ParmVarDecl *Pack) {
> SemaRef.CurrentInstantiationScope->MakeInstantiatedLocalArgPack(Pack);
> }
> -
> +
> TemplateArgument ForgetPartiallySubstitutedPack() {
> TemplateArgument Result;
> if (NamedDecl *PartialPack
> @@ -777,14 +777,14 @@ namespace {
> TemplateArgs.setArgument(Depth, Index, TemplateArgument());
> }
> }
> -
> +
> return Result;
> }
> -
> +
> void RememberPartiallySubstitutedPack(TemplateArgument Arg) {
> if (Arg.isNull())
> return;
> -
> +
> if (NamedDecl *PartialPack
> = SemaRef.CurrentInstantiationScope->getPartiallySubstitutedPack()){
> MultiLevelTemplateArgumentList &TemplateArgs
> @@ -799,7 +799,7 @@ namespace {
> /// this declaration.
> Decl *TransformDecl(SourceLocation Loc, Decl *D);
>
> - void transformAttrs(Decl *Old, Decl *New) {
> + void transformAttrs(Decl *Old, Decl *New) {
> SemaRef.InstantiateAttrs(TemplateArgs, Old, New);
> }
>
> @@ -817,7 +817,7 @@ namespace {
> NewMD->setInstantiationOfMemberFunction(OldMD,
> TSK_ImplicitInstantiation);
> }
> -
> +
> SemaRef.CurrentInstantiationScope->InstantiatedLocal(Old, New);
>
> // We recreated a local declaration, but not by instantiating it. There
> @@ -825,7 +825,7 @@ namespace {
> if (auto *DC = dyn_cast<DeclContext>(Old))
> SemaRef.PerformDependentDiagnostics(DC, TemplateArgs);
> }
> -
> +
> /// Transform the definition of the given declaration by
> /// instantiating it.
> Decl *TransformDefinition(SourceLocation Loc, Decl *D);
> @@ -833,20 +833,20 @@ namespace {
> /// Transform the first qualifier within a scope by instantiating the
> /// declaration.
> NamedDecl *TransformFirstQualifierInScope(NamedDecl *D, SourceLocation Loc);
> -
> +
> /// Rebuild the exception declaration and register the declaration
> /// as an instantiated local.
> - VarDecl *RebuildExceptionDecl(VarDecl *ExceptionDecl,
> + VarDecl *RebuildExceptionDecl(VarDecl *ExceptionDecl,
> TypeSourceInfo *Declarator,
> SourceLocation StartLoc,
> SourceLocation NameLoc,
> IdentifierInfo *Name);
>
> - /// Rebuild the Objective-C exception declaration and register the
> + /// Rebuild the Objective-C exception declaration and register the
> /// declaration as an instantiated local.
> - VarDecl *RebuildObjCExceptionDecl(VarDecl *ExceptionDecl,
> + VarDecl *RebuildObjCExceptionDecl(VarDecl *ExceptionDecl,
> TypeSourceInfo *TSInfo, QualType T);
> -
> +
> /// Check for tag mismatches when instantiating an
> /// elaborated type.
> QualType RebuildElaboratedType(SourceLocation KeywordLoc,
> @@ -921,11 +921,11 @@ namespace {
> TemplateParameterList *TransformTemplateParameterList(
> TemplateParameterList *OrigTPL) {
> if (!OrigTPL || !OrigTPL->size()) return OrigTPL;
> -
> +
> DeclContext *Owner = OrigTPL->getParam(0)->getDeclContext();
> - TemplateDeclInstantiator DeclInstantiator(getSema(),
> + TemplateDeclInstantiator DeclInstantiator(getSema(),
> /* DeclContext *Owner */ Owner, TemplateArgs);
> - return DeclInstantiator.SubstTemplateParams(OrigTPL);
> + return DeclInstantiator.SubstTemplateParams(OrigTPL);
> }
> private:
> ExprResult transformNonTypeTemplateParmRef(NonTypeTemplateParmDecl *parm,
> @@ -937,17 +937,17 @@ namespace {
> bool TemplateInstantiator::AlreadyTransformed(QualType T) {
> if (T.isNull())
> return true;
> -
> +
> if (T->isInstantiationDependentType() || T->isVariablyModifiedType())
> return false;
> -
> +
> getSema().MarkDeclarationsReferencedInType(Loc, T);
> return true;
> }
>
> static TemplateArgument
> getPackSubstitutedTemplateArgument(Sema &S, TemplateArgument Arg) {
> - assert(S.ArgumentPackSubstitutionIndex >= 0);
> + assert(S.ArgumentPackSubstitutionIndex >= 0);
> assert(S.ArgumentPackSubstitutionIndex < (int)Arg.pack_size());
> Arg = Arg.pack_begin()[S.ArgumentPackSubstitutionIndex];
> if (Arg.isPackExpansion())
> @@ -970,9 +970,9 @@ Decl *TemplateInstantiator::TransformDec
> return D;
>
> TemplateArgument Arg = TemplateArgs(TTP->getDepth(), TTP->getPosition());
> -
> +
> if (TTP->isParameterPack()) {
> - assert(Arg.getKind() == TemplateArgument::Pack &&
> + assert(Arg.getKind() == TemplateArgument::Pack &&
> "Missing argument pack");
> Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
> }
> @@ -1000,22 +1000,22 @@ Decl *TemplateInstantiator::TransformDef
> }
>
> NamedDecl *
> -TemplateInstantiator::TransformFirstQualifierInScope(NamedDecl *D,
> +TemplateInstantiator::TransformFirstQualifierInScope(NamedDecl *D,
> SourceLocation Loc) {
> - // If the first part of the nested-name-specifier was a template type
> + // If the first part of the nested-name-specifier was a template type
> // parameter, instantiate that type parameter down to a tag type.
> if (TemplateTypeParmDecl *TTPD = dyn_cast_or_null<TemplateTypeParmDecl>(D)) {
> - const TemplateTypeParmType *TTP
> + const TemplateTypeParmType *TTP
> = cast<TemplateTypeParmType>(getSema().Context.getTypeDeclType(TTPD));
> -
> +
> if (TTP->getDepth() < TemplateArgs.getNumLevels()) {
> // FIXME: This needs testing w/ member access expressions.
> TemplateArgument Arg = TemplateArgs(TTP->getDepth(), TTP->getIndex());
> -
> +
> if (TTP->isParameterPack()) {
> - assert(Arg.getKind() == TemplateArgument::Pack &&
> + assert(Arg.getKind() == TemplateArgument::Pack &&
> "Missing argument pack");
> -
> +
> if (getSema().ArgumentPackSubstitutionIndex == -1)
> return nullptr;
>
> @@ -1025,16 +1025,16 @@ TemplateInstantiator::TransformFirstQual
> QualType T = Arg.getAsType();
> if (T.isNull())
> return cast_or_null<NamedDecl>(TransformDecl(Loc, D));
> -
> +
> if (const TagType *Tag = T->getAs<TagType>())
> return Tag->getDecl();
> -
> +
> // The resulting type is not a tag; complain.
> getSema().Diag(Loc, diag::err_nested_name_spec_non_tag) << T;
> return nullptr;
> }
> }
> -
> +
> return cast_or_null<NamedDecl>(TransformDecl(Loc, D));
> }
>
> @@ -1051,8 +1051,8 @@ TemplateInstantiator::RebuildExceptionDe
> return Var;
> }
>
> -VarDecl *TemplateInstantiator::RebuildObjCExceptionDecl(VarDecl *ExceptionDecl,
> - TypeSourceInfo *TSInfo,
> +VarDecl *TemplateInstantiator::RebuildObjCExceptionDecl(VarDecl *ExceptionDecl,
> + TypeSourceInfo *TSInfo,
> QualType T) {
> VarDecl *Var = inherited::RebuildObjCExceptionDecl(ExceptionDecl, TSInfo, T);
> if (Var)
> @@ -1107,13 +1107,13 @@ TemplateName TemplateInstantiator::Trans
> if (!TemplateArgs.hasTemplateArgument(TTP->getDepth(),
> TTP->getPosition()))
> return Name;
> -
> +
> TemplateArgument Arg = TemplateArgs(TTP->getDepth(), TTP->getPosition());
> -
> +
> if (TTP->isParameterPack()) {
> - assert(Arg.getKind() == TemplateArgument::Pack &&
> + assert(Arg.getKind() == TemplateArgument::Pack &&
> "Missing argument pack");
> -
> +
> if (getSema().ArgumentPackSubstitutionIndex == -1) {
> // We have the template argument pack to substitute, but we're not
> // actually expanding the enclosing pack expansion yet. So, just
> @@ -1123,7 +1123,7 @@ TemplateName TemplateInstantiator::Trans
>
> Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
> }
> -
> +
> TemplateName Template = Arg.getAsTemplate().getNameToSubstitute();
> assert(!Template.isNull() && "Null template template argument");
> assert(!Template.getAsQualifiedTemplateName() &&
> @@ -1133,12 +1133,12 @@ TemplateName TemplateInstantiator::Trans
> return Template;
> }
> }
> -
> +
> if (SubstTemplateTemplateParmPackStorage *SubstPack
> = Name.getAsSubstTemplateTemplateParmPack()) {
> if (getSema().ArgumentPackSubstitutionIndex == -1)
> return Name;
> -
> +
> TemplateArgument Arg = SubstPack->getArgumentPack();
> Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
> return Arg.getAsTemplate().getNameToSubstitute();
> @@ -1149,7 +1149,7 @@ TemplateName TemplateInstantiator::Trans
> AllowInjectedClassName);
> }
>
> -ExprResult
> +ExprResult
> TemplateInstantiator::TransformPredefinedExpr(PredefinedExpr *E) {
> if (!E->isTypeDependent())
> return E;
> @@ -1187,15 +1187,15 @@ TemplateInstantiator::TransformTemplateP
> }
>
> if (NTTP->isParameterPack()) {
> - assert(Arg.getKind() == TemplateArgument::Pack &&
> + assert(Arg.getKind() == TemplateArgument::Pack &&
> "Missing argument pack");
> -
> +
> if (getSema().ArgumentPackSubstitutionIndex == -1) {
> // We have an argument pack, but we can't select a particular argument
> // out of it yet. Therefore, we'll build an expression to hold on to that
> // argument pack.
> QualType TargetType = SemaRef.SubstType(NTTP->getType(), TemplateArgs,
> - E->getLocation(),
> + E->getLocation(),
> NTTP->getDeclName());
> if (TargetType.isNull())
> return ExprError();
> @@ -1205,7 +1205,7 @@ TemplateInstantiator::TransformTemplateP
> TargetType->isReferenceType() ? VK_LValue : VK_RValue, NTTP,
> E->getLocation(), Arg);
> }
> -
> +
> Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
> }
>
> @@ -1260,12 +1260,12 @@ ExprResult TemplateInstantiator::transfo
> // Propagate NULL template argument.
> VD = nullptr;
> }
> -
> +
> // Derive the type we want the substituted decl to have. This had
> // better be non-dependent, or these checks will have serious problems.
> if (parm->isExpandedParameterPack()) {
> type = parm->getExpansionType(SemaRef.ArgumentPackSubstitutionIndex);
> - } else if (parm->isParameterPack() &&
> + } else if (parm->isParameterPack() &&
> isa<PackExpansionType>(parm->getType())) {
> type = SemaRef.SubstType(
> cast<PackExpansionType>(parm->getType())->getPattern(),
> @@ -1292,8 +1292,8 @@ ExprResult TemplateInstantiator::transfo
> return new (SemaRef.Context) SubstNonTypeTemplateParmExpr(
> type, resultExpr->getValueKind(), loc, parm, resultExpr);
> }
> -
> -ExprResult
> +
> +ExprResult
> TemplateInstantiator::TransformSubstNonTypeTemplateParmPackExpr(
> SubstNonTypeTemplateParmPackExpr *E) {
> if (getSema().ArgumentPackSubstitutionIndex == -1) {
> @@ -1387,7 +1387,7 @@ TemplateInstantiator::TransformDeclRefEx
> if (NonTypeTemplateParmDecl *NTTP = dyn_cast<NonTypeTemplateParmDecl>(D)) {
> if (NTTP->getDepth() < TemplateArgs.getNumLevels())
> return TransformTemplateParmRefExpr(E, NTTP);
> -
> +
> // We have a non-type template parameter that isn't fully substituted;
> // FindInstantiatedDecl will find it in the local instantiation scope.
> }
> @@ -1406,7 +1406,7 @@ ExprResult TemplateInstantiator::Transfo
> getDescribedFunctionTemplate() &&
> "Default arg expressions are never formed in dependent cases.");
> return SemaRef.BuildCXXDefaultArgExpr(E->getUsedLocation(),
> - cast<FunctionDecl>(E->getParam()->getDeclContext()),
> + cast<FunctionDecl>(E->getParam()->getDeclContext()),
> E->getParam());
> }
>
> @@ -1451,11 +1451,11 @@ TemplateInstantiator::TransformTemplateT
> }
>
> TemplateArgument Arg = TemplateArgs(T->getDepth(), T->getIndex());
> -
> +
> if (T->isParameterPack()) {
> - assert(Arg.getKind() == TemplateArgument::Pack &&
> + assert(Arg.getKind() == TemplateArgument::Pack &&
> "Missing argument pack");
> -
> +
> if (getSema().ArgumentPackSubstitutionIndex == -1) {
> // We have the template argument pack, but we're not expanding the
> // enclosing pack expansion yet. Just save the template argument
> @@ -1467,10 +1467,10 @@ TemplateInstantiator::TransformTemplateT
> NewTL.setNameLoc(TL.getNameLoc());
> return Result;
> }
> -
> +
> Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
> }
> -
> +
> assert(Arg.getKind() == TemplateArgument::Type &&
> "Template argument kind mismatch");
>
> @@ -1502,7 +1502,7 @@ TemplateInstantiator::TransformTemplateT
> return Result;
> }
>
> -QualType
> +QualType
> TemplateInstantiator::TransformSubstTemplateTypeParmPackType(
> TypeLocBuilder &TLB,
> SubstTemplateTypeParmPackTypeLoc TL) {
> @@ -1565,8 +1565,8 @@ TypeSourceInfo *Sema::SubstType(TypeSour
> assert(!CodeSynthesisContexts.empty() &&
> "Cannot perform an instantiation without some context on the "
> "instantiation stack");
> -
> - if (!T->getType()->isInstantiationDependentType() &&
> +
> + if (!T->getType()->isInstantiationDependentType() &&
> !T->getType()->isVariablyModifiedType())
> return T;
>
> @@ -1582,11 +1582,11 @@ TypeSourceInfo *Sema::SubstType(TypeLoc
> assert(!CodeSynthesisContexts.empty() &&
> "Cannot perform an instantiation without some context on the "
> "instantiation stack");
> -
> +
> if (TL.getType().isNull())
> return nullptr;
>
> - if (!TL.getType()->isInstantiationDependentType() &&
> + if (!TL.getType()->isInstantiationDependentType() &&
> !TL.getType()->isVariablyModifiedType()) {
> // FIXME: Make a copy of the TypeLoc data here, so that we can
> // return a new TypeSourceInfo. Inefficient!
> @@ -1716,7 +1716,7 @@ void Sema::SubstExceptionSpec(FunctionDe
> UpdateExceptionSpec(New, ESI);
> }
>
> -ParmVarDecl *Sema::SubstParmVarDecl(ParmVarDecl *OldParm,
> +ParmVarDecl *Sema::SubstParmVarDecl(ParmVarDecl *OldParm,
> const MultiLevelTemplateArgumentList &TemplateArgs,
> int indexAdjustment,
> Optional<unsigned> NumExpansions,
> @@ -1727,9 +1727,9 @@ ParmVarDecl *Sema::SubstParmVarDecl(Parm
> TypeLoc OldTL = OldDI->getTypeLoc();
> if (PackExpansionTypeLoc ExpansionTL = OldTL.getAs<PackExpansionTypeLoc>()) {
>
> - // We have a function parameter pack. Substitute into the pattern of the
> + // We have a function parameter pack. Substitute into the pattern of the
> // expansion.
> - NewDI = SubstType(ExpansionTL.getPatternLoc(), TemplateArgs,
> + NewDI = SubstType(ExpansionTL.getPatternLoc(), TemplateArgs,
> OldParm->getLocation(), OldParm->getDeclName());
> if (!NewDI)
> return nullptr;
> @@ -1745,16 +1745,16 @@ ParmVarDecl *Sema::SubstParmVarDecl(Parm
> // itself is not a pack expansion type), so complain. This can occur when
> // the substitution goes through an alias template that "loses" the
> // pack expansion.
> - Diag(OldParm->getLocation(),
> + Diag(OldParm->getLocation(),
> diag::err_function_parameter_pack_without_parameter_packs)
> << NewDI->getType();
> return nullptr;
> - }
> + }
> } else {
> - NewDI = SubstType(OldDI, TemplateArgs, OldParm->getLocation(),
> + NewDI = SubstType(OldDI, TemplateArgs, OldParm->getLocation(),
> OldParm->getDeclName());
> }
> -
> +
> if (!NewDI)
> return nullptr;
>
> @@ -1801,15 +1801,15 @@ ParmVarDecl *Sema::SubstParmVarDecl(Parm
> }
>
> NewParm->setHasInheritedDefaultArg(OldParm->hasInheritedDefaultArg());
> -
> +
> if (OldParm->isParameterPack() && !NewParm->isParameterPack()) {
> // Add the new parameter to the instantiated parameter pack.
> CurrentInstantiationScope->InstantiatedLocalPackArg(OldParm, NewParm);
> } else {
> // Introduce an Old -> New mapping
> - CurrentInstantiationScope->InstantiatedLocal(OldParm, NewParm);
> + CurrentInstantiationScope->InstantiatedLocal(OldParm, NewParm);
> }
> -
> +
> // FIXME: OldParm may come from a FunctionProtoType, in which case CurContext
> // can be anything, is this right ?
> NewParm->setDeclContext(CurContext);
> @@ -1819,7 +1819,7 @@ ParmVarDecl *Sema::SubstParmVarDecl(Parm
>
> InstantiateAttrs(TemplateArgs, OldParm, NewParm);
>
> - return NewParm;
> + return NewParm;
> }
>
> /// Substitute the given template arguments into the given set of
> @@ -1835,8 +1835,8 @@ bool Sema::SubstParmTypes(
> assert(!CodeSynthesisContexts.empty() &&
> "Cannot perform an instantiation without some context on the "
> "instantiation stack");
> -
> - TemplateInstantiator Instantiator(*this, TemplateArgs, Loc,
> +
> + TemplateInstantiator Instantiator(*this, TemplateArgs, Loc,
> DeclarationName());
> return Instantiator.TransformFunctionTypeParams(
> Loc, Params, nullptr, ExtParamInfos, ParamTypes, OutParams, ParamInfos);
> @@ -1875,21 +1875,21 @@ Sema::SubstBaseSpecifiers(CXXRecordDecl
> bool ShouldExpand = false;
> bool RetainExpansion = false;
> Optional<unsigned> NumExpansions;
> - if (CheckParameterPacksForExpansion(Base.getEllipsisLoc(),
> + if (CheckParameterPacksForExpansion(Base.getEllipsisLoc(),
> Base.getSourceRange(),
> Unexpanded,
> - TemplateArgs, ShouldExpand,
> + TemplateArgs, ShouldExpand,
> RetainExpansion,
> NumExpansions)) {
> Invalid = true;
> continue;
> }
> -
> +
> // If we should expand this pack expansion now, do so.
> if (ShouldExpand) {
> for (unsigned I = 0; I != *NumExpansions; ++I) {
> Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this, I);
> -
> +
> TypeSourceInfo *BaseTypeLoc = SubstType(Base.getTypeSourceInfo(),
> TemplateArgs,
> Base.getSourceRange().getBegin(),
> @@ -1898,7 +1898,7 @@ Sema::SubstBaseSpecifiers(CXXRecordDecl
> Invalid = true;
> continue;
> }
> -
> +
> if (CXXBaseSpecifier *InstantiatedBase
> = CheckBaseSpecifier(Instantiation,
> Base.getSourceRange(),
> @@ -1910,10 +1910,10 @@ Sema::SubstBaseSpecifiers(CXXRecordDecl
> else
> Invalid = true;
> }
> -
> +
> continue;
> }
> -
> +
> // The resulting base specifier will (still) be a pack expansion.
> EllipsisLoc = Base.getEllipsisLoc();
> Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this, -1);
> @@ -1927,7 +1927,7 @@ Sema::SubstBaseSpecifiers(CXXRecordDecl
> Base.getSourceRange().getBegin(),
> DeclarationName());
> }
> -
> +
> if (!BaseTypeLoc) {
> Invalid = true;
> continue;
> @@ -1999,11 +1999,11 @@ Sema::InstantiateClass(SourceLocation Po
> Pattern = PatternDef;
>
> // Record the point of instantiation.
> - if (MemberSpecializationInfo *MSInfo
> + if (MemberSpecializationInfo *MSInfo
> = Instantiation->getMemberSpecializationInfo()) {
> MSInfo->setTemplateSpecializationKind(TSK);
> MSInfo->setPointOfInstantiation(PointOfInstantiation);
> - } else if (ClassTemplateSpecializationDecl *Spec
> + } else if (ClassTemplateSpecializationDecl *Spec
> = dyn_cast<ClassTemplateSpecializationDecl>(Instantiation)) {
> Spec->setTemplateSpecializationKind(TSK);
> Spec->setPointOfInstantiation(PointOfInstantiation);
> @@ -2563,15 +2563,15 @@ Sema::InstantiateClassMembers(SourceLoca
> if (auto *Function = dyn_cast<FunctionDecl>(D)) {
> if (FunctionDecl *Pattern
> = Function->getInstantiatedFromMemberFunction()) {
> - MemberSpecializationInfo *MSInfo
> + MemberSpecializationInfo *MSInfo
> = Function->getMemberSpecializationInfo();
> assert(MSInfo && "No member specialization information?");
> if (MSInfo->getTemplateSpecializationKind()
> == TSK_ExplicitSpecialization)
> continue;
> -
> - if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> - Function,
> +
> + if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> + Function,
> MSInfo->getTemplateSpecializationKind(),
> MSInfo->getPointOfInstantiation(),
> SuppressNew) ||
> @@ -2610,31 +2610,31 @@ Sema::InstantiateClassMembers(SourceLoca
> if (MSInfo->getTemplateSpecializationKind()
> == TSK_ExplicitSpecialization)
> continue;
> -
> - if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> - Var,
> +
> + if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> + Var,
> MSInfo->getTemplateSpecializationKind(),
> MSInfo->getPointOfInstantiation(),
> SuppressNew) ||
> SuppressNew)
> continue;
> -
> +
> if (TSK == TSK_ExplicitInstantiationDefinition) {
> // C++0x [temp.explicit]p8:
> // An explicit instantiation definition that names a class template
> - // specialization explicitly instantiates the class template
> - // specialization and is only an explicit instantiation definition
> - // of members whose definition is visible at the point of
> + // specialization explicitly instantiates the class template
> + // specialization and is only an explicit instantiation definition
> + // of members whose definition is visible at the point of
> // instantiation.
> if (!Var->getInstantiatedFromStaticDataMember()->getDefinition())
> continue;
> -
> +
> Var->setTemplateSpecializationKind(TSK, PointOfInstantiation);
> InstantiateVariableDefinition(PointOfInstantiation, Var);
> } else {
> Var->setTemplateSpecializationKind(TSK, PointOfInstantiation);
> }
> - }
> + }
> } else if (auto *Record = dyn_cast<CXXRecordDecl>(D)) {
> // Always skip the injected-class-name, along with any
> // redeclarations of nested classes, since both would cause us
> @@ -2644,10 +2644,10 @@ Sema::InstantiateClassMembers(SourceLoca
> if (Record->isInjectedClassName() || Record->getPreviousDecl() ||
> Record->isLambda())
> continue;
> -
> +
> MemberSpecializationInfo *MSInfo = Record->getMemberSpecializationInfo();
> assert(MSInfo && "No member specialization information?");
> -
> +
> if (MSInfo->getTemplateSpecializationKind()
> == TSK_ExplicitSpecialization)
> continue;
> @@ -2660,33 +2660,33 @@ Sema::InstantiateClassMembers(SourceLoca
> continue;
> }
>
> - if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> - Record,
> + if (CheckSpecializationInstantiationRedecl(PointOfInstantiation, TSK,
> + Record,
> MSInfo->getTemplateSpecializationKind(),
> MSInfo->getPointOfInstantiation(),
> SuppressNew) ||
> SuppressNew)
> continue;
> -
> +
> CXXRecordDecl *Pattern = Record->getInstantiatedFromMemberClass();
> assert(Pattern && "Missing instantiated-from-template information");
> -
> +
> if (!Record->getDefinition()) {
> if (!Pattern->getDefinition()) {
> // C++0x [temp.explicit]p8:
> // An explicit instantiation definition that names a class template
> - // specialization explicitly instantiates the class template
> - // specialization and is only an explicit instantiation definition
> - // of members whose definition is visible at the point of
> + // specialization explicitly instantiates the class template
> + // specialization and is only an explicit instantiation definition
> + // of members whose definition is visible at the point of
> // instantiation.
> if (TSK == TSK_ExplicitInstantiationDeclaration) {
> MSInfo->setTemplateSpecializationKind(TSK);
> MSInfo->setPointOfInstantiation(PointOfInstantiation);
> }
> -
> +
> continue;
> }
> -
> +
> InstantiateClass(PointOfInstantiation, Record, Pattern,
> TemplateArgs,
> TSK);
> @@ -2698,10 +2698,10 @@ Sema::InstantiateClassMembers(SourceLoca
> MarkVTableUsed(PointOfInstantiation, Record, true);
> }
> }
> -
> +
> Pattern = cast_or_null<CXXRecordDecl>(Record->getDefinition());
> if (Pattern)
> - InstantiateClassMembers(PointOfInstantiation, Pattern, TemplateArgs,
> + InstantiateClassMembers(PointOfInstantiation, Pattern, TemplateArgs,
> TSK);
> } else if (auto *Enum = dyn_cast<EnumDecl>(D)) {
> MemberSpecializationInfo *MSInfo = Enum->getMemberSpecializationInfo();
> @@ -2816,10 +2816,10 @@ bool Sema::SubstExprs(ArrayRef<Expr *> E
>
> NestedNameSpecifierLoc
> Sema::SubstNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS,
> - const MultiLevelTemplateArgumentList &TemplateArgs) {
> + const MultiLevelTemplateArgumentList &TemplateArgs) {
> if (!NNS)
> return NestedNameSpecifierLoc();
> -
> +
> TemplateInstantiator Instantiator(*this, TemplateArgs, NNS.getBeginLoc(),
> DeclarationName());
> return Instantiator.TransformNestedNameSpecifierLoc(NNS);
> @@ -2850,7 +2850,7 @@ bool Sema::Subst(const TemplateArgumentL
> const MultiLevelTemplateArgumentList &TemplateArgs) {
> TemplateInstantiator Instantiator(*this, TemplateArgs, SourceLocation(),
> DeclarationName());
> -
> +
> return Instantiator.TransformTemplateArguments(Args, NumArgs, Result);
> }
>
> @@ -2884,7 +2884,7 @@ LocalInstantiationScope::findInstantiati
> LocalDeclsMap::iterator Found = Current->LocalDecls.find(CheckD);
> if (Found != Current->LocalDecls.end())
> return &Found->second;
> -
> +
> // If this is a tag declaration, it's possible that we need to look for
> // a previous declaration.
> if (const TagDecl *Tag = dyn_cast<TagDecl>(CheckD))
> @@ -2892,8 +2892,8 @@ LocalInstantiationScope::findInstantiati
> else
> CheckD = nullptr;
> } while (CheckD);
> -
> - // If we aren't combined with our outer scope, we're done.
> +
> + // If we aren't combined with our outer scope, we're done.
> if (!Current->CombineWithOuterScope)
> break;
> }
> @@ -2965,12 +2965,12 @@ void LocalInstantiationScope::MakeInstan
> ArgumentPacks.push_back(Pack);
> }
>
> -void LocalInstantiationScope::SetPartiallySubstitutedPack(NamedDecl *Pack,
> +void LocalInstantiationScope::SetPartiallySubstitutedPack(NamedDecl *Pack,
> const TemplateArgument *ExplicitArgs,
> unsigned NumExplicitArgs) {
> assert((!PartiallySubstitutedPack || PartiallySubstitutedPack == Pack) &&
> "Already have a partially-substituted pack");
> - assert((!PartiallySubstitutedPack
> + assert((!PartiallySubstitutedPack
> || NumArgsInPartiallySubstitutedPack == NumExplicitArgs) &&
> "Wrong number of arguments in partially-substituted pack");
> PartiallySubstitutedPack = Pack;
> @@ -2985,15 +2985,15 @@ NamedDecl *LocalInstantiationScope::getP
> *ExplicitArgs = nullptr;
> if (NumExplicitArgs)
> *NumExplicitArgs = 0;
> -
> - for (const LocalInstantiationScope *Current = this; Current;
> +
> + for (const LocalInstantiationScope *Current = this; Current;
> Current = Current->Outer) {
> if (Current->PartiallySubstitutedPack) {
> if (ExplicitArgs)
> *ExplicitArgs = Current->ArgsInPartiallySubstitutedPack;
> if (NumExplicitArgs)
> *NumExplicitArgs = Current->NumArgsInPartiallySubstitutedPack;
> -
> +
> return Current->PartiallySubstitutedPack;
> }
>
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Mon Jul 30 12:24:48 2018
> @@ -729,7 +729,7 @@ Decl *TemplateDeclInstantiator::VisitVar
> DI, D->getStorageClass());
>
> // In ARC, infer 'retaining' for variables of retainable type.
> - if (SemaRef.getLangOpts().ObjCAutoRefCount &&
> + if (SemaRef.getLangOpts().ObjCAutoRefCount &&
> SemaRef.inferObjCARCLifetime(Var))
> Var->setInvalidDecl();
>
> @@ -2056,7 +2056,7 @@ TemplateDeclInstantiator::VisitCXXMethod
> // previous declaration we just found.
> if (isFriend && Method->getPreviousDecl())
> Method->setAccess(Method->getPreviousDecl()->getAccess());
> - else
> + else
> Method->setAccess(D->getAccess());
> if (FunctionTemplate)
> FunctionTemplate->setAccess(Method->getAccess());
> @@ -3417,7 +3417,7 @@ TemplateDeclInstantiator::SubstFunctionT
> ThisContext = cast<CXXRecordDecl>(Owner);
> ThisTypeQuals = Method->getTypeQualifiers();
> }
> -
> +
> TypeSourceInfo *NewTInfo
> = SemaRef.SubstFunctionDeclType(OldTInfo, TemplateArgs,
> D->getTypeSpecStartLoc(),
> @@ -4890,14 +4890,14 @@ NamedDecl *Sema::FindInstantiatedDecl(So
> const MultiLevelTemplateArgumentList &TemplateArgs,
> bool FindingInstantiatedContext) {
> DeclContext *ParentDC = D->getDeclContext();
> - // FIXME: Parmeters of pointer to functions (y below) that are themselves
> + // FIXME: Parmeters of pointer to functions (y below) that are themselves
> // parameters (p below) can have their ParentDC set to the translation-unit
> - // - thus we can not consistently check if the ParentDC of such a parameter
> + // - thus we can not consistently check if the ParentDC of such a parameter
> // is Dependent or/and a FunctionOrMethod.
> - // For e.g. this code, during Template argument deduction tries to
> + // For e.g. this code, during Template argument deduction tries to
> // find an instantiated decl for (T y) when the ParentDC for y is
> - // the translation unit.
> - // e.g. template <class T> void Foo(auto (*p)(T y) -> decltype(y())) {}
> + // the translation unit.
> + // e.g. template <class T> void Foo(auto (*p)(T y) -> decltype(y())) {}
> // float baz(float(*)()) { return 0.0; }
> // Foo(baz);
> // The better fix here is perhaps to ensure that a ParmVarDecl, by the time
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp Mon Jul 30 12:24:48 2018
> @@ -29,7 +29,7 @@ using namespace clang;
> namespace {
> /// A class that collects unexpanded parameter packs.
> class CollectUnexpandedParameterPacksVisitor :
> - public RecursiveASTVisitor<CollectUnexpandedParameterPacksVisitor>
> + public RecursiveASTVisitor<CollectUnexpandedParameterPacksVisitor>
> {
> typedef RecursiveASTVisitor<CollectUnexpandedParameterPacksVisitor>
> inherited;
> @@ -58,7 +58,7 @@ namespace {
> if (T->getDepth() < DepthLimit)
> Unexpanded.push_back({T, Loc});
> }
> -
> +
> public:
> explicit CollectUnexpandedParameterPacksVisitor(
> SmallVectorImpl<UnexpandedParameterPack> &Unexpanded)
> @@ -94,10 +94,10 @@ namespace {
> bool VisitDeclRefExpr(DeclRefExpr *E) {
> if (E->getDecl()->isParameterPack())
> addUnexpanded(E->getDecl(), E->getLocation());
> -
> +
> return true;
> }
> -
> +
> /// Record occurrences of template template parameter packs.
> bool TraverseTemplateName(TemplateName Template) {
> if (auto *TTP = dyn_cast_or_null<TemplateTemplateParmDecl>(
> @@ -105,7 +105,7 @@ namespace {
> if (TTP->isParameterPack())
> addUnexpanded(TTP);
> }
> -
> +
> return inherited::TraverseTemplateName(Template);
> }
>
> @@ -131,7 +131,7 @@ namespace {
>
> /// Suppress traversal into statements and expressions that
> /// do not contain unexpanded parameter packs.
> - bool TraverseStmt(Stmt *S) {
> + bool TraverseStmt(Stmt *S) {
> Expr *E = dyn_cast_or_null<Expr>(S);
> if ((E && E->containsUnexpandedParameterPack()) || InLambda)
> return inherited::TraverseStmt(S);
> @@ -151,7 +151,7 @@ namespace {
> /// Suppress traversal into types with location information
> /// that do not contain unexpanded parameter packs.
> bool TraverseTypeLoc(TypeLoc TL) {
> - if ((!TL.getType().isNull() &&
> + if ((!TL.getType().isNull() &&
> TL.getType()->containsUnexpandedParameterPack()) ||
> InLambda)
> return inherited::TraverseTypeLoc(TL);
> @@ -160,7 +160,7 @@ namespace {
> }
>
> /// Suppress traversal of parameter packs.
> - bool TraverseDecl(Decl *D) {
> + bool TraverseDecl(Decl *D) {
> // A function parameter pack is a pack expansion, so cannot contain
> // an unexpanded parameter pack. Likewise for a template parameter
> // pack that contains any references to other packs.
> @@ -215,7 +215,7 @@ namespace {
> bool TraverseTemplateArgumentLoc(const TemplateArgumentLoc &ArgLoc) {
> if (ArgLoc.getArgument().isPackExpansion())
> return true;
> -
> +
> return inherited::TraverseTemplateArgumentLoc(ArgLoc);
> }
>
> @@ -335,7 +335,7 @@ Sema::DiagnoseUnexpandedParameterPacks(S
> return false;
> }
> }
> -
> +
> SmallVector<SourceLocation, 4> Locations;
> SmallVector<IdentifierInfo *, 4> Names;
> llvm::SmallPtrSet<IdentifierInfo *, 4> NamesKnown;
> @@ -365,11 +365,11 @@ Sema::DiagnoseUnexpandedParameterPacks(S
> return true;
> }
>
> -bool Sema::DiagnoseUnexpandedParameterPack(SourceLocation Loc,
> +bool Sema::DiagnoseUnexpandedParameterPack(SourceLocation Loc,
> TypeSourceInfo *T,
> UnexpandedParameterPackContext UPPC) {
> // C++0x [temp.variadic]p5:
> - // An appearance of a name of a parameter pack that is not expanded is
> + // An appearance of a name of a parameter pack that is not expanded is
> // ill-formed.
> if (!T->getType()->containsUnexpandedParameterPack())
> return false;
> @@ -384,7 +384,7 @@ bool Sema::DiagnoseUnexpandedParameterPa
> bool Sema::DiagnoseUnexpandedParameterPack(Expr *E,
> UnexpandedParameterPackContext UPPC) {
> // C++0x [temp.variadic]p5:
> - // An appearance of a name of a parameter pack that is not expanded is
> + // An appearance of a name of a parameter pack that is not expanded is
> // ill-formed.
> if (!E->containsUnexpandedParameterPack())
> return false;
> @@ -398,9 +398,9 @@ bool Sema::DiagnoseUnexpandedParameterPa
> bool Sema::DiagnoseUnexpandedParameterPack(const CXXScopeSpec &SS,
> UnexpandedParameterPackContext UPPC) {
> // C++0x [temp.variadic]p5:
> - // An appearance of a name of a parameter pack that is not expanded is
> + // An appearance of a name of a parameter pack that is not expanded is
> // ill-formed.
> - if (!SS.getScopeRep() ||
> + if (!SS.getScopeRep() ||
> !SS.getScopeRep()->containsUnexpandedParameterPack())
> return false;
>
> @@ -415,7 +415,7 @@ bool Sema::DiagnoseUnexpandedParameterPa
> bool Sema::DiagnoseUnexpandedParameterPack(const DeclarationNameInfo &NameInfo,
> UnexpandedParameterPackContext UPPC) {
> // C++0x [temp.variadic]p5:
> - // An appearance of a name of a parameter pack that is not expanded is
> + // An appearance of a name of a parameter pack that is not expanded is
> // ill-formed.
> switch (NameInfo.getName().getNameKind()) {
> case DeclarationName::Identifier:
> @@ -451,7 +451,7 @@ bool Sema::DiagnoseUnexpandedParameterPa
> bool Sema::DiagnoseUnexpandedParameterPack(SourceLocation Loc,
> TemplateName Template,
> UnexpandedParameterPackContext UPPC) {
> -
> +
> if (Template.isNull() || !Template.containsUnexpandedParameterPack())
> return false;
>
> @@ -464,10 +464,10 @@ bool Sema::DiagnoseUnexpandedParameterPa
>
> bool Sema::DiagnoseUnexpandedParameterPack(TemplateArgumentLoc Arg,
> UnexpandedParameterPackContext UPPC) {
> - if (Arg.getArgument().isNull() ||
> + if (Arg.getArgument().isNull() ||
> !Arg.getArgument().containsUnexpandedParameterPack())
> return false;
> -
> +
> SmallVector<UnexpandedParameterPack, 2> Unexpanded;
> CollectUnexpandedParameterPacksVisitor(Unexpanded)
> .TraverseTemplateArgumentLoc(Arg);
> @@ -489,12 +489,12 @@ void Sema::collectUnexpandedParameterPac
>
> void Sema::collectUnexpandedParameterPacks(QualType T,
> SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
> - CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseType(T);
> -}
> + CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseType(T);
> +}
>
> void Sema::collectUnexpandedParameterPacks(TypeLoc TL,
> SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
> - CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseTypeLoc(TL);
> + CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseTypeLoc(TL);
> }
>
> void Sema::collectUnexpandedParameterPacks(
> @@ -512,7 +512,7 @@ void Sema::collectUnexpandedParameterPac
> }
>
>
> -ParsedTemplateArgument
> +ParsedTemplateArgument
> Sema::ActOnPackExpansion(const ParsedTemplateArgument &Arg,
> SourceLocation EllipsisLoc) {
> if (Arg.isInvalid())
> @@ -524,7 +524,7 @@ Sema::ActOnPackExpansion(const ParsedTem
> if (Result.isInvalid())
> return ParsedTemplateArgument();
>
> - return ParsedTemplateArgument(Arg.getKind(), Result.get().getAsOpaquePtr(),
> + return ParsedTemplateArgument(Arg.getKind(), Result.get().getAsOpaquePtr(),
> Arg.getLocation());
> }
>
> @@ -532,11 +532,11 @@ Sema::ActOnPackExpansion(const ParsedTem
> ExprResult Result = ActOnPackExpansion(Arg.getAsExpr(), EllipsisLoc);
> if (Result.isInvalid())
> return ParsedTemplateArgument();
> -
> - return ParsedTemplateArgument(Arg.getKind(), Result.get(),
> +
> + return ParsedTemplateArgument(Arg.getKind(), Result.get(),
> Arg.getLocation());
> }
> -
> +
> case ParsedTemplateArgument::Template:
> if (!Arg.getAsTemplate().get().containsUnexpandedParameterPack()) {
> SourceRange R(Arg.getLocation());
> @@ -546,13 +546,13 @@ Sema::ActOnPackExpansion(const ParsedTem
> << R;
> return ParsedTemplateArgument();
> }
> -
> +
> return Arg.getTemplatePackExpansion(EllipsisLoc);
> }
> llvm_unreachable("Unhandled template argument kind?");
> }
>
> -TypeResult Sema::ActOnPackExpansion(ParsedType Type,
> +TypeResult Sema::ActOnPackExpansion(ParsedType Type,
> SourceLocation EllipsisLoc) {
> TypeSourceInfo *TSInfo;
> GetTypeFromParser(Type, &TSInfo);
> @@ -562,7 +562,7 @@ TypeResult Sema::ActOnPackExpansion(Pars
> TypeSourceInfo *TSResult = CheckPackExpansion(TSInfo, EllipsisLoc, None);
> if (!TSResult)
> return true;
> -
> +
> return CreateParsedType(TSResult->getType(), TSResult);
> }
>
> @@ -570,7 +570,7 @@ TypeSourceInfo *
> Sema::CheckPackExpansion(TypeSourceInfo *Pattern, SourceLocation EllipsisLoc,
> Optional<unsigned> NumExpansions) {
> // Create the pack expansion type and source-location information.
> - QualType Result = CheckPackExpansion(Pattern->getType(),
> + QualType Result = CheckPackExpansion(Pattern->getType(),
> Pattern->getTypeLoc().getSourceRange(),
> EllipsisLoc, NumExpansions);
> if (Result.isNull())
> @@ -608,7 +608,7 @@ ExprResult Sema::CheckPackExpansion(Expr
> Optional<unsigned> NumExpansions) {
> if (!Pattern)
> return ExprError();
> -
> +
> // C++0x [temp.variadic]p5:
> // The pattern of a pack expansion shall name one or more
> // parameter packs that are not expanded by a nested pack
> @@ -618,7 +618,7 @@ ExprResult Sema::CheckPackExpansion(Expr
> << Pattern->getSourceRange();
> return ExprError();
> }
> -
> +
> // Create the pack expansion expression and source-location information.
> return new (Context)
> PackExpansionExpr(Context.DependentTy, Pattern, EllipsisLoc, NumExpansions);
> @@ -643,7 +643,7 @@ bool Sema::CheckParameterPacksForExpansi
> unsigned Depth = 0, Index = 0;
> IdentifierInfo *Name;
> bool IsFunctionParameterPack = false;
> -
> +
> if (const TemplateTypeParmType *TTP
> = i->first.dyn_cast<const TemplateTypeParmType *>()) {
> Depth = TTP->getDepth();
> @@ -658,13 +658,13 @@ bool Sema::CheckParameterPacksForExpansi
>
> Name = ND->getIdentifier();
> }
> -
> +
> // Determine the size of this argument pack.
> - unsigned NewPackSize;
> + unsigned NewPackSize;
> if (IsFunctionParameterPack) {
> // Figure out whether we're instantiating to an argument pack or not.
> typedef LocalInstantiationScope::DeclArgumentPack DeclArgumentPack;
> -
> +
> llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
> = CurrentInstantiationScope->findInstantiationOf(
> i->first.get<NamedDecl *>());
> @@ -678,25 +678,25 @@ bool Sema::CheckParameterPacksForExpansi
> continue;
> }
> } else {
> - // If we don't have a template argument at this depth/index, then we
> - // cannot expand the pack expansion. Make a note of this, but we still
> + // If we don't have a template argument at this depth/index, then we
> + // cannot expand the pack expansion. Make a note of this, but we still
> // want to check any parameter packs we *do* have arguments for.
> if (Depth >= TemplateArgs.getNumLevels() ||
> !TemplateArgs.hasTemplateArgument(Depth, Index)) {
> ShouldExpand = false;
> continue;
> }
> -
> +
> // Determine the size of the argument pack.
> NewPackSize = TemplateArgs(Depth, Index).pack_size();
> }
> -
> +
> // C++0x [temp.arg.explicit]p9:
> - // Template argument deduction can extend the sequence of template
> + // Template argument deduction can extend the sequence of template
> // arguments corresponding to a template parameter pack, even when the
> // sequence contains explicitly specified template arguments.
> if (!IsFunctionParameterPack && CurrentInstantiationScope) {
> - if (NamedDecl *PartialPack
> + if (NamedDecl *PartialPack
> = CurrentInstantiationScope->getPartiallySubstitutedPack()){
> unsigned PartialDepth, PartialIndex;
> std::tie(PartialDepth, PartialIndex) = getDepthAndIndex(PartialPack);
> @@ -709,9 +709,9 @@ bool Sema::CheckParameterPacksForExpansi
> }
> }
> }
> -
> +
> if (!NumExpansions) {
> - // The is the first pack we've seen for which we have an argument.
> + // The is the first pack we've seen for which we have an argument.
> // Record it.
> NumExpansions = NewPackSize;
> FirstPack.first = Name;
> @@ -719,10 +719,10 @@ bool Sema::CheckParameterPacksForExpansi
> HaveFirstPack = true;
> continue;
> }
> -
> +
> if (NewPackSize != *NumExpansions) {
> // C++0x [temp.variadic]p5:
> - // All of the parameter packs expanded by a pack expansion shall have
> + // All of the parameter packs expanded by a pack expansion shall have
> // the same number of arguments specified.
> if (HaveFirstPack)
> Diag(EllipsisLoc, diag::err_pack_expansion_length_conflict)
> @@ -772,17 +772,17 @@ Optional<unsigned> Sema::getNumArguments
> // Compute the depth and index for this parameter pack.
> unsigned Depth;
> unsigned Index;
> -
> +
> if (const TemplateTypeParmType *TTP
> = Unexpanded[I].first.dyn_cast<const TemplateTypeParmType *>()) {
> Depth = TTP->getDepth();
> Index = TTP->getIndex();
> - } else {
> + } else {
> NamedDecl *ND = Unexpanded[I].first.get<NamedDecl *>();
> if (isa<ParmVarDecl>(ND)) {
> // Function parameter pack.
> typedef LocalInstantiationScope::DeclArgumentPack DeclArgumentPack;
> -
> +
> llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
> = CurrentInstantiationScope->findInstantiationOf(
> Unexpanded[I].first.get<NamedDecl *>());
> @@ -804,13 +804,13 @@ Optional<unsigned> Sema::getNumArguments
> // The pattern refers to an unknown template argument. We're not ready to
> // expand this pack yet.
> return None;
> -
> +
> // Determine the size of the argument pack.
> unsigned Size = TemplateArgs(Depth, Index).pack_size();
> assert((!Result || *Result == Size) && "inconsistent pack sizes");
> Result = Size;
> }
> -
> +
> return Result;
> }
>
> @@ -826,14 +826,14 @@ bool Sema::containsUnexpandedParameterPa
> return true;
> break;
> }
> -
> +
> case TST_typeofExpr:
> case TST_decltype:
> - if (DS.getRepAsExpr() &&
> + if (DS.getRepAsExpr() &&
> DS.getRepAsExpr()->containsUnexpandedParameterPack())
> return true;
> break;
> -
> +
> case TST_unspecified:
> case TST_void:
> case TST_char:
> @@ -879,7 +879,7 @@ bool Sema::containsUnexpandedParameterPa
> case DeclaratorChunk::BlockPointer:
> // These declarator chunks cannot contain any parameter packs.
> break;
> -
> +
> case DeclaratorChunk::Array:
> if (Chunk.Arr.NumElts &&
> Chunk.Arr.NumElts->containsUnexpandedParameterPack())
> @@ -964,7 +964,7 @@ ExprResult Sema::ActOnSizeofParameterPac
> case LookupResult::Found:
> ParameterPack = R.getFoundDecl();
> break;
> -
> +
> case LookupResult::NotFound:
> case LookupResult::NotFoundInCurrentInstantiation:
> if (TypoCorrection Corrected =
>
> Modified: cfe/trunk/lib/Sema/SemaType.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaType.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaType.cpp Mon Jul 30 12:24:48 2018
> @@ -2851,7 +2851,7 @@ static QualType GetDeclSpecTypeForDeclar
> case DeclaratorContext::ObjCParameterContext:
> case DeclaratorContext::ObjCResultContext:
> case DeclaratorContext::PrototypeContext:
> - Error = 0;
> + Error = 0;
> break;
> case DeclaratorContext::LambdaExprParameterContext:
> // In C++14, generic lambdas allow 'auto' in their parameters.
> @@ -2859,7 +2859,7 @@ static QualType GetDeclSpecTypeForDeclar
> !Auto || Auto->getKeyword() != AutoTypeKeyword::Auto)
> Error = 16;
> else {
> - // If auto is mentioned in a lambda parameter context, convert it to a
> + // If auto is mentioned in a lambda parameter context, convert it to a
> // template parameter type.
> sema::LambdaScopeInfo *LSI = SemaRef.getCurLambda();
> assert(LSI && "No LambdaScopeInfo on the stack!");
> @@ -2877,7 +2877,7 @@ static QualType GetDeclSpecTypeForDeclar
> TemplateParameterDepth, AutoParameterPosition,
> /*Identifier*/nullptr, false, IsParameterPack);
> LSI->AutoTemplateParams.push_back(CorrespondingTemplateParam);
> - // Replace the 'auto' in the function parameter with this invented
> + // Replace the 'auto' in the function parameter with this invented
> // template type parameter.
> // FIXME: Retain some type sugar to indicate that this was written
> // as 'auto'.
> @@ -4440,7 +4440,7 @@ static TypeSourceInfo *GetFullTypeForDec
> S.Diag(D.getIdentifierLoc(), diag::err_opencl_invalid_return)
> << T << 0 /*pointer hint*/;
> D.setInvalidType(true);
> - }
> + }
> } else if (!S.getLangOpts().HalfArgsAndReturns) {
> S.Diag(D.getIdentifierLoc(),
> diag::err_parameters_retval_cannot_have_fp16_type) << 1;
> @@ -5332,7 +5332,7 @@ namespace {
> TL.copy(OldTL.castAs<TemplateSpecializationTypeLoc>());
> assert(TL.getRAngleLoc() == OldTL.castAs<TemplateSpecializationTypeLoc>().getRAngleLoc());
> }
> -
> +
> }
> void VisitTypeOfExprTypeLoc(TypeOfExprTypeLoc TL) {
> assert(DS.getTypeSpecType() == DeclSpec::TST_typeofExpr);
> @@ -5627,11 +5627,11 @@ Sema::GetTypeSourceInfoForDeclarator(Dec
> }
>
> for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {
> -
> +
> if (DependentAddressSpaceTypeLoc DASTL =
> CurrTL.getAs<DependentAddressSpaceTypeLoc>()) {
> fillDependentAddressSpaceTypeLoc(DASTL, D.getTypeObject(i).getAttrs());
> - CurrTL = DASTL.getPointeeTypeLoc().getUnqualifiedLoc();
> + CurrTL = DASTL.getPointeeTypeLoc().getUnqualifiedLoc();
> }
>
> // An AtomicTypeLoc might be produced by an atomic qualifier in this
> @@ -5727,13 +5727,13 @@ ParsedType Sema::ActOnObjCInstanceType(S
> // Type Attribute Processing
> //===----------------------------------------------------------------------===//
>
> -/// BuildAddressSpaceAttr - Builds a DependentAddressSpaceType if an expression
> -/// is uninstantiated. If instantiated it will apply the appropriate address space
> +/// BuildAddressSpaceAttr - Builds a DependentAddressSpaceType if an expression
> +/// is uninstantiated. If instantiated it will apply the appropriate address space
> /// to the type. This function allows dependent template variables to be used in
> -/// conjunction with the address_space attribute
> +/// conjunction with the address_space attribute
> QualType Sema::BuildAddressSpaceAttr(QualType &T, Expr *AddrSpace,
> SourceLocation AttrLoc) {
> - if (!AddrSpace->isValueDependent()) {
> + if (!AddrSpace->isValueDependent()) {
>
> llvm::APSInt addrSpace(32);
> if (!AddrSpace->isIntegerConstantExpr(addrSpace, Context)) {
> @@ -5783,8 +5783,8 @@ QualType Sema::BuildAddressSpaceAttr(Qua
> }
>
> // A check with similar intentions as checking if a type already has an
> - // address space except for on a dependent types, basically if the
> - // current type is already a DependentAddressSpaceType then its already
> + // address space except for on a dependent types, basically if the
> + // current type is already a DependentAddressSpaceType then its already
> // lined up to have another address space on it and we can't have
> // multiple address spaces on the one pointer indirection
> if (T->getAs<DependentAddressSpaceType>()) {
> @@ -6116,7 +6116,7 @@ static bool handleObjCGCTypeAttr(TypePro
> attr.setInvalid();
> return true;
> }
> -
> +
> // Check the attribute arguments.
> if (!attr.isArgIdent(0)) {
> S.Diag(attr.getLoc(), diag::err_attribute_argument_type)
> @@ -6327,7 +6327,7 @@ static bool handleMSPointerTypeQualifier
> << "'__sptr'" << "'__uptr'";
> return true;
> }
> -
> +
> Desugared = AT->getEquivalentType();
> AT = dyn_cast<AttributedType>(Desugared);
> }
> @@ -6384,7 +6384,7 @@ bool Sema::checkNullabilityTypeSpecifier
> << FixItHint::CreateRemoval(nullabilityLoc);
>
> break;
> - }
> + }
>
> // Conflicting nullability.
> Diag(nullabilityLoc, diag::err_nullability_conflicting)
> @@ -6430,7 +6430,7 @@ bool Sema::checkNullabilityTypeSpecifier
> << DiagNullabilityKind(nullability, isContextSensitive) << type;
> return true;
> }
> -
> +
> // For the context-sensitive keywords/Objective-C property
> // attributes, require that the type be a single-level pointer.
> if (isContextSensitive) {
> @@ -6472,7 +6472,7 @@ bool Sema::checkObjCKindOfType(QualType
>
> // Find out if it's an Objective-C object or object pointer type;
> const ObjCObjectPointerType *ptrType = type->getAs<ObjCObjectPointerType>();
> - const ObjCObjectType *objType = ptrType ? ptrType->getObjectType()
> + const ObjCObjectType *objType = ptrType ? ptrType->getObjectType()
> : type->getAs<ObjCObjectType>();
>
> // If not, we can't apply __kindof.
> @@ -6501,7 +6501,7 @@ bool Sema::checkObjCKindOfType(QualType
> }
>
> // Build the attributed type to record where __kindof occurred.
> - type = Context.getAttributedType(AttributedType::attr_objc_kindof,
> + type = Context.getAttributedType(AttributedType::attr_objc_kindof,
> type,
> equivType);
>
> @@ -6601,7 +6601,7 @@ static bool distributeNullabilityTypeAtt
> }
>
> return false;
> -
> +
> // Don't walk through these.
> case DeclaratorChunk::Reference:
> case DeclaratorChunk::Pipe:
> @@ -6732,7 +6732,7 @@ static bool handleFunctionTypeAttr(TypeP
> if (S.CheckAttrTarget(attr) || S.CheckAttrNoArgs(attr))
> return true;
>
> - // If this is not a function type, warning will be asserted by subject
> + // If this is not a function type, warning will be asserted by subject
> // check.
> if (!unwrapped.isFunctionType())
> return true;
> @@ -7972,7 +7972,7 @@ static QualType getDecltypeForExpr(Sema
> } else if (auto *PE = dyn_cast<PredefinedExpr>(E)) {
> return PE->getType();
> }
> -
> +
> // C++11 [expr.lambda.prim]p18:
> // Every occurrence of decltype((x)) where x is a possibly
> // parenthesized id-expression that names an entity of automatic
>
> Modified: cfe/trunk/lib/Sema/TreeTransform.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TreeTransform.h?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/TreeTransform.h (original)
> +++ cfe/trunk/lib/Sema/TreeTransform.h Mon Jul 30 12:24:48 2018
> @@ -1815,7 +1815,7 @@ public:
> OMPClause *RebuildOMPNumTeamsClause(Expr *NumTeams, SourceLocation StartLoc,
> SourceLocation LParenLoc,
> SourceLocation EndLoc) {
> - return getSema().ActOnOpenMPNumTeamsClause(NumTeams, StartLoc, LParenLoc,
> + return getSema().ActOnOpenMPNumTeamsClause(NumTeams, StartLoc, LParenLoc,
> EndLoc);
> }
>
> @@ -3033,7 +3033,7 @@ public:
> Sel, Method, LBracLoc, SelectorLocs,
> RBracLoc, Args);
>
> -
> +
> }
>
> /// Build a new Objective-C ivar reference expression.
> @@ -6356,7 +6356,7 @@ TreeTransform<Derived>::TransformObjCObj
>
> TypeLocBuilder TypeArgBuilder;
> TypeArgBuilder.reserve(PatternLoc.getFullDataSize());
> - QualType NewPatternType = getDerived().TransformType(TypeArgBuilder,
> + QualType NewPatternType = getDerived().TransformType(TypeArgBuilder,
> PatternLoc);
> if (NewPatternType.isNull())
> return QualType();
> @@ -10963,7 +10963,7 @@ TreeTransform<Derived>::TransformLambdaE
> TypeSourceInfo *NewCallOpTSI = nullptr;
> {
> TypeSourceInfo *OldCallOpTSI = E->getCallOperator()->getTypeSourceInfo();
> - FunctionProtoTypeLoc OldCallOpFPTL =
> + FunctionProtoTypeLoc OldCallOpFPTL =
> OldCallOpTSI->getTypeLoc().getAs<FunctionProtoTypeLoc>();
>
> TypeLocBuilder NewCallOpTLBuilder;
> @@ -11059,7 +11059,7 @@ TreeTransform<Derived>::TransformLambdaE
>
> // Rebuild init-captures, including the implied field declaration.
> if (E->isInitCapture(C)) {
> - InitCaptureInfoTy InitExprTypePair =
> + InitCaptureInfoTy InitExprTypePair =
> InitCaptureExprsAndTypes[C - E->capture_begin()];
> ExprResult Init = InitExprTypePair.first;
> QualType InitQualType = InitExprTypePair.second;
>
> Modified: cfe/trunk/lib/Sema/TypeLocBuilder.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TypeLocBuilder.h?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/TypeLocBuilder.h (original)
> +++ cfe/trunk/lib/Sema/TypeLocBuilder.h Mon Jul 30 12:24:48 2018
> @@ -37,7 +37,7 @@ class TypeLocBuilder {
> /// The last type pushed on this builder.
> QualType LastTy;
> #endif
> -
> +
> /// The inline buffer.
> enum { BufferMaxAlignment = alignof(void *) };
> llvm::AlignedCharArray<BufferMaxAlignment, InlineCapacity> InlineBuffer;
> @@ -81,7 +81,7 @@ class TypeLocBuilder {
> #endif
> Index = Capacity;
> NumBytesAtAlign4 = NumBytesAtAlign8 = 0;
> - }
> + }
>
> /// Tell the TypeLocBuilder that the type it is storing has been
> /// modified in some safe way that doesn't affect type-location information.
> @@ -90,7 +90,7 @@ class TypeLocBuilder {
> LastTy = T;
> #endif
> }
> -
> +
> /// Pushes space for a new TypeLoc of the given type. Invalidates
> /// any TypeLocs previously retrieved from this builder.
> template <class TyLocType> TyLocType push(QualType T) {
> @@ -112,13 +112,13 @@ class TypeLocBuilder {
> return DI;
> }
>
> - /// Copies the type-location information to the given AST context and
> + /// Copies the type-location information to the given AST context and
> /// returns a \c TypeLoc referring into the AST context.
> TypeLoc getTypeLocInContext(ASTContext &Context, QualType T) {
> #ifndef NDEBUG
> assert(T == LastTy && "type doesn't match last type pushed!");
> #endif
> -
> +
> size_t FullDataSize = Capacity - Index;
> void *Mem = Context.Allocate(FullDataSize);
> memcpy(Mem, &Buffer[Index], FullDataSize);
> @@ -135,7 +135,7 @@ private:
> /// Retrieve a temporary TypeLoc that refers into this \c TypeLocBuilder
> /// object.
> ///
> - /// The resulting \c TypeLoc should only be used so long as the
> + /// The resulting \c TypeLoc should only be used so long as the
> /// \c TypeLocBuilder is active and has not had more type information
> /// pushed into it.
> TypeLoc getTemporaryTypeLoc(QualType T) {
>
> Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTReader.cpp Mon Jul 30 12:24:48 2018
> @@ -6032,7 +6032,7 @@ QualType ASTReader::readTypeRecord(unsig
> }
> QualType ResultType = readType(*Loc.F, Record, Idx);
> FunctionType::ExtInfo Info(Record[1], Record[2], Record[3],
> - (CallingConv)Record[4], Record[5], Record[6],
> + (CallingConv)Record[4], Record[5], Record[6],
> Record[7]);
> return Context.getFunctionNoProtoType(ResultType, Info);
> }
>
> Modified: cfe/trunk/lib/Serialization/ASTReaderDecl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderDecl.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReaderDecl.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTReaderDecl.cpp Mon Jul 30 12:24:48 2018
> @@ -569,7 +569,7 @@ void ASTDeclReader::VisitDecl(Decl *D) {
> Reader.addPendingDeclContextInfo(D,
> SemaDCIDForTemplateParmDecl,
> LexicalDCIDForTemplateParmDecl);
> - D->setDeclContext(Reader.getContext().getTranslationUnitDecl());
> + D->setDeclContext(Reader.getContext().getTranslationUnitDecl());
> } else {
> auto *SemaDC = ReadDeclAs<DeclContext>();
> auto *LexicalDC = ReadDeclAs<DeclContext>();
> @@ -701,7 +701,7 @@ void ASTDeclReader::VisitTypeAliasDecl(T
> ASTDeclReader::RedeclarableResult ASTDeclReader::VisitTagDecl(TagDecl *TD) {
> RedeclarableResult Redecl = VisitRedeclarable(TD);
> VisitTypeDecl(TD);
> -
> +
> TD->IdentifierNamespace = Record.readInt();
> TD->setTagKind((TagDecl::TagKind)Record.readInt());
> if (!isa<CXXRecordDecl>(TD))
> @@ -710,7 +710,7 @@ ASTDeclReader::RedeclarableResult ASTDec
> TD->setFreeStanding(Record.readInt());
> TD->setCompleteDefinitionRequired(Record.readInt());
> TD->setBraceRange(ReadSourceRange());
> -
> +
> switch (Record.readInt()) {
> case 0:
> break;
> @@ -1717,7 +1717,7 @@ void ASTDeclReader::ReadCXXDefinitionDat
> bool IsImplicit = Record.readInt();
> auto Kind = static_cast<LambdaCaptureKind>(Record.readInt());
> switch (Kind) {
> - case LCK_StarThis:
> + case LCK_StarThis:
> case LCK_This:
> case LCK_VLAType:
> *ToCapture++ = Capture(Loc, IsImplicit, Kind, nullptr,SourceLocation());
> @@ -2691,8 +2691,8 @@ static bool isConsumerInterestedIn(ASTCo
> return false;
> }
>
> - if (isa<FileScopeAsmDecl>(D) ||
> - isa<ObjCProtocolDecl>(D) ||
> + if (isa<FileScopeAsmDecl>(D) ||
> + isa<ObjCProtocolDecl>(D) ||
> isa<ObjCImplDecl>(D) ||
> isa<ImportDecl>(D) ||
> isa<PragmaCommentDecl>(D) ||
> @@ -3274,7 +3274,7 @@ ASTDeclReader::FindExistingResult ASTDec
> }
> } UpToDate(Name.getAsIdentifierInfo());
>
> - for (IdentifierResolver::iterator I = IdResolver.begin(Name),
> + for (IdentifierResolver::iterator I = IdResolver.begin(Name),
> IEnd = IdResolver.end();
> I != IEnd; ++I) {
> if (NamedDecl *Existing = getDeclForMerging(*I, TypedefNameForLinkage))
> @@ -3759,7 +3759,7 @@ Decl *ASTReader::ReadDeclRecord(DeclID I
> Error("attempt to read a C++ ctor initializer record as a declaration");
> return nullptr;
> case DECL_IMPORT:
> - // Note: last entry of the ImportDecl record is the number of stored source
> + // Note: last entry of the ImportDecl record is the number of stored source
> // locations.
> D = ImportDecl::CreateDeserialized(Context, ID, Record.back());
> break;
> @@ -3819,7 +3819,7 @@ Decl *ASTReader::ReadDeclRecord(DeclID I
> if (Class->isThisDeclarationADefinition() ||
> PendingDefinitions.count(Class))
> loadObjCCategories(ID, Class);
> -
> +
> // If we have deserialized a declaration that has a definition the
> // AST consumer might need to know about, queue it.
> // We don't pass it to the consumer immediately because we may be in recursive
> @@ -3981,17 +3981,17 @@ namespace {
> llvm::DenseMap<DeclarationName, ObjCCategoryDecl *> NameCategoryMap;
> serialization::GlobalDeclID InterfaceID;
> unsigned PreviousGeneration;
> -
> +
> void add(ObjCCategoryDecl *Cat) {
> // Only process each category once.
> if (!Deserialized.erase(Cat))
> return;
> -
> +
> // Check for duplicate categories.
> if (Cat->getDeclName()) {
> ObjCCategoryDecl *&Existing = NameCategoryMap[Cat->getDeclName()];
> - if (Existing &&
> - Reader.getOwningModuleFile(Existing)
> + if (Existing &&
> + Reader.getOwningModuleFile(Existing)
> != Reader.getOwningModuleFile(Cat)) {
> // FIXME: We should not warn for duplicates in diamond:
> //
> @@ -4001,8 +4001,8 @@ namespace {
> // \ / //
> // MB //
> //
> - // If there are duplicates in ML/MR, there will be warning when
> - // creating MB *and* when importing MB. We should not warn when
> + // If there are duplicates in ML/MR, there will be warning when
> + // creating MB *and* when importing MB. We should not warn when
> // importing.
> Reader.Diag(Cat->getLocation(), diag::warn_dup_category_def)
> << Interface->getDeclName() << Cat->getDeclName();
> @@ -4012,7 +4012,7 @@ namespace {
> Existing = Cat;
> }
> }
> -
> +
> // Add this category to the end of the chain.
> if (Tail)
> ASTDeclReader::setNextObjCCategory(Tail, Cat);
> @@ -4020,7 +4020,7 @@ namespace {
> Interface->setCategoryListRaw(Cat);
> Tail = Cat;
> }
> -
> +
> public:
> ObjCCategoriesVisitor(ASTReader &Reader,
> ObjCInterfaceDecl *Interface,
> @@ -4033,7 +4033,7 @@ namespace {
> for (auto *Cat : Interface->known_categories()) {
> if (Cat->getDeclName())
> NameCategoryMap[Cat->getDeclName()] = Cat;
> -
> +
> // Keep track of the tail of the category list.
> Tail = Cat;
> }
> @@ -4044,8 +4044,8 @@ namespace {
> // this module file, we're done.
> if (M.Generation <= PreviousGeneration)
> return true;
> -
> - // Map global ID of the definition down to the local ID used in this
> +
> + // Map global ID of the definition down to the local ID used in this
> // module file. If there is no such mapping, we'll find nothing here
> // (or in any module it imports).
> DeclID LocalID = Reader.mapGlobalIDToModuleFileGlobalID(M, InterfaceID);
> @@ -4057,7 +4057,7 @@ namespace {
> const ObjCCategoriesInfo Compare = { LocalID, 0 };
> const ObjCCategoriesInfo *Result
> = std::lower_bound(M.ObjCCategoriesMap,
> - M.ObjCCategoriesMap + M.LocalNumObjCCategoriesInMap,
> + M.ObjCCategoriesMap + M.LocalNumObjCCategoriesInMap,
> Compare);
> if (Result == M.ObjCCategoriesMap + M.LocalNumObjCCategoriesInMap ||
> Result->DefinitionID != LocalID) {
> @@ -4066,7 +4066,7 @@ namespace {
> // so suppress further lookup.
> return Reader.isDeclIDFromModule(InterfaceID, M);
> }
> -
> +
> // We found something. Dig out all of the categories.
> unsigned Offset = Result->Offset;
> unsigned N = M.ObjCCategories[Offset];
>
> Modified: cfe/trunk/lib/Serialization/ASTReaderInternals.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderInternals.h?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReaderInternals.h (original)
> +++ cfe/trunk/lib/Serialization/ASTReaderInternals.h Mon Jul 30 12:24:48 2018
> @@ -33,7 +33,7 @@ struct HeaderFileInfo;
> class HeaderSearch;
> class IdentifierTable;
> class ObjCMethodDecl;
> -
> +
> namespace serialization {
>
> class ModuleFile;
> @@ -45,7 +45,7 @@ namespace reader {
> class ASTDeclContextNameLookupTrait {
> ASTReader &Reader;
> ModuleFile &F;
> -
> +
> public:
> // Maximum number of lookup tables we allow before condensing the tables.
> static const int MaxTables = 4;
> @@ -141,31 +141,31 @@ public:
> }
>
> static hash_value_type ComputeHash(const internal_key_type& a);
> -
> +
> static std::pair<unsigned, unsigned>
> ReadKeyDataLength(const unsigned char*& d);
>
> // This hopefully will just get inlined and removed by the optimizer.
> static const internal_key_type&
> GetInternalKey(const external_key_type& x) { return x; }
> -
> +
> // This hopefully will just get inlined and removed by the optimizer.
> static const external_key_type&
> GetExternalKey(const internal_key_type& x) { return x; }
>
> - static internal_key_type ReadKey(const unsigned char* d, unsigned n);
> + static internal_key_type ReadKey(const unsigned char* d, unsigned n);
> };
>
> /// Class that performs lookup for an identifier stored in an AST file.
> class ASTIdentifierLookupTrait : public ASTIdentifierLookupTraitBase {
> ASTReader &Reader;
> ModuleFile &F;
> -
> +
> // If we know the IdentifierInfo in advance, it is here and we will
> // not build a new one. Used when deserializing information about an
> // identifier that was constructed before the AST file was read.
> IdentifierInfo *KnownII;
> -
> +
> public:
> using data_type = IdentifierInfo *;
>
> @@ -176,12 +176,12 @@ public:
> data_type ReadData(const internal_key_type& k,
> const unsigned char* d,
> unsigned DataLen);
> -
> +
> IdentID ReadIdentifierID(const unsigned char *d);
>
> ASTReader &getReader() const { return Reader; }
> };
> -
> +
> /// The on-disk hash table used to contain information about
> /// all of the identifiers in the program.
> using ASTIdentifierLookupTable =
> @@ -192,7 +192,7 @@ using ASTIdentifierLookupTable =
> class ASTSelectorLookupTrait {
> ASTReader &Reader;
> ModuleFile &F;
> -
> +
> public:
> struct data_type {
> SelectorID ID;
> @@ -203,40 +203,40 @@ public:
> SmallVector<ObjCMethodDecl *, 2> Instance;
> SmallVector<ObjCMethodDecl *, 2> Factory;
> };
> -
> +
> using external_key_type = Selector;
> using internal_key_type = external_key_type;
> using hash_value_type = unsigned;
> using offset_type = unsigned;
> -
> +
> ASTSelectorLookupTrait(ASTReader &Reader, ModuleFile &F)
> : Reader(Reader), F(F) {}
> -
> +
> static bool EqualKey(const internal_key_type& a,
> const internal_key_type& b) {
> return a == b;
> }
> -
> +
> static hash_value_type ComputeHash(Selector Sel);
> -
> +
> static const internal_key_type&
> GetInternalKey(const external_key_type& x) { return x; }
> -
> +
> static std::pair<unsigned, unsigned>
> ReadKeyDataLength(const unsigned char*& d);
> -
> +
> internal_key_type ReadKey(const unsigned char* d, unsigned);
> data_type ReadData(Selector, const unsigned char* d, unsigned DataLen);
> };
> -
> +
> /// The on-disk hash table used for the global method pool.
> using ASTSelectorLookupTable =
> llvm::OnDiskChainedHashTable<ASTSelectorLookupTrait>;
> -
> +
> /// Trait class used to search the on-disk hash table containing all of
> /// the header search information.
> ///
> -/// The on-disk hash table contains a mapping from each header path to
> +/// The on-disk hash table contains a mapping from each header path to
> /// information about that header (how many times it has been included, its
> /// controlling macro, etc.). Note that we actually hash based on the size
> /// and mtime, and support "deep" comparisons of file names based on current
> @@ -259,31 +259,31 @@ public:
> };
>
> using internal_key_ref = const internal_key_type &;
> -
> +
> using data_type = HeaderFileInfo;
> using hash_value_type = unsigned;
> using offset_type = unsigned;
> -
> +
> HeaderFileInfoTrait(ASTReader &Reader, ModuleFile &M, HeaderSearch *HS,
> const char *FrameworkStrings)
> : Reader(Reader), M(M), HS(HS), FrameworkStrings(FrameworkStrings) {}
> -
> +
> static hash_value_type ComputeHash(internal_key_ref ikey);
> internal_key_type GetInternalKey(const FileEntry *FE);
> bool EqualKey(internal_key_ref a, internal_key_ref b);
> -
> +
> static std::pair<unsigned, unsigned>
> ReadKeyDataLength(const unsigned char*& d);
> -
> +
> static internal_key_type ReadKey(const unsigned char *d, unsigned);
> -
> +
> data_type ReadData(internal_key_ref,const unsigned char *d, unsigned DataLen);
> };
>
> /// The on-disk hash table used for known header files.
> using HeaderFileInfoLookupTable =
> llvm::OnDiskChainedHashTable<HeaderFileInfoTrait>;
> -
> +
> } // namespace reader
>
> } // namespace serialization
>
> Modified: cfe/trunk/lib/Serialization/ASTWriterDecl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterDecl.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriterDecl.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriterDecl.cpp Mon Jul 30 12:24:48 2018
> @@ -271,7 +271,7 @@ void ASTDeclWriter::Visit(Decl *D) {
>
> // Handle FunctionDecl's body here and write it after all other Stmts/Exprs
> // have been written. We want it last because we will not read it back when
> - // retrieving it from the AST, we'll just lazily set the offset.
> + // retrieving it from the AST, we'll just lazily set the offset.
> if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
> Record.push_back(FD->doesThisDeclarationHaveABody());
> if (FD->doesThisDeclarationHaveABody())
> @@ -526,10 +526,10 @@ void ASTDeclWriter::VisitFunctionDecl(Fu
> VisitDeclaratorDecl(D);
> Record.AddDeclarationNameLoc(D->DNLoc, D->getDeclName());
> Record.push_back(D->getIdentifierNamespace());
> -
> +
> // FunctionDecl's body is handled last at ASTWriterDecl::Visit,
> // after everything else is written.
> -
> +
> Record.push_back((int)D->SClass); // FIXME: stable encoding
> Record.push_back(D->IsInline);
> Record.push_back(D->IsInlineSpecified);
> @@ -576,10 +576,10 @@ void ASTDeclWriter::VisitFunctionDecl(Fu
>
> Record.AddDeclRef(FTSInfo->getTemplate());
> Record.push_back(FTSInfo->getTemplateSpecializationKind());
> -
> +
> // Template arguments.
> Record.AddTemplateArgumentList(FTSInfo->TemplateArguments);
> -
> +
> // Template args as written.
> Record.push_back(FTSInfo->TemplateArgumentsAsWritten != nullptr);
> if (FTSInfo->TemplateArgumentsAsWritten) {
> @@ -591,7 +591,7 @@ void ASTDeclWriter::VisitFunctionDecl(Fu
> Record.AddSourceLocation(FTSInfo->TemplateArgumentsAsWritten->LAngleLoc);
> Record.AddSourceLocation(FTSInfo->TemplateArgumentsAsWritten->RAngleLoc);
> }
> -
> +
> Record.AddSourceLocation(FTSInfo->getPointOfInstantiation());
>
> if (D->isCanonicalDecl()) {
> @@ -604,12 +604,12 @@ void ASTDeclWriter::VisitFunctionDecl(Fu
> case FunctionDecl::TK_DependentFunctionTemplateSpecialization: {
> DependentFunctionTemplateSpecializationInfo *
> DFTSInfo = D->getDependentSpecializationInfo();
> -
> +
> // Templates.
> Record.push_back(DFTSInfo->getNumTemplates());
> for (int i=0, e = DFTSInfo->getNumTemplates(); i != e; ++i)
> Record.AddDeclRef(DFTSInfo->getTemplate(i));
> -
> +
> // Templates args.
> Record.push_back(DFTSInfo->getNumTemplateArgs());
> for (int i=0, e = DFTSInfo->getNumTemplateArgs(); i != e; ++i)
> @@ -707,7 +707,7 @@ void ASTDeclWriter::VisitObjCInterfaceDe
> if (D->isThisDeclarationADefinition()) {
> // Write the DefinitionData
> ObjCInterfaceDecl::DefinitionData &Data = D->data();
> -
> +
> Record.AddTypeSourceInfo(D->getSuperClassTInfo());
> Record.AddSourceLocation(D->getEndOfDefinitionLoc());
> Record.push_back(Data.HasDesignatedInitializers);
> @@ -718,7 +718,7 @@ void ASTDeclWriter::VisitObjCInterfaceDe
> Record.AddDeclRef(P);
> for (const auto &PL : D->protocol_locs())
> Record.AddSourceLocation(PL);
> -
> +
> // Write out the protocols that are transitively referenced.
> Record.push_back(Data.AllReferencedProtocols.size());
> for (ObjCList<ObjCProtocolDecl>::iterator
> @@ -727,17 +727,17 @@ void ASTDeclWriter::VisitObjCInterfaceDe
> P != PEnd; ++P)
> Record.AddDeclRef(*P);
>
> -
> +
> if (ObjCCategoryDecl *Cat = D->getCategoryListRaw()) {
> // Ensure that we write out the set of categories for this class.
> Writer.ObjCClassesWithCategories.insert(D);
> -
> +
> // Make sure that the categories get serialized.
> for (; Cat; Cat = Cat->getNextClassCategoryRaw())
> (void)Writer.GetDeclRef(Cat);
> }
> - }
> -
> + }
> +
> Code = serialization::DECL_OBJC_INTERFACE;
> }
>
> @@ -765,7 +765,7 @@ void ASTDeclWriter::VisitObjCIvarDecl(Ob
> void ASTDeclWriter::VisitObjCProtocolDecl(ObjCProtocolDecl *D) {
> VisitRedeclarable(D);
> VisitObjCContainerDecl(D);
> -
> +
> Record.push_back(D->isThisDeclarationADefinition());
> if (D->isThisDeclarationADefinition()) {
> Record.push_back(D->protocol_size());
> @@ -774,7 +774,7 @@ void ASTDeclWriter::VisitObjCProtocolDec
> for (const auto &PL : D->protocol_locs())
> Record.AddSourceLocation(PL);
> }
> -
> +
> Code = serialization::DECL_OBJC_PROTOCOL;
> }
>
> @@ -964,7 +964,7 @@ void ASTDeclWriter::VisitVarDecl(VarDecl
> if (ModulesCodegen)
> Writer.ModularCodegenDecls.push_back(Writer.GetDeclRef(D));
> }
> -
> +
> enum {
> VarNotTemplate = 0, VarTemplate, StaticDataMemberSpecialization
> };
> @@ -1158,7 +1158,7 @@ void ASTDeclWriter::VisitNamespaceDecl(N
> Record.AddDeclRef(D->getAnonymousNamespace());
> Code = serialization::DECL_NAMESPACE;
>
> - if (Writer.hasChain() && D->isAnonymousNamespace() &&
> + if (Writer.hasChain() && D->isAnonymousNamespace() &&
> D == D->getMostRecentDecl()) {
> // This is a most recent reopening of the anonymous namespace. If its parent
> // is in a previous PCH (or is the TU), mark that parent for update, because
> @@ -1412,7 +1412,7 @@ void ASTDeclWriter::VisitRedeclarableTem
> if (D->getInstantiatedFromMemberTemplate())
> Record.push_back(D->isMemberSpecialization());
> }
> -
> +
> VisitTemplateDecl(D);
> Record.push_back(D->getIdentifierNamespace());
> }
> @@ -1447,7 +1447,7 @@ void ASTDeclWriter::VisitClassTemplateSp
> Record.push_back(D->isCanonicalDecl());
>
> if (D->isCanonicalDecl()) {
> - // When reading, we'll add it to the folding set of the following template.
> + // When reading, we'll add it to the folding set of the following template.
> Record.AddDeclRef(D->getSpecializedTemplate()->getCanonicalDecl());
> }
>
> @@ -1573,18 +1573,18 @@ void ASTDeclWriter::VisitNonTypeTemplate
> // memory.
> if (D->isExpandedParameterPack())
> Record.push_back(D->getNumExpansionTypes());
> -
> +
> VisitDeclaratorDecl(D);
> // TemplateParmPosition.
> Record.push_back(D->getDepth());
> Record.push_back(D->getPosition());
> -
> +
> if (D->isExpandedParameterPack()) {
> for (unsigned I = 0, N = D->getNumExpansionTypes(); I != N; ++I) {
> Record.AddTypeRef(D->getExpansionType(I));
> Record.AddTypeSourceInfo(D->getExpansionTypeSourceInfo(I));
> }
> -
> +
> Code = serialization::DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK;
> } else {
> // Rest of NonTypeTemplateParmDecl.
> @@ -1709,7 +1709,7 @@ void ASTDeclWriter::VisitRedeclarable(Re
> Record.AddDeclRef(FirstLocal);
> }
>
> - // Make sure that we serialize both the previous and the most-recent
> + // Make sure that we serialize both the previous and the most-recent
> // declarations, which (transitively) ensures that all declarations in the
> // chain get serialized.
> //
> @@ -2252,11 +2252,11 @@ void ASTWriter::WriteDecl(ASTContext &Co
> serialization::DeclID &IDR = DeclIDs[D];
> if (IDR == 0)
> IDR = NextDeclID++;
> -
> +
> ID = IDR;
>
> assert(ID >= FirstDeclID && "invalid decl ID");
> -
> +
> RecordData Record;
> ASTDeclWriter W(*this, Context, Record);
>
>
> Modified: cfe/trunk/lib/Serialization/ASTWriterStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterStmt.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriterStmt.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriterStmt.cpp Mon Jul 30 12:24:48 2018
> @@ -247,7 +247,7 @@ void ASTStmtWriter::VisitGCCAsmStmt(GCCA
> Record.AddStmt(S->getAsmString());
>
> // Outputs
> - for (unsigned I = 0, N = S->getNumOutputs(); I != N; ++I) {
> + for (unsigned I = 0, N = S->getNumOutputs(); I != N; ++I) {
> Record.AddIdentifierRef(S->getOutputIdentifier(I));
> Record.AddStmt(S->getOutputConstraintLiteral(I));
> Record.AddStmt(S->getOutputExpr(I));
> @@ -1000,7 +1000,7 @@ void ASTStmtWriter::VisitObjCDictionaryL
> Record.push_back(NumExpansions);
> }
> }
> -
> +
> Record.AddDeclRef(E->getDictWithObjectsMethod());
> Record.AddSourceRange(E->getSourceRange());
> Code = serialization::EXPR_OBJC_DICTIONARY_LITERAL;
> @@ -1064,7 +1064,7 @@ void ASTStmtWriter::VisitObjCPropertyRef
> Record.push_back(2);
> Record.AddDeclRef(E->getClassReceiver());
> }
> -
> +
> Code = serialization::EXPR_OBJC_PROPERTY_REF_EXPR;
> }
>
> @@ -1075,7 +1075,7 @@ void ASTStmtWriter::VisitObjCSubscriptRe
> Record.AddStmt(E->getKeyExpr());
> Record.AddDeclRef(E->getAtIndexMethodDecl());
> Record.AddDeclRef(E->setAtIndexMethodDecl());
> -
> +
> Code = serialization::EXPR_OBJC_SUBSCRIPT_REF_EXPR;
> }
>
> @@ -1108,9 +1108,9 @@ void ASTStmtWriter::VisitObjCMessageExpr
> Record.AddDeclRef(E->getMethodDecl());
> } else {
> Record.push_back(0);
> - Record.AddSelectorRef(E->getSelector());
> + Record.AddSelectorRef(E->getSelector());
> }
> -
> +
> Record.AddSourceLocation(E->getLeftLoc());
> Record.AddSourceLocation(E->getRightLoc());
>
> @@ -1296,14 +1296,14 @@ void ASTStmtWriter::VisitLambdaExpr(Lamb
> Record.push_back(E->ExplicitParams);
> Record.push_back(E->ExplicitResultType);
> Record.AddSourceLocation(E->ClosingBrace);
> -
> +
> // Add capture initializers.
> for (LambdaExpr::capture_init_iterator C = E->capture_init_begin(),
> CEnd = E->capture_init_end();
> C != CEnd; ++C) {
> Record.AddStmt(*C);
> }
> -
> +
> Code = serialization::EXPR_LAMBDA;
> }
>
> @@ -1450,7 +1450,7 @@ void ASTStmtWriter::VisitCXXDeleteExpr(C
> Record.AddDeclRef(E->getOperatorDelete());
> Record.AddStmt(E->getArgument());
> Record.AddSourceLocation(E->getSourceRange().getBegin());
> -
> +
> Code = serialization::EXPR_CXX_DELETE;
> }
>
> @@ -2691,7 +2691,7 @@ void ASTWriter::WriteSubStmt(Stmt *S) {
> RecordData Record;
> ASTStmtWriter Writer(*this, Record);
> ++NumStatements;
> -
> +
> if (!S) {
> Stream.EmitRecord(serialization::STMT_NULL_PTR, Record);
> return;
> @@ -2724,7 +2724,7 @@ void ASTWriter::WriteSubStmt(Stmt *S) {
> #endif
>
> Writer.Visit(S);
> -
> +
> uint64_t Offset = Writer.Emit();
> SubStmtEntries[S] = Offset;
> }
> @@ -2739,7 +2739,7 @@ void ASTRecordWriter::FlushStmts() {
>
> for (unsigned I = 0, N = StmtsToEmit.size(); I != N; ++I) {
> Writer->WriteSubStmt(StmtsToEmit[I]);
> -
> +
> assert(N == StmtsToEmit.size() && "record modified while being written!");
>
> // Note that we are at the end of a full expression. Any
>
> Modified: cfe/trunk/lib/Serialization/Module.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/Module.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/Module.cpp (original)
> +++ cfe/trunk/lib/Serialization/Module.cpp Mon Jul 30 12:24:48 2018
> @@ -30,16 +30,16 @@ ModuleFile::~ModuleFile() {
> }
>
> template<typename Key, typename Offset, unsigned InitialCapacity>
> -static void
> +static void
> dumpLocalRemap(StringRef Name,
> const ContinuousRangeMap<Key, Offset, InitialCapacity> &Map) {
> if (Map.begin() == Map.end())
> return;
> -
> +
> using MapType = ContinuousRangeMap<Key, Offset, InitialCapacity>;
>
> llvm::errs() << " " << Name << ":\n";
> - for (typename MapType::const_iterator I = Map.begin(), IEnd = Map.end();
> + for (typename MapType::const_iterator I = Map.begin(), IEnd = Map.end();
> I != IEnd; ++I) {
> llvm::errs() << " " << I->first << " -> " << I->second << "\n";
> }
> @@ -56,12 +56,12 @@ LLVM_DUMP_METHOD void ModuleFile::dump()
> }
> llvm::errs() << "\n";
> }
> -
> +
> // Remapping tables.
> - llvm::errs() << " Base source location offset: " << SLocEntryBaseOffset
> + llvm::errs() << " Base source location offset: " << SLocEntryBaseOffset
> << '\n';
> dumpLocalRemap("Source location offset local -> global map", SLocRemap);
> -
> +
> llvm::errs() << " Base identifier ID: " << BaseIdentifierID << '\n'
> << " Number of identifiers: " << LocalNumIdentifiers << '\n';
> dumpLocalRemap("Identifier ID local -> global map", IdentifierRemap);
> @@ -77,18 +77,18 @@ LLVM_DUMP_METHOD void ModuleFile::dump()
> llvm::errs() << " Base selector ID: " << BaseSelectorID << '\n'
> << " Number of selectors: " << LocalNumSelectors << '\n';
> dumpLocalRemap("Selector ID local -> global map", SelectorRemap);
> -
> +
> llvm::errs() << " Base preprocessed entity ID: " << BasePreprocessedEntityID
> - << '\n'
> - << " Number of preprocessed entities: "
> + << '\n'
> + << " Number of preprocessed entities: "
> << NumPreprocessedEntities << '\n';
> - dumpLocalRemap("Preprocessed entity ID local -> global map",
> + dumpLocalRemap("Preprocessed entity ID local -> global map",
> PreprocessedEntityRemap);
> -
> +
> llvm::errs() << " Base type index: " << BaseTypeIndex << '\n'
> << " Number of types: " << LocalNumTypes << '\n';
> dumpLocalRemap("Type index local -> global map", TypeRemap);
> -
> +
> llvm::errs() << " Base decl ID: " << BaseDeclID << '\n'
> << " Number of decls: " << LocalNumDecls << '\n';
> dumpLocalRemap("Decl ID local -> global map", DeclRemap);
>
> Modified: cfe/trunk/lib/Serialization/ModuleManager.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ModuleManager.cpp (original)
> +++ cfe/trunk/lib/Serialization/ModuleManager.cpp Mon Jul 30 12:24:48 2018
> @@ -340,7 +340,7 @@ void ModuleManager::visit(llvm::function
> unsigned N = size();
> VisitOrder.clear();
> VisitOrder.reserve(N);
> -
> +
> // Record the number of incoming edges for each module. When we
> // encounter a module with no incoming edges, push it into the queue
> // to seed the queue.
> @@ -477,21 +477,21 @@ namespace llvm {
> static ChildIteratorType child_end(NodeRef Node) {
> return Node->Imports.end();
> }
> -
> +
> static nodes_iterator nodes_begin(const ModuleManager &Manager) {
> return nodes_iterator(Manager.begin());
> }
> -
> +
> static nodes_iterator nodes_end(const ModuleManager &Manager) {
> return nodes_iterator(Manager.end());
> }
> };
> -
> +
> template<>
> struct DOTGraphTraits<ModuleManager> : public DefaultDOTGraphTraits {
> explicit DOTGraphTraits(bool IsSimple = false)
> : DefaultDOTGraphTraits(IsSimple) {}
> -
> +
> static bool renderGraphFromBottomUp() { return true; }
>
> std::string getNodeLabel(ModuleFile *M, const ModuleManager&) {
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Mon Jul 30 12:24:48 2018
> @@ -179,11 +179,11 @@ public:
> II_strdup(nullptr), II_win_strdup(nullptr), II_kmalloc(nullptr),
> II_if_nameindex(nullptr), II_if_freenameindex(nullptr),
> II_wcsdup(nullptr), II_win_wcsdup(nullptr), II_g_malloc(nullptr),
> - II_g_malloc0(nullptr), II_g_realloc(nullptr), II_g_try_malloc(nullptr),
> - II_g_try_malloc0(nullptr), II_g_try_realloc(nullptr),
> - II_g_free(nullptr), II_g_memdup(nullptr), II_g_malloc_n(nullptr),
> - II_g_malloc0_n(nullptr), II_g_realloc_n(nullptr),
> - II_g_try_malloc_n(nullptr), II_g_try_malloc0_n(nullptr),
> + II_g_malloc0(nullptr), II_g_realloc(nullptr), II_g_try_malloc(nullptr),
> + II_g_try_malloc0(nullptr), II_g_try_realloc(nullptr),
> + II_g_free(nullptr), II_g_memdup(nullptr), II_g_malloc_n(nullptr),
> + II_g_malloc0_n(nullptr), II_g_realloc_n(nullptr),
> + II_g_try_malloc_n(nullptr), II_g_try_malloc0_n(nullptr),
> II_g_try_realloc_n(nullptr) {}
>
> /// In pessimistic mode, the checker assumes that it does not know which
> @@ -248,11 +248,11 @@ private:
> *II_realloc, *II_calloc, *II_valloc, *II_reallocf,
> *II_strndup, *II_strdup, *II_win_strdup, *II_kmalloc,
> *II_if_nameindex, *II_if_freenameindex, *II_wcsdup,
> - *II_win_wcsdup, *II_g_malloc, *II_g_malloc0,
> - *II_g_realloc, *II_g_try_malloc, *II_g_try_malloc0,
> - *II_g_try_realloc, *II_g_free, *II_g_memdup,
> - *II_g_malloc_n, *II_g_malloc0_n, *II_g_realloc_n,
> - *II_g_try_malloc_n, *II_g_try_malloc0_n,
> + *II_win_wcsdup, *II_g_malloc, *II_g_malloc0,
> + *II_g_realloc, *II_g_try_malloc, *II_g_try_malloc0,
> + *II_g_try_realloc, *II_g_free, *II_g_memdup,
> + *II_g_malloc_n, *II_g_malloc0_n, *II_g_realloc_n,
> + *II_g_try_malloc_n, *II_g_try_malloc0_n,
> *II_g_try_realloc_n;
> mutable Optional<uint64_t> KernelZeroFlagVal;
>
> @@ -346,7 +346,7 @@ private:
>
> ProgramStateRef ReallocMemAux(CheckerContext &C, const CallExpr *CE,
> bool FreesMemOnFailure,
> - ProgramStateRef State,
> + ProgramStateRef State,
> bool SuffixWithN = false) const;
> static SVal evalMulForBufferSize(CheckerContext &C, const Expr *Blocks,
> const Expr *BlockBytes);
> @@ -652,7 +652,7 @@ bool MallocChecker::isCMemFunction(const
> initIdentifierInfo(C);
>
> if (Family == AF_Malloc && CheckFree) {
> - if (FunI == II_free || FunI == II_realloc || FunI == II_reallocf ||
> + if (FunI == II_free || FunI == II_realloc || FunI == II_reallocf ||
> FunI == II_g_free)
> return true;
> }
> @@ -662,12 +662,12 @@ bool MallocChecker::isCMemFunction(const
> FunI == II_calloc || FunI == II_valloc || FunI == II_strdup ||
> FunI == II_win_strdup || FunI == II_strndup || FunI == II_wcsdup ||
> FunI == II_win_wcsdup || FunI == II_kmalloc ||
> - FunI == II_g_malloc || FunI == II_g_malloc0 ||
> - FunI == II_g_realloc || FunI == II_g_try_malloc ||
> + FunI == II_g_malloc || FunI == II_g_malloc0 ||
> + FunI == II_g_realloc || FunI == II_g_try_malloc ||
> FunI == II_g_try_malloc0 || FunI == II_g_try_realloc ||
> - FunI == II_g_memdup || FunI == II_g_malloc_n ||
> - FunI == II_g_malloc0_n || FunI == II_g_realloc_n ||
> - FunI == II_g_try_malloc_n || FunI == II_g_try_malloc0_n ||
> + FunI == II_g_memdup || FunI == II_g_malloc_n ||
> + FunI == II_g_malloc0_n || FunI == II_g_realloc_n ||
> + FunI == II_g_try_malloc_n || FunI == II_g_try_malloc0_n ||
> FunI == II_g_try_realloc_n)
> return true;
> }
> @@ -873,7 +873,7 @@ void MallocChecker::checkPostStmt(const
> return;
> State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State);
> State = ProcessZeroAllocation(C, CE, 0, State);
> - } else if (FunI == II_realloc || FunI == II_g_realloc ||
> + } else if (FunI == II_realloc || FunI == II_g_realloc ||
> FunI == II_g_try_realloc) {
> State = ReallocMemAux(C, CE, false, State);
> State = ProcessZeroAllocation(C, CE, 1, State);
> @@ -936,7 +936,7 @@ void MallocChecker::checkPostStmt(const
> return;
> State = MallocMemAux(C, CE, CE->getArg(1), UndefinedVal(), State);
> State = ProcessZeroAllocation(C, CE, 1, State);
> - } else if (FunI == II_g_malloc_n || FunI == II_g_try_malloc_n ||
> + } else if (FunI == II_g_malloc_n || FunI == II_g_try_malloc_n ||
> FunI == II_g_malloc0_n || FunI == II_g_try_malloc0_n) {
> if (CE->getNumArgs() < 2)
> return;
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp Mon Jul 30 12:24:48 2018
> @@ -4000,7 +4000,7 @@ void RetainCountChecker::checkEndFunctio
> // Don't process anything within synthesized bodies.
> const LocationContext *LCtx = Pred->getLocationContext();
> if (LCtx->getAnalysisDeclContext()->isBodyAutosynthesized()) {
> - assert(!LCtx->inTopFrame());
> + assert(!LCtx->inTopFrame());
> return;
> }
>
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp Mon Jul 30 12:24:48 2018
> @@ -129,7 +129,7 @@ bool StackAddrEscapeChecker::isSemaphore
> for (const auto &C : B.captures()) {
> const auto *T = C.getVariable()->getType()->getAs<TypedefType>();
> if (T && T->getDecl()->getIdentifier() == dispatch_semaphore_tII)
> - return true;
> + return true;
> }
> return false;
> }
> @@ -175,9 +175,9 @@ void StackAddrEscapeChecker::checkAsyncE
> // There is a not-too-uncommon idiom
> // where a block passed to dispatch_async captures a semaphore
> // and then the thread (which called dispatch_async) is blocked on waiting
> - // for the completion of the execution of the block
> - // via dispatch_semaphore_wait. To avoid false-positives (for now)
> - // we ignore all the blocks which have captured
> + // for the completion of the execution of the block
> + // via dispatch_semaphore_wait. To avoid false-positives (for now)
> + // we ignore all the blocks which have captured
> // a variable of the type "dispatch_semaphore_t".
> if (isSemaphoreCaptured(*B.getDecl()))
> return;
> @@ -263,7 +263,7 @@ void StackAddrEscapeChecker::checkPreStm
> if (const BlockDataRegion *B = dyn_cast<BlockDataRegion>(R))
> checkReturnedBlockCaptures(*B, C);
>
> - if (!isa<StackSpaceRegion>(R->getMemorySpace()) ||
> + if (!isa<StackSpaceRegion>(R->getMemorySpace()) ||
> isNotInCurrentFrame(R, C) || isArcManagedBlock(R, C))
> return;
>
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Mon Jul 30 12:24:48 2018
> @@ -2338,7 +2338,7 @@ void ExprEngine::processSwitch(SwitchNod
> // Evaluate the LHS of the case value.
> llvm::APSInt V1 = Case->getLHS()->EvaluateKnownConstInt(getContext());
> assert(V1.getBitWidth() == getContext().getIntWidth(CondE->getType()));
> -
> +
> // Get the RHS of the case, if it exists.
> llvm::APSInt V2;
> if (const Expr *E = Case->getRHS())
> @@ -2538,12 +2538,12 @@ void ExprEngine::VisitMemberExpr(const M
> ExplodedNodeSet CheckedSet;
> getCheckerManager().runCheckersForPreStmt(CheckedSet, Pred, M, *this);
>
> - ExplodedNodeSet EvalSet;
> - ValueDecl *Member = M->getMemberDecl();
> + ExplodedNodeSet EvalSet;
> + ValueDecl *Member = M->getMemberDecl();
>
> // Handle static member variables and enum constants accessed via
> // member syntax.
> - if (isa<VarDecl>(Member) || isa<EnumConstantDecl>(Member)) {
> + if (isa<VarDecl>(Member) || isa<EnumConstantDecl>(Member)) {
> for (const auto I : CheckedSet)
> VisitCommonDeclRefExpr(M, Member, I, EvalSet);
> } else {
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp Mon Jul 30 12:24:48 2018
> @@ -684,7 +684,7 @@ void ExprEngine::VisitLogicalExpr(const
> // known to be false, 1 if the value is known to be true and a new symbol
> // when the assumption is unknown.
> nonloc::ConcreteInt Zero(getBasicVals().getValue(0, B->getType()));
> - X = evalBinOp(N->getState(), BO_NE,
> + X = evalBinOp(N->getState(), BO_NE,
> svalBuilder.evalCast(RHSVal, B->getType(), RHS->getType()),
> Zero, B->getType());
> }
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/IssueHash.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/IssueHash.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/IssueHash.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/IssueHash.cpp Mon Jul 30 12:24:48 2018
> @@ -26,7 +26,7 @@
>
> using namespace clang;
>
> -// Get a string representation of the parts of the signature that can be
> +// Get a string representation of the parts of the signature that can be
> // overloaded on.
> static std::string GetSignature(const FunctionDecl *Target) {
> if (!Target)
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp Mon Jul 30 12:24:48 2018
> @@ -440,7 +440,7 @@ static bool shouldRearrange(ProgramState
> SymbolRef Sym, llvm::APSInt Int, QualType Ty) {
> return Sym->getType() == Ty &&
> (!BinaryOperator::isComparisonOp(Op) ||
> - (isWithinConstantOverflowBounds(Sym, State) &&
> + (isWithinConstantOverflowBounds(Sym, State) &&
> isWithinConstantOverflowBounds(Int)));
> }
>
>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp?rev=338291&r1=338290&r2=338291&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp Mon Jul 30 12:24:48 2018
> @@ -448,10 +448,10 @@ SVal StoreManager::getLValueElement(Qual
> // value. See also the similar FIXME in getLValueFieldOrIvar().
> if (Base.isUnknownOrUndef() || Base.getAs<loc::ConcreteInt>())
> return Base;
> -
> +
> if (Base.getAs<loc::GotoLabel>())
> return UnknownVal();
> -
> +
> const SubRegion *BaseRegion =
> Base.castAs<loc::MemRegionVal>().getRegionAs<SubRegion>();
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list