rsmith accepted this revision. rsmith added a comment. This revision is now accepted and ready to land.
LGTM, thanks! ================ Comment at: include/clang/AST/LambdaCapture.h:48 @@ +47,3 @@ + // by value or reference. + // - or, points to the VLASentinel if this represents a by VLA capture. + llvm::PointerIntPair<void*, 2> CapturedEntityAndBits; ---------------- "by VLA capture" -> "capture of a VLA type"? ================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:5982 @@ +5981,3 @@ + + // C++1z star-this captures. + def warn_cxx14_compat_star_this_lambda_capture : Warning< ---------------- star-this -> *this ================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:5984-5987 @@ -5981,1 +5983,6 @@ + def warn_cxx14_compat_star_this_lambda_capture : Warning< + "by value capture of '*this' is incompatible with C++ standards before C++1z">, + InGroup<CXXPre1zCompat>, DefaultIgnore; + def ext_star_this_lambda_capture_cxx1z : ExtWarn< + "by value capture of '*this' is a C++1z extension">, InGroup<CXX1z>; } ---------------- by value capture of '*this' -> capture of '*this' by copy ================ Comment at: lib/Sema/SemaExprCXX.cpp:994 @@ -926,2 +993,3 @@ CSI->ImpCaptureStyle == CapturingScopeInfo::ImpCap_CapturedRegion || - Explicit) { + UseExplicitFlag) { + assert(!UseExplicitFlag || idx == MaxFunctionScopesIndex); ---------------- You don't need this flag; instead, check `Explicit && idx == MaxFunctionScopesIndex` here. ================ Comment at: lib/Sema/SemaExprCXX.cpp:1033 @@ +1032,3 @@ + ThisExpr = captureThis(*this, Context, LSI->Lambda, ThisTy, Loc, + UseByCopyFlag); + // If we must capture the *enclosing object* in outer lambdas, they must ---------------- Likewise here. http://reviews.llvm.org/D18139 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits