rsmith added inline comments.

================
Comment at: clang/lib/Sema/SemaLambda.cpp:1422-1424
   auto Entity = InitializedEntity::InitializeLambdaCapture(
       Var->getIdentifier(), Field->getType(), Loc);
   InitializationKind InitKind = InitializationKind::CreateDirect(Loc, Loc, 
Loc);
----------------
Should these locations also be updated to `InitLoc`? If we're modeling the 
initialization as happening at the capture-default, we should do that 
consistently.


================
Comment at: clang/lib/Sema/SemaLambda.cpp:1612
+        auto InitResult = performLambdaVarCaptureInitialization(
+            *this, From, *CurField, IntroducerRange.getBegin(), IsImplicit);
         if (InitResult.isInvalid())
----------------
Use `CaptureDefaultLoc` here instead of the start of the introducer range.


================
Comment at: 
clang/unittests/Tooling/RecursiveASTVisitorTests/DeclRefExpr.cpp:78-84
+  // We're expecting the "i" in the lambda to be visited just once (for the
+  // DeclRefExpr for the use of "i" inside the lambda).
+  //
+  // Previously, the DeclRefExpr in the implicit lambda capture initialization
+  // (whose source code location was set to the first use of the variable) was
+  // also matched. This location was changed to the starting site of the
+  // capture list to improve stepping behavior.
----------------
Please describe what the status quo is and why rather than explaining what it 
used to be and why it's different. The history stops being interesting very 
soon after you commit the new behavior.


https://reviews.llvm.org/D50927



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to