Index: clang-tidy/bugprone/ArgumentCommentCheck.h =================================================================== --- clang-tidy/bugprone/ArgumentCommentCheck.h +++ clang-tidy/bugprone/ArgumentCommentCheck.h @@ -15,7 +15,7 @@ namespace clang { namespace tidy { -namespace misc { +namespace bugprone { /// Checks that argument comments match parameter names. /// @@ -48,7 +48,7 @@ llvm::ArrayRef Args); }; -} // namespace misc +} // namespace bugprone } // namespace tidy } // namespace clang Index: clang-tidy/bugprone/ArgumentCommentCheck.cpp =================================================================== --- clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -18,7 +18,7 @@ namespace clang { namespace tidy { -namespace misc { +namespace bugprone { ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name, ClangTidyContext *Context) @@ -303,6 +303,6 @@ } } -} // namespace misc +} // namespace bugprone } // namespace tidy } // namespace clang Index: clang-tidy/bugprone/BugproneTidyModule.cpp =================================================================== --- clang-tidy/bugprone/BugproneTidyModule.cpp +++ clang-tidy/bugprone/BugproneTidyModule.cpp @@ -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 @@ class BugproneModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { + CheckFactories.registerCheck( + "bugprone-argument-comment"); CheckFactories.registerCheck( "bugprone-copy-constructor-init"); CheckFactories.registerCheck( Index: clang-tidy/bugprone/CMakeLists.txt =================================================================== --- clang-tidy/bugprone/CMakeLists.txt +++ clang-tidy/bugprone/CMakeLists.txt @@ -1,6 +1,7 @@ set(LLVM_LINK_COMPONENTS support) add_clang_library(clangTidyBugproneModule + ArgumentCommentCheck.cpp BugproneTidyModule.cpp CopyConstructorInitCheck.cpp IntegerDivisionCheck.cpp Index: clang-tidy/misc/CMakeLists.txt =================================================================== --- clang-tidy/misc/CMakeLists.txt +++ clang-tidy/misc/CMakeLists.txt @@ -1,7 +1,6 @@ set(LLVM_LINK_COMPONENTS support) add_clang_library(clangTidyMiscModule - ArgumentCommentCheck.cpp AssertSideEffectCheck.cpp ForwardingReferenceOverloadCheck.cpp LambdaFunctionNameCheck.cpp Index: clang-tidy/misc/MiscTidyModule.cpp =================================================================== --- clang-tidy/misc/MiscTidyModule.cpp +++ clang-tidy/misc/MiscTidyModule.cpp @@ -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 @@ class MiscModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { - CheckFactories.registerCheck("misc-argument-comment"); CheckFactories.registerCheck( "misc-assert-side-effect"); CheckFactories.registerCheck( Index: docs/ReleaseNotes.rst =================================================================== --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -57,6 +57,9 @@ Improvements to clang-tidy -------------------------- +- The 'misc-argument-comment' check was renamed to `bugprone-argument-comment + `_ + - The 'misc-string-constructor' check was renamed to `bugprone-string-constructor `_ Index: docs/clang-tidy/checks/bugprone-argument-comment.rst =================================================================== --- docs/clang-tidy/checks/bugprone-argument-comment.rst +++ docs/clang-tidy/checks/bugprone-argument-comment.rst @@ -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. Index: docs/clang-tidy/checks/list.rst =================================================================== --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -17,6 +17,7 @@ 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 @@ llvm-include-order llvm-namespace-comment llvm-twine-local - misc-argument-comment misc-assert-side-effect misc-bool-pointer-implicit-conversion misc-dangling-handle Index: test/clang-tidy/bugprone-argument-comment-gmock.cpp =================================================================== --- test/clang-tidy/bugprone-argument-comment-gmock.cpp +++ test/clang-tidy/bugprone-argument-comment-gmock.cpp @@ -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 { Index: test/clang-tidy/bugprone-argument-comment-strict.cpp =================================================================== --- test/clang-tidy/bugprone-argument-comment-strict.cpp +++ test/clang-tidy/bugprone-argument-comment-strict.cpp @@ -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_); Index: test/clang-tidy/bugprone-argument-comment.cpp =================================================================== --- test/clang-tidy/bugprone-argument-comment.cpp +++ test/clang-tidy/bugprone-argument-comment.cpp @@ -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 @@ 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 @@ -45,11 +52,38 @@ #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); } } Index: unittests/clang-tidy/CMakeLists.txt =================================================================== --- unittests/clang-tidy/CMakeLists.txt +++ unittests/clang-tidy/CMakeLists.txt @@ -12,7 +12,6 @@ IncludeInserterTest.cpp GoogleModuleTest.cpp LLVMModuleTest.cpp - MiscModuleTest.cpp NamespaceAliaserTest.cpp ObjCModuleTest.cpp OverlappingReplacementsTest.cpp @@ -29,7 +28,6 @@ clangTidyAndroidModule clangTidyGoogleModule clangTidyLLVMModule - clangTidyMiscModule clangTidyObjCModule clangTidyReadabilityModule clangTidyUtils Index: unittests/clang-tidy/MiscModuleTest.cpp =================================================================== --- unittests/clang-tidy/MiscModuleTest.cpp +++ /dev/null @@ -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( - "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( - "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