r338291 - Remove trailing space
Michael Kruse via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 30 13:24:29 PDT 2018
I think removing trailing space is a good thing. Some editors remove
any trailing space when saving a file. This shows up in diffs that I
then have to undo manually.
Michael
2018-07-30 14:31 GMT-05:00 Aaron Ballman via cfe-commits
<cfe-commits at lists.llvm.org>:
> 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
> _______________________________________________
> 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