[clang-tools-extra] r318926 - [clang-tidy] rename_check.py misc-argument-comment bugprone-argument-comment
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 23 09:02:48 PST 2017
Author: alexfh
Date: Thu Nov 23 09:02:48 2017
New Revision: 318926
URL: http://llvm.org/viewvc/llvm-project?rev=318926&view=rev
Log:
[clang-tidy] rename_check.py misc-argument-comment bugprone-argument-comment
Summary: + manually convert the unit test to lit test.
Reviewers: hokein
Reviewed By: hokein
Subscribers: mgorny, xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D40392
Added:
clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp
- copied, changed from r318922, clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.h
- copied, changed from r318922, clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h
clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-argument-comment.rst
- copied, changed from r318922, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst
clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-gmock.cpp
- copied, changed from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-strict.cpp
- copied, changed from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp
- copied, changed from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp
Removed:
clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp
clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h
clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst
clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp
clang-tools-extra/trunk/unittests/clang-tidy/MiscModuleTest.cpp
Modified:
clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt
clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt
clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp
clang-tools-extra/trunk/docs/ReleaseNotes.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
clang-tools-extra/trunk/unittests/clang-tidy/CMakeLists.txt
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp (from r318922, clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp?p2=clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp&p1=clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.cpp Thu Nov 23 09:02:48 2017
@@ -18,7 +18,7 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name,
ClangTidyContext *Context)
@@ -303,6 +303,6 @@ void ArgumentCommentCheck::check(const M
}
}
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.h (from r318922, clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.h?p2=clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.h&p1=clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/ArgumentCommentCheck.h Thu Nov 23 09:02:48 2017
@@ -15,7 +15,7 @@
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
/// Checks that argument comments match parameter names.
///
@@ -48,7 +48,7 @@ private:
llvm::ArrayRef<const Expr *> Args);
};
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Modified: clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp Thu Nov 23 09:02:48 2017
@@ -10,6 +10,7 @@
#include "../ClangTidy.h"
#include "../ClangTidyModule.h"
#include "../ClangTidyModuleRegistry.h"
+#include "ArgumentCommentCheck.h"
#include "CopyConstructorInitCheck.h"
#include "IntegerDivisionCheck.h"
#include "MisplacedOperatorInStrlenInAllocCheck.h"
@@ -24,6 +25,8 @@ namespace bugprone {
class BugproneModule : public ClangTidyModule {
public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
+ CheckFactories.registerCheck<ArgumentCommentCheck>(
+ "bugprone-argument-comment");
CheckFactories.registerCheck<CopyConstructorInitCheck>(
"bugprone-copy-constructor-init");
CheckFactories.registerCheck<IntegerDivisionCheck>(
Modified: clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt Thu Nov 23 09:02:48 2017
@@ -1,6 +1,7 @@
set(LLVM_LINK_COMPONENTS support)
add_clang_library(clangTidyBugproneModule
+ ArgumentCommentCheck.cpp
BugproneTidyModule.cpp
CopyConstructorInitCheck.cpp
IntegerDivisionCheck.cpp
Removed: clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.cpp (removed)
@@ -1,308 +0,0 @@
-//===--- ArgumentCommentCheck.cpp - clang-tidy ----------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ArgumentCommentCheck.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/Lex/Lexer.h"
-#include "clang/Lex/Token.h"
-#include "../utils/LexerUtils.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name,
- ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context),
- StrictMode(Options.getLocalOrGlobal("StrictMode", 0) != 0),
- IdentRE("^(/\\* *)([_A-Za-z][_A-Za-z0-9]*)( *= *\\*/)$") {}
-
-void ArgumentCommentCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
- Options.store(Opts, "StrictMode", StrictMode);
-}
-
-void ArgumentCommentCheck::registerMatchers(MatchFinder *Finder) {
- Finder->addMatcher(
- callExpr(unless(cxxOperatorCallExpr()),
- // NewCallback's arguments relate to the pointed function, don't
- // check them against NewCallback's parameter names.
- // FIXME: Make this configurable.
- unless(hasDeclaration(functionDecl(
- hasAnyName("NewCallback", "NewPermanentCallback")))))
- .bind("expr"),
- this);
- Finder->addMatcher(cxxConstructExpr().bind("expr"), this);
-}
-
-static std::vector<std::pair<SourceLocation, StringRef>>
-getCommentsInRange(ASTContext *Ctx, CharSourceRange Range) {
- std::vector<std::pair<SourceLocation, StringRef>> Comments;
- auto &SM = Ctx->getSourceManager();
- std::pair<FileID, unsigned> BeginLoc = SM.getDecomposedLoc(Range.getBegin()),
- EndLoc = SM.getDecomposedLoc(Range.getEnd());
-
- if (BeginLoc.first != EndLoc.first)
- return Comments;
-
- bool Invalid = false;
- StringRef Buffer = SM.getBufferData(BeginLoc.first, &Invalid);
- if (Invalid)
- return Comments;
-
- const char *StrData = Buffer.data() + BeginLoc.second;
-
- Lexer TheLexer(SM.getLocForStartOfFile(BeginLoc.first), Ctx->getLangOpts(),
- Buffer.begin(), StrData, Buffer.end());
- TheLexer.SetCommentRetentionState(true);
-
- while (true) {
- Token Tok;
- if (TheLexer.LexFromRawLexer(Tok))
- break;
- if (Tok.getLocation() == Range.getEnd() || Tok.is(tok::eof))
- break;
-
- if (Tok.is(tok::comment)) {
- std::pair<FileID, unsigned> CommentLoc =
- SM.getDecomposedLoc(Tok.getLocation());
- assert(CommentLoc.first == BeginLoc.first);
- Comments.emplace_back(
- Tok.getLocation(),
- StringRef(Buffer.begin() + CommentLoc.second, Tok.getLength()));
- } else {
- // Clear comments found before the different token, e.g. comma.
- Comments.clear();
- }
- }
-
- return Comments;
-}
-
-static std::vector<std::pair<SourceLocation, StringRef>>
-getCommentsBeforeLoc(ASTContext *Ctx, SourceLocation Loc) {
- std::vector<std::pair<SourceLocation, StringRef>> Comments;
- while (Loc.isValid()) {
- clang::Token Tok =
- utils::lexer::getPreviousToken(*Ctx, Loc, /*SkipComments=*/false);
- if (Tok.isNot(tok::comment))
- break;
- Loc = Tok.getLocation();
- Comments.emplace_back(
- Loc,
- Lexer::getSourceText(CharSourceRange::getCharRange(
- Loc, Loc.getLocWithOffset(Tok.getLength())),
- Ctx->getSourceManager(), Ctx->getLangOpts()));
- }
- return Comments;
-}
-
-static bool isLikelyTypo(llvm::ArrayRef<ParmVarDecl *> Params,
- StringRef ArgName, unsigned ArgIndex) {
- std::string ArgNameLowerStr = ArgName.lower();
- StringRef ArgNameLower = ArgNameLowerStr;
- // The threshold is arbitrary.
- unsigned UpperBound = (ArgName.size() + 2) / 3 + 1;
- unsigned ThisED = ArgNameLower.edit_distance(
- Params[ArgIndex]->getIdentifier()->getName().lower(),
- /*AllowReplacements=*/true, UpperBound);
- if (ThisED >= UpperBound)
- return false;
-
- for (unsigned I = 0, E = Params.size(); I != E; ++I) {
- if (I == ArgIndex)
- continue;
- IdentifierInfo *II = Params[I]->getIdentifier();
- if (!II)
- continue;
-
- const unsigned Threshold = 2;
- // Other parameters must be an edit distance at least Threshold more away
- // from this parameter. This gives us greater confidence that this is a typo
- // of this parameter and not one with a similar name.
- unsigned OtherED = ArgNameLower.edit_distance(II->getName().lower(),
- /*AllowReplacements=*/true,
- ThisED + Threshold);
- if (OtherED < ThisED + Threshold)
- return false;
- }
-
- return true;
-}
-
-static bool sameName(StringRef InComment, StringRef InDecl, bool StrictMode) {
- if (StrictMode)
- return InComment == InDecl;
- InComment = InComment.trim('_');
- InDecl = InDecl.trim('_');
- // FIXME: compare_lower only works for ASCII.
- return InComment.compare_lower(InDecl) == 0;
-}
-
-static bool looksLikeExpectMethod(const CXXMethodDecl *Expect) {
- return Expect != nullptr && Expect->getLocation().isMacroID() &&
- Expect->getNameInfo().getName().isIdentifier() &&
- Expect->getName().startswith("gmock_");
-}
-static bool areMockAndExpectMethods(const CXXMethodDecl *Mock,
- const CXXMethodDecl *Expect) {
- assert(looksLikeExpectMethod(Expect));
- return Mock != nullptr && Mock->getNextDeclInContext() == Expect &&
- Mock->getNumParams() == Expect->getNumParams() &&
- Mock->getLocation().isMacroID() &&
- Mock->getNameInfo().getName().isIdentifier() &&
- Mock->getName() == Expect->getName().substr(strlen("gmock_"));
-}
-
-// This uses implementation details of MOCK_METHODx_ macros: for each mocked
-// method M it defines M() with appropriate signature and a method used to set
-// up expectations - gmock_M() - with each argument's type changed the
-// corresponding matcher. This function returns M when given either M or
-// gmock_M.
-static const CXXMethodDecl *findMockedMethod(const CXXMethodDecl *Method) {
- if (looksLikeExpectMethod(Method)) {
- const DeclContext *Ctx = Method->getDeclContext();
- if (Ctx == nullptr || !Ctx->isRecord())
- return nullptr;
- for (const auto *D : Ctx->decls()) {
- if (D->getNextDeclInContext() == Method) {
- const auto *Previous = dyn_cast<CXXMethodDecl>(D);
- return areMockAndExpectMethods(Previous, Method) ? Previous : nullptr;
- }
- }
- return nullptr;
- }
- if (const auto *Next = dyn_cast_or_null<CXXMethodDecl>(
- Method->getNextDeclInContext())) {
- if (looksLikeExpectMethod(Next) && areMockAndExpectMethods(Method, Next))
- return Method;
- }
- return nullptr;
-}
-
-// For gmock expectation builder method (the target of the call generated by
-// `EXPECT_CALL(obj, Method(...))`) tries to find the real method being mocked
-// (returns nullptr, if the mock method doesn't override anything). For other
-// functions returns the function itself.
-static const FunctionDecl *resolveMocks(const FunctionDecl *Func) {
- if (const auto *Method = dyn_cast<CXXMethodDecl>(Func)) {
- if (const auto *MockedMethod = findMockedMethod(Method)) {
- // If mocked method overrides the real one, we can use its parameter
- // names, otherwise we're out of luck.
- if (MockedMethod->size_overridden_methods() > 0) {
- return *MockedMethod->begin_overridden_methods();
- }
- return nullptr;
- }
- }
- return Func;
-}
-
-void ArgumentCommentCheck::checkCallArgs(ASTContext *Ctx,
- const FunctionDecl *OriginalCallee,
- SourceLocation ArgBeginLoc,
- llvm::ArrayRef<const Expr *> Args) {
- const FunctionDecl *Callee = resolveMocks(OriginalCallee);
- if (!Callee)
- return;
-
- Callee = Callee->getFirstDecl();
- unsigned NumArgs = std::min<unsigned>(Args.size(), Callee->getNumParams());
- if (NumArgs == 0)
- return;
-
- auto makeFileCharRange = [Ctx](SourceLocation Begin, SourceLocation End) {
- return Lexer::makeFileCharRange(CharSourceRange::getCharRange(Begin, End),
- Ctx->getSourceManager(),
- Ctx->getLangOpts());
- };
-
- for (unsigned I = 0; I < NumArgs; ++I) {
- const ParmVarDecl *PVD = Callee->getParamDecl(I);
- IdentifierInfo *II = PVD->getIdentifier();
- if (!II)
- continue;
- if (auto Template = Callee->getTemplateInstantiationPattern()) {
- // Don't warn on arguments for parameters instantiated from template
- // parameter packs. If we find more arguments than the template
- // definition has, it also means that they correspond to a parameter
- // pack.
- if (Template->getNumParams() <= I ||
- Template->getParamDecl(I)->isParameterPack()) {
- continue;
- }
- }
-
- CharSourceRange BeforeArgument =
- makeFileCharRange(ArgBeginLoc, Args[I]->getLocStart());
- ArgBeginLoc = Args[I]->getLocEnd();
-
- std::vector<std::pair<SourceLocation, StringRef>> Comments;
- if (BeforeArgument.isValid()) {
- Comments = getCommentsInRange(Ctx, BeforeArgument);
- } else {
- // Fall back to parsing back from the start of the argument.
- CharSourceRange ArgsRange = makeFileCharRange(
- Args[I]->getLocStart(), Args[NumArgs - 1]->getLocEnd());
- Comments = getCommentsBeforeLoc(Ctx, ArgsRange.getBegin());
- }
-
- for (auto Comment : Comments) {
- llvm::SmallVector<StringRef, 2> Matches;
- if (IdentRE.match(Comment.second, &Matches) &&
- !sameName(Matches[2], II->getName(), StrictMode)) {
- {
- DiagnosticBuilder Diag =
- diag(Comment.first, "argument name '%0' in comment does not "
- "match parameter name %1")
- << Matches[2] << II;
- if (isLikelyTypo(Callee->parameters(), Matches[2], I)) {
- Diag << FixItHint::CreateReplacement(
- Comment.first, (Matches[1] + II->getName() + Matches[3]).str());
- }
- }
- diag(PVD->getLocation(), "%0 declared here", DiagnosticIDs::Note) << II;
- if (OriginalCallee != Callee) {
- diag(OriginalCallee->getLocation(),
- "actual callee (%0) is declared here", DiagnosticIDs::Note)
- << OriginalCallee;
- }
- }
- }
- }
-}
-
-void ArgumentCommentCheck::check(const MatchFinder::MatchResult &Result) {
- const auto *E = Result.Nodes.getNodeAs<Expr>("expr");
- if (const auto *Call = dyn_cast<CallExpr>(E)) {
- const FunctionDecl *Callee = Call->getDirectCallee();
- if (!Callee)
- return;
-
- checkCallArgs(Result.Context, Callee, Call->getCallee()->getLocEnd(),
- llvm::makeArrayRef(Call->getArgs(), Call->getNumArgs()));
- } else {
- const auto *Construct = cast<CXXConstructExpr>(E);
- if (Construct->getNumArgs() == 1 &&
- Construct->getArg(0)->getSourceRange() == Construct->getSourceRange()) {
- // Ignore implicit construction.
- return;
- }
- checkCallArgs(
- Result.Context, Construct->getConstructor(),
- Construct->getParenOrBraceRange().getBegin(),
- llvm::makeArrayRef(Construct->getArgs(), Construct->getNumArgs()));
- }
-}
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
Removed: clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/ArgumentCommentCheck.h (removed)
@@ -1,55 +0,0 @@
-//===--- ArgumentCommentCheck.h - clang-tidy --------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_ARGUMENTCOMMENTCHECK_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_ARGUMENTCOMMENTCHECK_H
-
-#include "../ClangTidy.h"
-#include "llvm/Support/Regex.h"
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-/// Checks that argument comments match parameter names.
-///
-/// The check understands argument comments in the form `/*parameter_name=*/`
-/// that are placed right before the argument.
-///
-/// \code
-/// void f(bool foo);
-///
-/// ...
-/// f(/*bar=*/true);
-/// // warning: argument name 'bar' in comment does not match parameter name 'foo'
-/// \endcode
-///
-/// The check tries to detect typos and suggest automated fixes for them.
-class ArgumentCommentCheck : public ClangTidyCheck {
-public:
- ArgumentCommentCheck(StringRef Name, ClangTidyContext *Context);
-
- void registerMatchers(ast_matchers::MatchFinder *Finder) override;
- void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
- void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
-
-private:
- const bool StrictMode;
- llvm::Regex IdentRE;
-
- void checkCallArgs(ASTContext *Ctx, const FunctionDecl *Callee,
- SourceLocation ArgBeginLoc,
- llvm::ArrayRef<const Expr *> Args);
-};
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
-
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_ARGUMENTCOMMENTCHECK_H
Modified: clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt Thu Nov 23 09:02:48 2017
@@ -1,7 +1,6 @@
set(LLVM_LINK_COMPONENTS support)
add_clang_library(clangTidyMiscModule
- ArgumentCommentCheck.cpp
AssertSideEffectCheck.cpp
ForwardingReferenceOverloadCheck.cpp
LambdaFunctionNameCheck.cpp
Modified: clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp Thu Nov 23 09:02:48 2017
@@ -10,7 +10,6 @@
#include "../ClangTidy.h"
#include "../ClangTidyModule.h"
#include "../ClangTidyModuleRegistry.h"
-#include "ArgumentCommentCheck.h"
#include "AssertSideEffectCheck.h"
#include "BoolPointerImplicitConversionCheck.h"
#include "DanglingHandleCheck.h"
@@ -63,7 +62,6 @@ namespace misc {
class MiscModule : public ClangTidyModule {
public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
- CheckFactories.registerCheck<ArgumentCommentCheck>("misc-argument-comment");
CheckFactories.registerCheck<AssertSideEffectCheck>(
"misc-assert-side-effect");
CheckFactories.registerCheck<ForwardingReferenceOverloadCheck>(
Modified: clang-tools-extra/trunk/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ReleaseNotes.rst?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/ReleaseNotes.rst (original)
+++ clang-tools-extra/trunk/docs/ReleaseNotes.rst Thu Nov 23 09:02:48 2017
@@ -57,6 +57,9 @@ The improvements are...
Improvements to clang-tidy
--------------------------
+- The 'misc-argument-comment' check was renamed to `bugprone-argument-comment
+ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-argument-comment.html>`_
+
- The 'misc-string-constructor' check was renamed to `bugprone-string-constructor
<http://clang.llvm.org/extra/clang-tidy/checks/bugprone-string-constructor.html>`_
Copied: clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-argument-comment.rst (from r318922, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-argument-comment.rst?p2=clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-argument-comment.rst&p1=clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-argument-comment.rst Thu Nov 23 09:02:48 2017
@@ -1,7 +1,7 @@
-.. title:: clang-tidy - misc-argument-comment
+.. title:: clang-tidy - bugprone-argument-comment
-misc-argument-comment
-=====================
+bugprone-argument-comment
+=========================
Checks that argument comments match parameter names.
Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Thu Nov 23 09:02:48 2017
@@ -17,6 +17,7 @@ Clang-Tidy Checks
android-cloexec-open
android-cloexec-socket
boost-use-to-string
+ bugprone-argument-comment
bugprone-copy-constructor-init
bugprone-integer-division
bugprone-misplaced-operator-in-strlen-in-alloc
@@ -105,7 +106,6 @@ Clang-Tidy Checks
llvm-include-order
llvm-namespace-comment
llvm-twine-local
- misc-argument-comment
misc-assert-side-effect
misc-bool-pointer-implicit-conversion
misc-dangling-handle
Removed: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-argument-comment.rst (removed)
@@ -1,29 +0,0 @@
-.. title:: clang-tidy - misc-argument-comment
-
-misc-argument-comment
-=====================
-
-Checks that argument comments match parameter names.
-
-The check understands argument comments in the form ``/*parameter_name=*/``
-that are placed right before the argument.
-
-.. code-block:: c++
-
- void f(bool foo);
-
- ...
-
- f(/*bar=*/true);
- // warning: argument name 'bar' in comment does not match parameter name 'foo'
-
-The check tries to detect typos and suggest automated fixes for them.
-
-Options
--------
-
-.. option:: StrictMode
-
- When zero (default value), the check will ignore leading and trailing
- underscores and case when comparing names -- otherwise they are taken into
- account.
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-gmock.cpp (from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-gmock.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-gmock.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-gmock.cpp Thu Nov 23 09:02:48 2017
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t
+// RUN: %check_clang_tidy %s bugprone-argument-comment %t
namespace testing {
namespace internal {
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-strict.cpp (from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-strict.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-strict.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment-strict.cpp Thu Nov 23 09:02:48 2017
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t -- \
+// RUN: %check_clang_tidy %s bugprone-argument-comment %t -- \
// RUN: -config="{CheckOptions: [{key: StrictMode, value: 1}]}" --
void f(int _with_underscores_);
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp (from r318922, clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp&r1=318922&r2=318926&rev=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-argument-comment.cpp Thu Nov 23 09:02:48 2017
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t
+// RUN: %check_clang_tidy %s bugprone-argument-comment %t
// FIXME: clang-tidy should provide a -verify mode to make writing these checks
// easier and more accurate.
@@ -14,9 +14,16 @@ void g() {
f(/*y=*/0, /*z=*/0);
// CHECK-FIXES: {{^}} f(/*y=*/0, /*z=*/0);
+ f(/*x=*/1, /*y=*/1);
+
ffff(0 /*aaaa=*/, /*bbbb*/ 0); // Unsupported formats.
}
+struct C {
+ C(int x, int y);
+};
+C c(/*x=*/0, /*y=*/0);
+
struct Closure {};
template <typename T1, typename T2>
@@ -45,11 +52,38 @@ void templates() {
#define FALSE 0
void qqq(bool aaa);
-void f() { qqq(/*bbb=*/FALSE); }
-// CHECK-MESSAGES: [[@LINE-1]]:16: warning: argument name 'bbb' in comment does not match parameter name 'aaa'
-// CHECK-FIXES: void f() { qqq(/*bbb=*/FALSE); }
+void f2() { qqq(/*bbb=*/FALSE); }
+// CHECK-MESSAGES: [[@LINE-1]]:17: warning: argument name 'bbb' in comment does not match parameter name 'aaa'
+// CHECK-FIXES: void f2() { qqq(/*bbb=*/FALSE); }
-void f(bool _with_underscores_);
+void f3(bool _with_underscores_);
void ignores_underscores() {
- f(/*With_Underscores=*/false);
+ f3(/*With_Underscores=*/false);
+}
+
+namespace ThisEditDistanceAboveThreshold {
+void f4(int xxx);
+void g() { f4(/*xyz=*/0); }
+// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'xyz' in comment does not match parameter name 'xxx'
+// CHECK-FIXES: void g() { f4(/*xyz=*/0); }
+}
+
+namespace OtherEditDistanceAboveThreshold {
+void f5(int xxx, int yyy);
+void g() { f5(/*Zxx=*/0, 0); }
+// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'Zxx' in comment does not match parameter name 'xxx'
+// CHECK-FIXES: void g() { f5(/*xxx=*/0, 0); }
+struct C2 {
+ C2(int xxx, int yyy);
+};
+C2 c2(/*Zxx=*/0, 0);
+// CHECK-MESSAGES: [[@LINE-1]]:7: warning: argument name 'Zxx' in comment does not match parameter name 'xxx'
+// CHECK-FIXES: C2 c2(/*xxx=*/0, 0);
+}
+
+namespace OtherEditDistanceBelowThreshold {
+void f6(int xxx, int yyy);
+void g() { f6(/*xxy=*/0, 0); }
+// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'xxy' in comment does not match parameter name 'xxx'
+// CHECK-FIXES: void g() { f6(/*xxy=*/0, 0); }
}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-gmock.cpp (removed)
@@ -1,108 +0,0 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t
-
-namespace testing {
-namespace internal {
-
-template <typename F>
-struct Function;
-
-template <typename R>
-struct Function<R()> {
- typedef R Result;
-};
-
-template <typename R, typename A1>
-struct Function<R(A1)>
- : Function<R()> {
- typedef A1 Argument1;
-};
-
-template <typename R, typename A1, typename A2>
-struct Function<R(A1, A2)>
- : Function<R(A1)> {
- typedef A2 Argument2;
-};
-
-} // namespace internal
-
-template <typename F>
-class MockSpec {
- public:
- void f();
-};
-
-template <typename T>
-class Matcher {
- public:
- explicit Matcher();
- Matcher(T value);
-};
-
-} // namespace testing
-
-#define GMOCK_RESULT_(tn, ...) \
- tn ::testing::internal::Function<__VA_ARGS__>::Result
-#define GMOCK_ARG_(tn, N, ...) \
- tn ::testing::internal::Function<__VA_ARGS__>::Argument##N
-#define GMOCK_MATCHER_(tn, N, ...) \
- const ::testing::Matcher<GMOCK_ARG_(tn, N, __VA_ARGS__)>&
-#define GMOCK_METHOD2_(tn, constness, ct, Method, ...) \
- GMOCK_RESULT_(tn, __VA_ARGS__) \
- ct Method( \
- GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \
- GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2) constness; \
- ::testing::MockSpec<__VA_ARGS__> \
- gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
- GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2) constness
-#define MOCK_METHOD2(m, ...) GMOCK_METHOD2_(, , , m, __VA_ARGS__)
-#define MOCK_CONST_METHOD2(m, ...) GMOCK_METHOD2_(, const, , m, __VA_ARGS__)
-#define GMOCK_EXPECT_CALL_IMPL_(obj, call) \
- ((obj).gmock_##call).f()
-#define EXPECT_CALL(obj, call) GMOCK_EXPECT_CALL_IMPL_(obj, call)
-
-class Base {
- public:
- virtual void Method(int param_one_base, int param_two_base);
-};
-class Derived : public Base {
- public:
- virtual void Method(int param_one, int param_two);
- virtual void Method2(int p_one, int p_two) const;
-};
-class MockDerived : public Derived {
- public:
- MOCK_METHOD2(Method, void(int a, int b));
- MOCK_CONST_METHOD2(Method2, void(int c, int d));
-};
-
-class MockStandalone {
- public:
- MOCK_METHOD2(Method, void(int aaa, int bbb));
-};
-
-void test_gmock_expectations() {
- MockDerived m;
- EXPECT_CALL(m, Method(/*param_one=*/1, /*param_tw=*/2));
-// CHECK-MESSAGES: [[@LINE-1]]:42: warning: argument name 'param_tw' in comment does not match parameter name 'param_two'
-// CHECK-FIXES: EXPECT_CALL(m, Method(/*param_one=*/1, /*param_two=*/2));
- EXPECT_CALL(m, Method2(/*p_on=*/3, /*p_two=*/4));
-// CHECK-MESSAGES: [[@LINE-1]]:26: warning: argument name 'p_on' in comment does not match parameter name 'p_one'
-// CHECK-FIXES: EXPECT_CALL(m, Method2(/*p_one=*/3, /*p_two=*/4));
-
- #define PARAM1 11
- #define PARAM2 22
- EXPECT_CALL(m, Method2(/*p_on1=*/PARAM1, /*p_tw2=*/PARAM2));
-// CHECK-MESSAGES: [[@LINE-1]]:26: warning: argument name 'p_on1' in comment does not match parameter name 'p_one'
-// CHECK-MESSAGES: [[@LINE-2]]:44: warning: argument name 'p_tw2' in comment does not match parameter name 'p_two'
-// CHECK-FIXES: EXPECT_CALL(m, Method2(/*p_one=*/PARAM1, /*p_two=*/PARAM2));
-
- MockStandalone m2;
- EXPECT_CALL(m2, Method(/*aaa=*/5, /*bbc=*/6));
-}
-
-void test_gmock_direct_calls() {
- MockDerived m;
- m.Method(/*param_one=*/1, /*param_tw=*/2);
-// CHECK-MESSAGES: [[@LINE-1]]:29: warning: argument name 'param_tw' in comment does not match parameter name 'param_two'
-// CHECK-FIXES: m.Method(/*param_one=*/1, /*param_two=*/2);
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment-strict.cpp (removed)
@@ -1,19 +0,0 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t -- \
-// RUN: -config="{CheckOptions: [{key: StrictMode, value: 1}]}" --
-
-void f(int _with_underscores_);
-void g(int x_);
-void ignores_underscores() {
- f(/*With_Underscores=*/0);
-// CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument name 'With_Underscores' in comment does not match parameter name '_with_underscores_'
-// CHECK-FIXES: f(/*_with_underscores_=*/0);
- f(/*with_underscores=*/1);
-// CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument name 'with_underscores' in comment does not match parameter name '_with_underscores_'
-// CHECK-FIXES: f(/*_with_underscores_=*/1);
- f(/*_With_Underscores_=*/2);
-// CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument name '_With_Underscores_' in comment does not match parameter name '_with_underscores_'
-// CHECK-FIXES: f(/*_with_underscores_=*/2);
- g(/*X=*/3);
-// CHECK-MESSAGES: [[@LINE-1]]:5: warning: argument name 'X' in comment does not match parameter name 'x_'
-// CHECK-FIXES: g(/*x_=*/3);
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-argument-comment.cpp (removed)
@@ -1,55 +0,0 @@
-// RUN: %check_clang_tidy %s misc-argument-comment %t
-
-// FIXME: clang-tidy should provide a -verify mode to make writing these checks
-// easier and more accurate.
-
-void ffff(int xxxx, int yyyy);
-
-void f(int x, int y);
-void g() {
- // CHECK-MESSAGES: [[@LINE+4]]:5: warning: argument name 'y' in comment does not match parameter name 'x'
- // CHECK-MESSAGES: :[[@LINE-3]]:12: note: 'x' declared here
- // CHECK-MESSAGES: [[@LINE+2]]:14: warning: argument name 'z' in comment does not match parameter name 'y'
- // CHECK-MESSAGES: :[[@LINE-5]]:19: note: 'y' declared here
- f(/*y=*/0, /*z=*/0);
- // CHECK-FIXES: {{^}} f(/*y=*/0, /*z=*/0);
-
- ffff(0 /*aaaa=*/, /*bbbb*/ 0); // Unsupported formats.
-}
-
-struct Closure {};
-
-template <typename T1, typename T2>
-Closure *NewCallback(void (*f)(T1, T2), T1 arg1, T2 arg2) { return nullptr; }
-
-template <typename T1, typename T2>
-Closure *NewPermanentCallback(void (*f)(T1, T2), T1 arg1, T2 arg2) { return nullptr; }
-
-void h() {
- (void)NewCallback(&ffff, /*xxxx=*/11, /*yyyy=*/22);
- (void)NewPermanentCallback(&ffff, /*xxxx=*/11, /*yyyy=*/22);
-}
-
-template<typename... Args>
-void variadic(Args&&... args);
-
-template<typename... Args>
-void variadic2(int zzz, Args&&... args);
-
-void templates() {
- variadic(/*xxx=*/0, /*yyy=*/1);
- variadic2(/*zzU=*/0, /*xxx=*/1, /*yyy=*/2);
- // CHECK-MESSAGES: [[@LINE-1]]:13: warning: argument name 'zzU' in comment does not match parameter name 'zzz'
- // CHECK-FIXES: variadic2(/*zzz=*/0, /*xxx=*/1, /*yyy=*/2);
-}
-
-#define FALSE 0
-void qqq(bool aaa);
-void f() { qqq(/*bbb=*/FALSE); }
-// CHECK-MESSAGES: [[@LINE-1]]:16: warning: argument name 'bbb' in comment does not match parameter name 'aaa'
-// CHECK-FIXES: void f() { qqq(/*bbb=*/FALSE); }
-
-void f(bool _with_underscores_);
-void ignores_underscores() {
- f(/*With_Underscores=*/false);
-}
Modified: clang-tools-extra/trunk/unittests/clang-tidy/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clang-tidy/CMakeLists.txt?rev=318926&r1=318925&r2=318926&view=diff
==============================================================================
--- clang-tools-extra/trunk/unittests/clang-tidy/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/unittests/clang-tidy/CMakeLists.txt Thu Nov 23 09:02:48 2017
@@ -12,7 +12,6 @@ add_extra_unittest(ClangTidyTests
IncludeInserterTest.cpp
GoogleModuleTest.cpp
LLVMModuleTest.cpp
- MiscModuleTest.cpp
NamespaceAliaserTest.cpp
ObjCModuleTest.cpp
OverlappingReplacementsTest.cpp
@@ -29,7 +28,6 @@ target_link_libraries(ClangTidyTests
clangTidyAndroidModule
clangTidyGoogleModule
clangTidyLLVMModule
- clangTidyMiscModule
clangTidyObjCModule
clangTidyReadabilityModule
clangTidyUtils
Removed: clang-tools-extra/trunk/unittests/clang-tidy/MiscModuleTest.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clang-tidy/MiscModuleTest.cpp?rev=318925&view=auto
==============================================================================
--- clang-tools-extra/trunk/unittests/clang-tidy/MiscModuleTest.cpp (original)
+++ clang-tools-extra/trunk/unittests/clang-tidy/MiscModuleTest.cpp (removed)
@@ -1,39 +0,0 @@
-#include "ClangTidyTest.h"
-#include "misc/ArgumentCommentCheck.h"
-#include "gtest/gtest.h"
-
-namespace clang {
-namespace tidy {
-namespace test {
-
-using misc::ArgumentCommentCheck;
-
-TEST(ArgumentCommentCheckTest, CorrectComments) {
- EXPECT_NO_CHANGES(ArgumentCommentCheck,
- "void f(int x, int y); void g() { f(/*x=*/0, /*y=*/0); }");
- EXPECT_NO_CHANGES(ArgumentCommentCheck,
- "struct C { C(int x, int y); }; C c(/*x=*/0, /*y=*/0);");
-}
-
-TEST(ArgumentCommentCheckTest, ThisEditDistanceAboveThreshold) {
- EXPECT_NO_CHANGES(ArgumentCommentCheck,
- "void f(int xxx); void g() { f(/*xyz=*/0); }");
-}
-
-TEST(ArgumentCommentCheckTest, OtherEditDistanceAboveThreshold) {
- EXPECT_EQ("void f(int xxx, int yyy); void g() { f(/*xxx=*/0, 0); }",
- runCheckOnCode<ArgumentCommentCheck>(
- "void f(int xxx, int yyy); void g() { f(/*Zxx=*/0, 0); }"));
- EXPECT_EQ("struct C { C(int xxx, int yyy); }; C c(/*xxx=*/0, 0);",
- runCheckOnCode<ArgumentCommentCheck>(
- "struct C { C(int xxx, int yyy); }; C c(/*Zxx=*/0, 0);"));
-}
-
-TEST(ArgumentCommentCheckTest, OtherEditDistanceBelowThreshold) {
- EXPECT_NO_CHANGES(ArgumentCommentCheck,
- "void f(int xxx, int yyy); void g() { f(/*xxy=*/0, 0); }");
-}
-
-} // namespace test
-} // namespace tidy
-} // namespace clang
More information about the cfe-commits
mailing list