alexfh added inline comments.
================ Comment at: clang-tidy/utils/DeclRefExprUtils.cpp:127 + match(findAll(declRefExpr(equalsNode(&DeclRef), + unless(hasAncestor(stmt(anyOf( + forStmt(), cxxForRangeStmt(), whileStmt(), ---------------- flx wrote: > alexfh wrote: > > How will this work with lambdas / local classes declared inside a loop? Not > > sure if this case is going to happen in real code, but we'd better be clear > > about the limitations of the implementation. > Why would this not work? Could you give an example? The way the function is > written it handles my the use case for identifying when moving the parameter > is not safe, so I could also just move it into the UnnecessaryValueParamCheck. I was thinking about a case where a loop this matcher finds is outside of the function definition and shouldn't be considered: void F() { for (;;) { struct C { void f(ExpensiveMovableType E) { auto F = E; } }; } } https://reviews.llvm.org/D27187 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits