diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-02-02 00:37:08 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-02-02 00:37:08 +0000 |
commit | 73c69a37140d88002ffd04e4eb1d149acf2f974d (patch) | |
tree | 054a172eda19f6df5278b8e5b1f0783d5f86c9ab /clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp | |
parent | dc5e583687d01325c2a74c1a8da73ef892d7bfbe (diff) | |
download | bcm5719-llvm-73c69a37140d88002ffd04e4eb1d149acf2f974d.tar.gz bcm5719-llvm-73c69a37140d88002ffd04e4eb1d149acf2f974d.zip |
[clang-tidy] misc-argument-comment support for gmock
llvm-svn: 293845
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp index 4c4e4a9ad32..1861afcc6c7 100644 --- a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp @@ -179,6 +179,21 @@ void ArgumentCommentCheck::checkCallArgs(ASTContext *Ctx, } } +static const FunctionDecl *resolveMocks(const MatchFinder::MatchResult &Result, + const FunctionDecl *Func) { + if (auto *Method = dyn_cast<CXXMethodDecl>(Func)) { + if (Method->getLocation().isMacroID() && + Lexer::getImmediateMacroName(Method->getLocation(), + *Result.SourceManager, + Result.Context->getLangOpts()) + .contains("MOCK_METHOD") && + Method->size_overridden_methods() != 0) { + Func = *Method->begin_overridden_methods(); + } + } + return Func; +} + void ArgumentCommentCheck::check(const MatchFinder::MatchResult &Result) { const auto *E = Result.Nodes.getNodeAs<Expr>("expr"); if (const auto *Call = dyn_cast<CallExpr>(E)) { @@ -186,6 +201,8 @@ void ArgumentCommentCheck::check(const MatchFinder::MatchResult &Result) { if (!Callee) return; + Callee = resolveMocks(Result, Callee); + checkCallArgs(Result.Context, Callee, Call->getCallee()->getLocEnd(), llvm::makeArrayRef(Call->getArgs(), Call->getNumArgs())); } else { |