Index: clang/lib/AST/Decl.cpp =================================================================== --- clang/lib/AST/Decl.cpp +++ clang/lib/AST/Decl.cpp @@ -3874,11 +3874,11 @@ // (i.e. instantiated-from-member-template) to use as an instantiation // pattern. - if (isGenericLambdaCallOperatorSpecialization( - dyn_cast(this))) { - assert(getPrimaryTemplate() && "not a generic lambda call operator?"); - return getDefinitionOrSelf(getPrimaryTemplate()->getTemplatedDecl()); - } + //if (isGenericLambdaCallOperatorSpecialization( + // dyn_cast(this))) { + // assert(getPrimaryTemplate() && "not a generic lambda call operator?"); + // return getDefinitionOrSelf(getPrimaryTemplate()->getTemplatedDecl()); + //} // Check for a declaration of this function that was instantiated from a // friend definition. Index: clang/lib/Sema/SemaTemplateInstantiate.cpp =================================================================== --- clang/lib/Sema/SemaTemplateInstantiate.cpp +++ clang/lib/Sema/SemaTemplateInstantiate.cpp @@ -182,9 +182,9 @@ return Response::Done(); // If this function is a generic lambda specialization, we are done. - if (!ForConstraintInstantiation && - isGenericLambdaCallOperatorOrStaticInvokerSpecialization(Function)) - return Response::Done(); + //if (!ForConstraintInstantiation && + // isGenericLambdaCallOperatorOrStaticInvokerSpecialization(Function)) + // return Response::Done(); } else if (Function->getDescribedFunctionTemplate()) { assert( Index: clang/lib/Sema/TreeTransform.h =================================================================== --- clang/lib/Sema/TreeTransform.h +++ clang/lib/Sema/TreeTransform.h @@ -13389,7 +13389,8 @@ template StmtResult TreeTransform::TransformLambdaBody(LambdaExpr *E, Stmt *S) { - return TransformStmt(S); + //return TransformStmt(S); + return SkipLambdaBody(E, S); } template