ahatanak added inline comments.
================ Comment at: lib/Sema/SemaLambda.cpp:1524-1526 + if (!CurContext->isDependentContext() && !IsImplicit) + if ((IsGenericLambda && !From.isNonODRUsed()) || + (!IsGenericLambda && !From.isODRUsed())) ---------------- kongyi wrote: > malcolm.parsons wrote: > > Should generic lambdas and lambdas in a dependent context be treated the > > same? > > > > Is a lambda inside a generic lambda in a dependent context? > Generic lambdas are essentially templated lambdas. For diagnosing unused > captures, they can be treated as the same. However we are not generating > diagnoses within dependent contexts right now (L1524), so this is not really > related to this fix. It looks like clang stops warning about the unnecessary capture in the following code when this patch is applied: ``` void foo2(int); void foo1() { const int c = 10; auto lambda1 = [c](auto a) { // clang used to issue warning "lambda capture 'c' is not required to be captured for this use" foo2(c); }; lambda1(100); } ``` Is it possible to suppress the warning if From is an init capture instead? Repository: rL LLVM https://reviews.llvm.org/D33526 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits