r288089 - Avoid lambdas in default member initializers to work around clang bug

Benjamin Kramer via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 6 12:29:47 PST 2016


Leaving it as it is now is fine with me.

On Tue, Dec 6, 2016 at 8:38 PM, Reid Kleckner <rnk at google.com> wrote:
> This can be reverted now that PR31197 is fixed. I kind of like the new code
> better, so up to you, Benjamin.
>
> On Mon, Nov 28, 2016 at 3:58 PM, Reid Kleckner via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>>
>> Author: rnk
>> Date: Mon Nov 28 17:58:04 2016
>> New Revision: 288089
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=288089&view=rev
>> Log:
>> Avoid lambdas in default member initializers to work around clang bug
>>
>> On Windows, Clang is mangling lambdas in default member initializers
>> incorrectly. See PR31197.
>>
>> This is causing redness on the self-host bots. Work around the problem
>> locally so we aren't blind to further issues.
>>
>> Modified:
>>     cfe/trunk/unittests/Tooling/LookupTest.cpp
>>
>> Modified: cfe/trunk/unittests/Tooling/LookupTest.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/LookupTest.cpp?rev=288089&r1=288088&r2=288089&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/unittests/Tooling/LookupTest.cpp (original)
>> +++ cfe/trunk/unittests/Tooling/LookupTest.cpp Mon Nov 28 17:58:04 2016
>> @@ -13,18 +13,19 @@ using namespace clang;
>>
>>  namespace {
>>  struct GetDeclsVisitor : TestVisitor<GetDeclsVisitor> {
>> -  std::function<void(CallExpr *)> OnCall = [&](CallExpr *Expr) {};
>> -  std::function<void(RecordTypeLoc)> OnRecordTypeLoc = [&](RecordTypeLoc
>> Type) {
>> -  };
>> +  std::function<void(CallExpr *)> OnCall;
>> +  std::function<void(RecordTypeLoc)> OnRecordTypeLoc;
>>    SmallVector<Decl *, 4> DeclStack;
>>
>>    bool VisitCallExpr(CallExpr *Expr) {
>> -    OnCall(Expr);
>> +    if (OnCall)
>> +      OnCall(Expr);
>>      return true;
>>    }
>>
>>    bool VisitRecordTypeLoc(RecordTypeLoc Loc) {
>> -    OnRecordTypeLoc(Loc);
>> +    if (OnRecordTypeLoc)
>> +      OnRecordTypeLoc(Loc);
>>      return true;
>>    }
>>
>>
>>
>> _______________________________________________
>> 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