summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2016-04-26 19:33:49 +0000
committerAlexander Kornienko <alexfh@google.com>2016-04-26 19:33:49 +0000
commit900cadd3adb495c08c548b609d530ad3fea9b3e6 (patch)
treefcac681a79474483b4b4d995a287df5dbaf598ae /clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp
parent8dc9dcaeaccd3be047740b1f19c4beee33b0f44e (diff)
downloadbcm5719-llvm-900cadd3adb495c08c548b609d530ad3fea9b3e6.tar.gz
bcm5719-llvm-900cadd3adb495c08c548b609d530ad3fea9b3e6.zip
[clang-tidy] Now adding correct misc-move-const-arg documentation ;]
+ brushed the code a bit and renamed the test file to match the check name llvm-svn: 267592
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp b/clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp
index f38b49be8ea..d8e817523b8 100644
--- a/clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/MoveConstantArgumentCheck.cpp
@@ -20,16 +20,15 @@ using namespace ast_matchers;
void MoveConstantArgumentCheck::registerMatchers(MatchFinder *Finder) {
if (!getLangOpts().CPlusPlus)
return;
- Finder->addMatcher(callExpr(unless(isInTemplateInstantiation()),
- callee(functionDecl(hasName("::std::move"))))
+ Finder->addMatcher(callExpr(callee(functionDecl(hasName("::std::move"))),
+ argumentCountIs(1),
+ unless(isInTemplateInstantiation()))
.bind("call-move"),
this);
}
void MoveConstantArgumentCheck::check(const MatchFinder::MatchResult &Result) {
const auto *CallMove = Result.Nodes.getNodeAs<CallExpr>("call-move");
- if (CallMove->getNumArgs() != 1)
- return;
const Expr *Arg = CallMove->getArg(0);
SourceManager &SM = Result.Context->getSourceManager();
@@ -43,12 +42,12 @@ void MoveConstantArgumentCheck::check(const MatchFinder::MatchResult &Result) {
if (!FileMoveRange.isValid())
return;
bool IsVariable = isa<DeclRefExpr>(Arg);
- auto Diag =
- diag(FileMoveRange.getBegin(), "std::move of the %select{|const }0"
- "%select{expression|variable}1 "
- "%select{|of trivially-copyable type }2"
- "has no effect; remove std::move()")
- << IsConstArg << IsVariable << IsTriviallyCopyable;
+ auto Diag = diag(FileMoveRange.getBegin(),
+ "std::move of the %select{|const }0"
+ "%select{expression|variable}1 "
+ "%select{|of a trivially-copyable type }2"
+ "has no effect; remove std::move()")
+ << IsConstArg << IsVariable << IsTriviallyCopyable;
auto BeforeArgumentsRange = Lexer::makeFileCharRange(
CharSourceRange::getCharRange(CallMove->getLocStart(),
OpenPOWER on IntegriCloud