xazax.hun added a comment. This does not support memberExprs as condition variables right now.
What happens if you have something like this: struct X { void f(int a) { while(a < i) { --i; } } int i; }; I think you could extend the test cases with some classes. ================ Comment at: clang-tidy/misc/InfiniteLoopCheck.cpp:28 +void InfiniteLoopCheck::registerMatchers(MatchFinder *Finder) { + const auto loopCondition = []() { + return allOf(hasCondition(expr().bind("condition")), ---------------- Do you need this to be a lambda? Can't you just use a local variable? ================ Comment at: clang-tidy/misc/InfiniteLoopCheck.cpp:31 + anyOf(hasAncestor(lambdaExpr().bind("containing-lambda")), + hasAncestor(functionDecl().bind("containing-func"))), + unless(hasBody(hasDescendant(loopEndingStmt())))); ---------------- Maybe this is not too important, but you might also want to check for blocks here. ================ Comment at: clang-tidy/misc/InfiniteLoopCheck.cpp:48 + declRefExpr(to(varDecl(VarNodeMatcher)))))), + binaryOperator(anyOf(hasOperatorName("="), hasOperatorName("+="), + hasOperatorName("/="), hasOperatorName("*="), ---------------- This can be greatly simplified once https://reviews.llvm.org/D38921 is accepted. Maybe you could use that as a dependent revision? It should be close to be accepted. https://reviews.llvm.org/D40937 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits