[PATCH] D30327: [Sema] Improve side effect checking for unused-lambda-capture warning
    Malcolm Parsons via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Tue Feb 28 01:23:34 PST 2017
    
    
  
malcolm.parsons added a comment.
I found this FIXME comment in `Expr::HasSideEffects()`:
  case LambdaExprClass: {
    const LambdaExpr *LE = cast<LambdaExpr>(this);
    for (LambdaExpr::capture_iterator I = LE->capture_begin(),
                                      E = LE->capture_end(); I != E; ++I)
      if (I->getCaptureKind() == LCK_ByCopy)
        // FIXME: Only has a side-effect if the variable is volatile or if
        // the copy would invoke a non-trivial copy constructor.
        return true;
    return false;
  }
It seems a shame not to fix this now, but I don't think I can call Sema code from AST code, and my `CaptureHasSideEffects()` depends on `Sema::getCurrentThisType()`.
Any ideas?
https://reviews.llvm.org/D30327
    
    
More information about the cfe-commits
mailing list