r288089 - Avoid lambdas in default member initializers to work around clang bug
Reid Kleckner via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 6 11:38:54 PST 2016
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161206/0d48919f/attachment.html>
More information about the cfe-commits
mailing list