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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits