diff options
author | Piotr Padlewski <piotr.padlewski@gmail.com> | 2016-05-31 15:26:56 +0000 |
---|---|---|
committer | Piotr Padlewski <piotr.padlewski@gmail.com> | 2016-05-31 15:26:56 +0000 |
commit | e93a73fb7aa49d04f1109e6c3c69530ea6d81d31 (patch) | |
tree | 11aca431300988da1967aee59494d6e2b06d4eb1 /clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp | |
parent | cfed2bf5881597a05a1abab446b96bb8d3adb33a (diff) | |
download | bcm5719-llvm-e93a73fb7aa49d04f1109e6c3c69530ea6d81d31.tar.gz bcm5719-llvm-e93a73fb7aa49d04f1109e6c3c69530ea6d81d31.zip |
[ASTMatchers] Added ignoringParenImpCasts to has matchers
has matcher changed behaviour, and now it matches "as is" and
doesn't skip implicit and paren casts
http://reviews.llvm.org/D20801
llvm-svn: 271289
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp b/clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp index 0dea909f8ed..810118608da 100644 --- a/clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/InefficientAlgorithmCheck.cpp @@ -45,18 +45,19 @@ void InefficientAlgorithmCheck::registerMatchers(MatchFinder *Finder) { callExpr( callee(functionDecl(Algorithms)), hasArgument( - 0, cxxConstructExpr(has(cxxMemberCallExpr( + 0, cxxConstructExpr(has(ignoringParenImpCasts(cxxMemberCallExpr( callee(cxxMethodDecl(hasName("begin"))), on(declRefExpr( hasDeclaration(decl().bind("IneffContObj")), anyOf(hasType(ContainerMatcher.bind("IneffCont")), hasType(pointsTo( ContainerMatcher.bind("IneffContPtr"))))) - .bind("IneffContExpr")))))), - hasArgument(1, cxxConstructExpr(has(cxxMemberCallExpr( - callee(cxxMethodDecl(hasName("end"))), - on(declRefExpr(hasDeclaration( - equalsBoundNode("IneffContObj")))))))), + .bind("IneffContExpr"))))))), + hasArgument( + 1, cxxConstructExpr(has(ignoringParenImpCasts(cxxMemberCallExpr( + callee(cxxMethodDecl(hasName("end"))), + on(declRefExpr( + hasDeclaration(equalsBoundNode("IneffContObj"))))))))), hasArgument(2, expr().bind("AlgParam")), unless(isInTemplateInstantiation())) .bind("IneffAlg"); |