diff options
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp')
| -rw-r--r-- | clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp b/clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp index 6e69f2a4e41..7c8a132e5e5 100644 --- a/clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/InaccurateEraseCheck.cpp @@ -25,19 +25,20 @@ void InaccurateEraseCheck::registerMatchers(MatchFinder *Finder) { return; const auto CheckForEndCall = hasArgument( - 1, anyOf(cxxConstructExpr( - has(cxxMemberCallExpr(callee(cxxMethodDecl(hasName("end")))) - .bind("InaccEndCall"))), + 1, anyOf(cxxConstructExpr(has(ignoringParenImpCasts( + cxxMemberCallExpr(callee(cxxMethodDecl(hasName("end")))) + .bind("InaccEndCall")))), anything())); Finder->addMatcher( cxxMemberCallExpr( on(hasType(namedDecl(matchesName("^::std::")))), callee(cxxMethodDecl(hasName("erase"))), argumentCountIs(1), - hasArgument(0, has(callExpr(callee(functionDecl(matchesName( + hasArgument(0, has(ignoringParenImpCasts( + callExpr(callee(functionDecl(matchesName( "^::std::(remove(_if)?|unique)$"))), CheckForEndCall) - .bind("InaccAlgCall"))), + .bind("InaccAlgCall")))), unless(isInTemplateInstantiation())) .bind("InaccErase"), this); |

