faisalv marked 5 inline comments as done.
faisalv added a comment.

OK - agree (and addressed in a forthcoming patch) all your comments - except 
for the one I could use some clarity on - please see below


================
Comment at: lib/Sema/SemaExprCXX.cpp:910
@@ +909,3 @@
+      assert(IsFirstIteration);
+      assert(CurLSI->CallOperator->getParent()->getParent() == CurDC);
+      CurDC = CurLSI->CallOperator;
----------------
rsmith wrote:
> Please add a comment explaining this, I have no idea what special case you're 
> checking for here.
That special case should have been removed before submission - it crept in as I 
was making incremental changes to the initial patch, and getCurrentThisType was 
still being called from RebuildLambdaScopeInfo. (Alternatively, I might have 
left it in to give Richard a sense of purpose ;) 

================
Comment at: lib/Sema/SemaExprCXX.cpp:952
@@ +951,3 @@
+    while (Closure &&
+           IsThisCaptured(Closure, IsByCopyCapture, IsConstCapture)) {
+      if (IsByCopyCapture) {
----------------
rsmith wrote:
> Should you really stop here if this is not captured? There could still be a 
> surrounding lambda with a mutable *this capture.
Do you have the following example in mind?  Or is it something different?

void foo() const {
  auto L1 = [*this] { 
      static_assert(is_same<decltype(this), const X*>);

      auto M2 = [*this] () mutable { 
        static_assert(is_same<decltype(this), X*>);  
        auto N = [] {
          static_assert(is_same<decltype(this), X*>); 
        };
      };
    };
}


http://reviews.llvm.org/D19783



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

Reply via email to