sylvestre.ledru updated this revision to Diff 236922. sylvestre.ledru added a comment.
remove artifcats Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72421/new/ https://reviews.llvm.org/D72421 Files: clang-tools-extra/clang-tidy/add_new_check.py clang-tools-extra/clang-tidy/boost/BoostTidyModule.cpp clang-tools-extra/clang-tidy/boost/CMakeLists.txt clang-tools-extra/docs/ReleaseNotes.rst clang-tools-extra/docs/clang-tidy/checks/list.rst
Index: clang-tools-extra/docs/clang-tidy/checks/list.rst =================================================================== --- clang-tools-extra/docs/clang-tidy/checks/list.rst +++ clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -3,10 +3,15 @@ Clang-Tidy Checks ================= +.. toctree:: + :glob: + :hidden: + + * + .. csv-table:: :header: "Name", "Offers fixes" :widths: 50, 20 - `abseil-duration-addition <abseil-duration-addition.html>`_, "Yes" `abseil-duration-comparison <abseil-duration-comparison.html>`_, "Yes" `abseil-duration-conversion-cast <abseil-duration-conversion-cast.html>`_, "Yes" @@ -26,8 +31,8 @@ `abseil-upgrade-duration-conversions <abseil-upgrade-duration-conversions.html>`_, "Yes" `android-cloexec-accept <android-cloexec-accept.html>`_, "Yes" `android-cloexec-accept4 <android-cloexec-accept4.html>`_, - `android-cloexec-creat <android-cloexec-creat.html>`_, - `android-cloexec-dup <android-cloexec-dup.html>`_, + `android-cloexec-creat <android-cloexec-creat.html>`_, "Yes" + `android-cloexec-dup <android-cloexec-dup.html>`_, "Yes" `android-cloexec-epoll-create <android-cloexec-epoll-create.html>`_, `android-cloexec-epoll-create1 <android-cloexec-epoll-create1.html>`_, `android-cloexec-fopen <android-cloexec-fopen.html>`_, @@ -35,10 +40,73 @@ `android-cloexec-inotify-init1 <android-cloexec-inotify-init1.html>`_, `android-cloexec-memfd-create <android-cloexec-memfd-create.html>`_, `android-cloexec-open <android-cloexec-open.html>`_, - `android-cloexec-pipe <android-cloexec-pipe.html>`_, + `android-cloexec-pipe <android-cloexec-pipe.html>`_, "Yes" `android-cloexec-pipe2 <android-cloexec-pipe2.html>`_, `android-cloexec-socket <android-cloexec-socket.html>`_, - `android-comparison-in-temp-failure-retry <android-comparison-in-temp-failure-retry.html>`_, "Yes" + `android-comparison-in-temp-failure-retry <android-comparison-in-temp-failure-retry.html>`_, + `boost-foo <boost-foo.html>`_, "Yes" + `boost-foo10 <boost-foo10.html>`_, "Yes" + `boost-foo11 <boost-foo11.html>`_, "Yes" + `boost-foo12 <boost-foo12.html>`_, "Yes" + `boost-foo13 <boost-foo13.html>`_, "Yes" + `boost-foo2 <boost-foo2.html>`_, "Yes" + `boost-foo3 <boost-foo3.html>`_, "Yes" + `boost-foo4 <boost-foo4.html>`_, "Yes" + `boost-foo5 <boost-foo5.html>`_, "Yes" + `boost-foo6 <boost-foo6.html>`_, "Yes" + `boost-foo7 <boost-foo7.html>`_, "Yes" + `boost-foo8 <boost-foo8.html>`_, "Yes" + `boost-foo9 <boost-foo9.html>`_, "Yes" + `boost-my-check-1 <boost-my-check-1.html>`_, "Yes" + `boost-my-check-10 <boost-my-check-10.html>`_, "Yes" + `boost-my-check-11 <boost-my-check-11.html>`_, "Yes" + `boost-my-check-12 <boost-my-check-12.html>`_, "Yes" + `boost-my-check-14 <boost-my-check-14.html>`_, "Yes" + `boost-my-check-19 <boost-my-check-19.html>`_, "Yes" + `boost-my-check-2 <boost-my-check-2.html>`_, "Yes" + `boost-my-check-20 <boost-my-check-20.html>`_, "Yes" + `boost-my-check-21 <boost-my-check-21.html>`_, "Yes" + `boost-my-check-22 <boost-my-check-22.html>`_, "Yes" + `boost-my-check-23 <boost-my-check-23.html>`_, "Yes" + `boost-my-check-24 <boost-my-check-24.html>`_, "Yes" + `boost-my-check-25 <boost-my-check-25.html>`_, "Yes" + `boost-my-check-26 <boost-my-check-26.html>`_, "Yes" + `boost-my-check-27 <boost-my-check-27.html>`_, "Yes" + `boost-my-check-28 <boost-my-check-28.html>`_, "Yes" + `boost-my-check-29 <boost-my-check-29.html>`_, "Yes" + `boost-my-check-3 <boost-my-check-3.html>`_, "Yes" + `boost-my-check-30 <boost-my-check-30.html>`_, "Yes" + `boost-my-check-31 <boost-my-check-31.html>`_, "Yes" + `boost-my-check-32 <boost-my-check-32.html>`_, "Yes" + `boost-my-check-33 <boost-my-check-33.html>`_, "Yes" + `boost-my-check-34 <boost-my-check-34.html>`_, "Yes" + `boost-my-check-35 <boost-my-check-35.html>`_, "Yes" + `boost-my-check-36 <boost-my-check-36.html>`_, "Yes" + `boost-my-check-37 <boost-my-check-37.html>`_, "Yes" + `boost-my-check-38 <boost-my-check-38.html>`_, "Yes" + `boost-my-check-39 <boost-my-check-39.html>`_, "Yes" + `boost-my-check-4 <boost-my-check-4.html>`_, "Yes" + `boost-my-check-5 <boost-my-check-5.html>`_, "Yes" + `boost-my-check-50 <boost-my-check-50.html>`_, "Yes" + `boost-my-check-51 <boost-my-check-51.html>`_, "Yes" + `boost-my-check-52 <boost-my-check-52.html>`_, "Yes" + `boost-my-check-54 <boost-my-check-54.html>`_, "Yes" + `boost-my-check-565 <boost-my-check-565.html>`_, "Yes" + `boost-my-check-57 <boost-my-check-57.html>`_, "Yes" + `boost-my-check-58 <boost-my-check-58.html>`_, "Yes" + `boost-my-check-59 <boost-my-check-59.html>`_, "Yes" + `boost-my-check-6 <boost-my-check-6.html>`_, "Yes" + `boost-my-check-60 <boost-my-check-60.html>`_, "Yes" + `boost-my-check-61 <boost-my-check-61.html>`_, "Yes" + `boost-my-check-62 <boost-my-check-62.html>`_, "Yes" + `boost-my-check-63 <boost-my-check-63.html>`_, "Yes" + `boost-my-check-64 <boost-my-check-64.html>`_, "Yes" + `boost-my-check-66 <boost-my-check-66.html>`_, "Yes" + `boost-my-check-68 <boost-my-check-68.html>`_, "Yes" + `boost-my-check-69 <boost-my-check-69.html>`_, "Yes" + `boost-my-check-7 <boost-my-check-7.html>`_, "Yes" + `boost-my-check-8 <boost-my-check-8.html>`_, "Yes" + `boost-my-check-9 <boost-my-check-9.html>`_, "Yes" `boost-use-to-string <boost-use-to-string.html>`_, "Yes" `bugprone-argument-comment <bugprone-argument-comment.html>`_, "Yes" `bugprone-assert-side-effect <bugprone-assert-side-effect.html>`_, @@ -59,8 +127,8 @@ `bugprone-lambda-function-name <bugprone-lambda-function-name.html>`_, `bugprone-macro-parentheses <bugprone-macro-parentheses.html>`_, "Yes" `bugprone-macro-repeated-side-effects <bugprone-macro-repeated-side-effects.html>`_, - `bugprone-misplaced-operator-in-strlen-in-alloc <bugprone-misplaced-operator-in-strlen-in-alloc.html>`_, - `bugprone-misplaced-widening-cast <bugprone-misplaced-widening-cast.html>`_, "Yes" + `bugprone-misplaced-operator-in-strlen-in-alloc <bugprone-misplaced-operator-in-strlen-in-alloc.html>`_, "Yes" + `bugprone-misplaced-widening-cast <bugprone-misplaced-widening-cast.html>`_, `bugprone-move-forwarding-reference <bugprone-move-forwarding-reference.html>`_, "Yes" `bugprone-multiple-statement-macro <bugprone-multiple-statement-macro.html>`_, `bugprone-not-null-terminated-result <bugprone-not-null-terminated-result.html>`_, "Yes" @@ -150,19 +218,19 @@ `fuchsia-statically-constructed-objects <fuchsia-statically-constructed-objects.html>`_, `fuchsia-trailing-return <fuchsia-trailing-return.html>`_, `fuchsia-virtual-inheritance <fuchsia-virtual-inheritance.html>`_, - `google-build-explicit-make-pair <google-build-explicit-make-pair.html>`_, "Yes" + `google-build-explicit-make-pair <google-build-explicit-make-pair.html>`_, `google-build-namespaces <google-build-namespaces.html>`_, `google-build-using-namespace <google-build-using-namespace.html>`_, `google-default-arguments <google-default-arguments.html>`_, `google-explicit-constructor <google-explicit-constructor.html>`_, "Yes" - `google-global-names-in-headers <google-global-names-in-headers.html>`_, "Yes" - `google-objc-avoid-nsobject-new <google-objc-avoid-nsobject-new.html>`_, "Yes" + `google-global-names-in-headers <google-global-names-in-headers.html>`_, + `google-objc-avoid-nsobject-new <google-objc-avoid-nsobject-new.html>`_, `google-objc-avoid-throwing-exception <google-objc-avoid-throwing-exception.html>`_, - `google-objc-function-naming <google-objc-function-naming.html>`_, "Yes" + `google-objc-function-naming <google-objc-function-naming.html>`_, `google-objc-global-variable-declaration <google-objc-global-variable-declaration.html>`_, `google-readability-avoid-underscore-in-googletest-name <google-readability-avoid-underscore-in-googletest-name.html>`_, - `google-readability-casting <google-readability-casting.html>`_, "Yes" - `google-readability-todo <google-readability-todo.html>`_, "Yes" + `google-readability-casting <google-readability-casting.html>`_, + `google-readability-todo <google-readability-todo.html>`_, `google-runtime-int <google-runtime-int.html>`_, `google-runtime-operator <google-runtime-operator.html>`_, `google-runtime-references <google-runtime-references.html>`_, @@ -173,6 +241,8 @@ `hicpp-no-assembler <hicpp-no-assembler.html>`_, `hicpp-signed-bitwise <hicpp-signed-bitwise.html>`_, `linuxkernel-must-use-errs <linuxkernel-must-use-errs.html>`_, + `list.backup <list.backup.html>`_, + `list.test <list.test.html>`_, `llvm-header-guard <llvm-header-guard.html>`_, `llvm-include-order <llvm-include-order.html>`_, "Yes" `llvm-namespace-comment <llvm-namespace-comment.html>`_, @@ -198,8 +268,8 @@ `modernize-deprecated-headers <modernize-deprecated-headers.html>`_, "Yes" `modernize-deprecated-ios-base-aliases <modernize-deprecated-ios-base-aliases.html>`_, "Yes" `modernize-loop-convert <modernize-loop-convert.html>`_, "Yes" - `modernize-make-shared <modernize-make-shared.html>`_, "Yes" - `modernize-make-unique <modernize-make-unique.html>`_, "Yes" + `modernize-make-shared <modernize-make-shared.html>`_, + `modernize-make-unique <modernize-make-unique.html>`_, `modernize-pass-by-value <modernize-pass-by-value.html>`_, "Yes" `modernize-raw-string-literal <modernize-raw-string-literal.html>`_, "Yes" `modernize-redundant-void-arg <modernize-redundant-void-arg.html>`_, "Yes" @@ -211,6 +281,7 @@ `modernize-use-auto <modernize-use-auto.html>`_, "Yes" `modernize-use-bool-literals <modernize-use-bool-literals.html>`_, "Yes" `modernize-use-default-member-init <modernize-use-default-member-init.html>`_, "Yes" + ` <.html>`_, `modernize-use-emplace <modernize-use-emplace.html>`_, "Yes" `modernize-use-equals-default <modernize-use-equals-default.html>`_, "Yes" `modernize-use-equals-delete <modernize-use-equals-delete.html>`_, "Yes" @@ -233,29 +304,31 @@ `openmp-use-default-none <openmp-use-default-none.html>`_, `performance-faster-string-find <performance-faster-string-find.html>`_, "Yes" `performance-for-range-copy <performance-for-range-copy.html>`_, "Yes" + ` <.html>`_, `performance-implicit-conversion-in-loop <performance-implicit-conversion-in-loop.html>`_, `performance-inefficient-algorithm <performance-inefficient-algorithm.html>`_, "Yes" `performance-inefficient-string-concatenation <performance-inefficient-string-concatenation.html>`_, `performance-inefficient-vector-operation <performance-inefficient-vector-operation.html>`_, "Yes" `performance-move-const-arg <performance-move-const-arg.html>`_, "Yes" - `performance-move-constructor-init <performance-move-constructor-init.html>`_, + `performance-move-constructor-init <performance-move-constructor-init.html>`_, "Yes" `performance-no-automatic-move <performance-no-automatic-move.html>`_, `performance-noexcept-move-constructor <performance-noexcept-move-constructor.html>`_, "Yes" `performance-trivially-destructible <performance-trivially-destructible.html>`_, "Yes" `performance-type-promotion-in-math-fn <performance-type-promotion-in-math-fn.html>`_, "Yes" - `performance-unnecessary-copy-initialization <performance-unnecessary-copy-initialization.html>`_, "Yes" + `performance-unnecessary-copy-initialization <performance-unnecessary-copy-initialization.html>`_, `performance-unnecessary-value-param <performance-unnecessary-value-param.html>`_, "Yes" `portability-simd-intrinsics <portability-simd-intrinsics.html>`_, - `readability-avoid-const-params-in-decls <readability-avoid-const-params-in-decls.html>`_, "Yes" + `readability-avoid-const-params-in-decls <readability-avoid-const-params-in-decls.html>`_, `readability-braces-around-statements <readability-braces-around-statements.html>`_, "Yes" `readability-const-return-type <readability-const-return-type.html>`_, "Yes" `readability-container-size-empty <readability-container-size-empty.html>`_, "Yes" - `readability-convert-member-functions-to-static <readability-convert-member-functions-to-static.html>`_, "Yes" + `readability-convert-member-functions-to-static <readability-convert-member-functions-to-static.html>`_, `readability-delete-null-pointer <readability-delete-null-pointer.html>`_, "Yes" `readability-deleted-default <readability-deleted-default.html>`_, `readability-else-after-return <readability-else-after-return.html>`_, "Yes" `readability-function-size <readability-function-size.html>`_, `readability-identifier-naming <readability-identifier-naming.html>`_, "Yes" + ` <.html>`_, `readability-implicit-bool-conversion <readability-implicit-bool-conversion.html>`_, "Yes" `readability-inconsistent-declaration-parameter-name <readability-inconsistent-declaration-parameter-name.html>`_, "Yes" `readability-isolate-declaration <readability-isolate-declaration.html>`_, "Yes" @@ -272,23 +345,19 @@ `readability-redundant-member-init <readability-redundant-member-init.html>`_, "Yes" `readability-redundant-preprocessor <readability-redundant-preprocessor.html>`_, `readability-redundant-smartptr-get <readability-redundant-smartptr-get.html>`_, "Yes" - `readability-redundant-string-cstr <readability-redundant-string-cstr.html>`_, "Yes" + `readability-redundant-string-cstr <readability-redundant-string-cstr.html>`_, `readability-redundant-string-init <readability-redundant-string-init.html>`_, "Yes" `readability-simplify-boolean-expr <readability-simplify-boolean-expr.html>`_, "Yes" `readability-simplify-subscript-expr <readability-simplify-subscript-expr.html>`_, "Yes" `readability-static-accessed-through-instance <readability-static-accessed-through-instance.html>`_, "Yes" - `readability-static-definitioreadability <readability-static-definition-in-anonymous-namespace.html>`_, "Yes" + `readability-static-definition-in-anonymous-namespace <readability-static-definition-in-anonymous-namespace.html>`_, "Yes" `readability-string-compare <readability-string-compare.html>`_, "Yes" `readability-uniqueptr-delete-release <readability-uniqueptr-delete-release.html>`_, "Yes" `readability-uppercase-literal-suffix <readability-uppercase-literal-suffix.html>`_, "Yes" `zircon-temporary-objects <zircon-temporary-objects.html>`_, - - - .. csv-table:: Aliases.. :header: "Name", "Redirect", "Offers fixes" :widths: 50, 50, 10 - `cert-dcl03-c <cert-dcl03-c.html>`_, `misc-static-assert <misc-static-assert.html>`_, "Yes" `cert-dcl16-c <cert-dcl16-c.html>`_, `readability-uppercase-literal-suffix <readability-uppercase-literal-suffix.html>`_, "Yes" `cert-dcl54-cpp <cert-dcl54-cpp.html>`_, `misc-new-delete-overloads <misc-new-delete-overloads.html>`_, @@ -298,7 +367,7 @@ `cert-fio38-c <cert-fio38-c.html>`_, `misc-non-copyable-objects <misc-non-copyable-objects.html>`_, `cert-msc30-c <cert-msc30-c.html>`_, `cert-msc50-cpp <cert-msc50-cpp.html>`_, `cert-msc32-c <cert-msc32-c.html>`_, `cert-msc51-cpp <cert-msc51-cpp.html>`_, - `cert-oop11-cpp <cert-oop11-cpp.html>`_, `performance-move-constructor-init <performance-move-constructor-init.html>`_, + `cert-oop11-cpp <cert-oop11-cpp.html>`_, `performance-move-constructor-init <performance-move-constructor-init.html>`_, "Yes" `cert-oop54-cpp <cert-oop54-cpp.html>`_, `bugprone-unhandled-self-assignment <bugprone-unhandled-self-assignment.html>`_, `cert-pos44-c <cert-pos44-c.html>`_, `bugprone-bad-signal-to-kill-thread <bugprone-bad-signal-to-kill-thread.html>`_, `clang-analyzer-core.CallAndMessage <clang-analyzer-core.CallAndMessage.html>`_, `Clang Static Analyzer <https://clang.llvm.org/docs/analyzer/checkers.html>`_, @@ -368,7 +437,7 @@ `cppcoreguidelines-avoid-c-arrays <cppcoreguidelines-avoid-c-arrays.html>`_, `modernize-avoid-c-arrays <modernize-avoid-c-arrays.html>`_, `cppcoreguidelines-avoid-magic-numbers <cppcoreguidelines-avoid-magic-numbers.html>`_, `readability-magic-numbers <readability-magic-numbers.html>`_, `cppcoreguidelines-c-copy-assignment-signature <cppcoreguidelines-c-copy-assignment-signature.html>`_, `misc-unconventional-assign-operator <misc-unconventional-assign-operator.html>`_, - `cppcoreguidelines-explicit-virtual-functions <cppcoreguidelines-explicit-virtual-functions.html>`_, `modernize-use-override <modernize-use-override.html>`_, + `cppcoreguidelines-explicit-virtual-functions <cppcoreguidelines-explicit-virtual-functions.html>`_, `modernize-use-override <modernize-use-override.html>`_, "Yes" `cppcoreguidelines-non-private-member-variables-in-classes <cppcoreguidelines-non-private-member-variables-in-classes.html>`_, `misc-non-private-member-variables-in-classes <misc-non-private-member-variables-in-classes.html>`_, `fuchsia-header-anon-namespaces <fuchsia-header-anon-namespaces.html>`_, `google-build-namespaces <google-build-namespaces.html>`_, `google-readability-braces-around-statements <google-readability-braces-around-statements.html>`_, `readability-braces-around-statements <readability-braces-around-statements.html>`_, "Yes" @@ -386,7 +455,7 @@ `hicpp-new-delete-operators <hicpp-new-delete-operators.html>`_, `misc-new-delete-overloads <misc-new-delete-overloads.html>`_, `hicpp-no-array-decay <hicpp-no-array-decay.html>`_, `cppcoreguidelines-pro-bounds-array-to-pointer-decay <cppcoreguidelines-pro-bounds-array-to-pointer-decay.html>`_, `hicpp-no-malloc <hicpp-no-malloc.html>`_, `cppcoreguidelines-no-malloc <cppcoreguidelines-no-malloc.html>`_, - `hicpp-noexcept-move <hicpp-noexcept-move.html>`_, `misc-noexcept-moveconstructor <misc-noexcept-moveconstructor.html>`_, "Yes" + `hicpp-noexcept-move <hicpp-noexcept-move.html>`_, `misc-noexcept-moveconstructor <misc-noexcept-moveconstructor.html>`_, `hicpp-special-member-functions <hicpp-special-member-functions.html>`_, `cppcoreguidelines-special-member-functions <cppcoreguidelines-special-member-functions.html>`_, `hicpp-static-assert <hicpp-static-assert.html>`_, `misc-static-assert <misc-static-assert.html>`_, "Yes" `hicpp-undelegated-constructor <hicpp-undelegated-constructor.html>`_, `bugprone-undelegated-constructor <bugprone-undelegated-constructor.html>`_, @@ -399,9 +468,3 @@ `hicpp-use-nullptr <hicpp-use-nullptr.html>`_, `modernize-use-nullptr <modernize-use-nullptr.html>`_, "Yes" `hicpp-use-override <hicpp-use-override.html>`_, `modernize-use-override <modernize-use-override.html>`_, "Yes" `hicpp-vararg <hicpp-vararg.html>`_, `cppcoreguidelines-pro-type-vararg <cppcoreguidelines-pro-type-vararg.html>`_, - -.. toctree:: - :glob: - :hidden: - - * Index: clang-tools-extra/docs/ReleaseNotes.rst =================================================================== --- clang-tools-extra/docs/ReleaseNotes.rst +++ clang-tools-extra/docs/ReleaseNotes.rst @@ -67,6 +67,11 @@ Improvements to clang-tidy -------------------------- +- New :doc:`boost-my-check-69 + <clang-tidy/checks/boost-my-check-69>` check. + + FIXME: add release notes. + - New :doc:`bugprone-bad-signal-to-kill-thread <clang-tidy/checks/bugprone-bad-signal-to-kill-thread>` check. Index: clang-tools-extra/clang-tidy/boost/CMakeLists.txt =================================================================== --- clang-tools-extra/clang-tidy/boost/CMakeLists.txt +++ clang-tools-extra/clang-tidy/boost/CMakeLists.txt @@ -2,6 +2,58 @@ add_clang_library(clangTidyBoostModule BoostTidyModule.cpp + Foo12Check.cpp + Foo13Check.cpp + MyCheck10Check.cpp + MyCheck11Check.cpp + MyCheck12Check.cpp + MyCheck14Check.cpp + MyCheck19Check.cpp + MyCheck1Check.cpp + MyCheck20Check.cpp + MyCheck21Check.cpp + MyCheck22Check.cpp + MyCheck23Check.cpp + MyCheck24Check.cpp + MyCheck25Check.cpp + MyCheck26Check.cpp + MyCheck27Check.cpp + MyCheck28Check.cpp + MyCheck29Check.cpp + MyCheck2Check.cpp + MyCheck30Check.cpp + MyCheck31Check.cpp + MyCheck32Check.cpp + MyCheck33Check.cpp + MyCheck34Check.cpp + MyCheck35Check.cpp + MyCheck36Check.cpp + MyCheck37Check.cpp + MyCheck38Check.cpp + MyCheck39Check.cpp + MyCheck3Check.cpp + MyCheck4Check.cpp + MyCheck50Check.cpp + MyCheck51Check.cpp + MyCheck52Check.cpp + MyCheck54Check.cpp + MyCheck565Check.cpp + MyCheck57Check.cpp + MyCheck58Check.cpp + MyCheck59Check.cpp + MyCheck5Check.cpp + MyCheck60Check.cpp + MyCheck61Check.cpp + MyCheck62Check.cpp + MyCheck63Check.cpp + MyCheck64Check.cpp + MyCheck66Check.cpp + MyCheck68Check.cpp + MyCheck69Check.cpp + MyCheck6Check.cpp + MyCheck7Check.cpp + MyCheck8Check.cpp + MyCheck9Check.cpp UseToStringCheck.cpp LINK_LIBS Index: clang-tools-extra/clang-tidy/boost/BoostTidyModule.cpp =================================================================== --- clang-tools-extra/clang-tidy/boost/BoostTidyModule.cpp +++ clang-tools-extra/clang-tidy/boost/BoostTidyModule.cpp @@ -9,6 +9,58 @@ #include "../ClangTidy.h" #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" +#include "Foo12Check.h" +#include "Foo13Check.h" +#include "MyCheck10Check.h" +#include "MyCheck11Check.h" +#include "MyCheck12Check.h" +#include "MyCheck14Check.h" +#include "MyCheck19Check.h" +#include "MyCheck1Check.h" +#include "MyCheck20Check.h" +#include "MyCheck21Check.h" +#include "MyCheck22Check.h" +#include "MyCheck23Check.h" +#include "MyCheck24Check.h" +#include "MyCheck25Check.h" +#include "MyCheck26Check.h" +#include "MyCheck27Check.h" +#include "MyCheck28Check.h" +#include "MyCheck29Check.h" +#include "MyCheck2Check.h" +#include "MyCheck30Check.h" +#include "MyCheck31Check.h" +#include "MyCheck32Check.h" +#include "MyCheck33Check.h" +#include "MyCheck34Check.h" +#include "MyCheck35Check.h" +#include "MyCheck36Check.h" +#include "MyCheck37Check.h" +#include "MyCheck38Check.h" +#include "MyCheck39Check.h" +#include "MyCheck3Check.h" +#include "MyCheck4Check.h" +#include "MyCheck50Check.h" +#include "MyCheck51Check.h" +#include "MyCheck52Check.h" +#include "MyCheck54Check.h" +#include "MyCheck565Check.h" +#include "MyCheck57Check.h" +#include "MyCheck58Check.h" +#include "MyCheck59Check.h" +#include "MyCheck5Check.h" +#include "MyCheck60Check.h" +#include "MyCheck61Check.h" +#include "MyCheck62Check.h" +#include "MyCheck63Check.h" +#include "MyCheck64Check.h" +#include "MyCheck66Check.h" +#include "MyCheck68Check.h" +#include "MyCheck69Check.h" +#include "MyCheck6Check.h" +#include "MyCheck7Check.h" +#include "MyCheck8Check.h" +#include "MyCheck9Check.h" #include "UseToStringCheck.h" using namespace clang::ast_matchers; @@ -19,6 +71,110 @@ class BoostModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { + CheckFactories.registerCheck<Foo12Check>( + "boost-foo12"); + CheckFactories.registerCheck<Foo13Check>( + "boost-foo13"); + CheckFactories.registerCheck<MyCheck1Check>( + "boost-my-check-1"); + CheckFactories.registerCheck<MyCheck10Check>( + "boost-my-check-10"); + CheckFactories.registerCheck<MyCheck11Check>( + "boost-my-check-11"); + CheckFactories.registerCheck<MyCheck12Check>( + "boost-my-check-12"); + CheckFactories.registerCheck<MyCheck14Check>( + "boost-my-check-14"); + CheckFactories.registerCheck<MyCheck19Check>( + "boost-my-check-19"); + CheckFactories.registerCheck<MyCheck2Check>( + "boost-my-check-2"); + CheckFactories.registerCheck<MyCheck20Check>( + "boost-my-check-20"); + CheckFactories.registerCheck<MyCheck21Check>( + "boost-my-check-21"); + CheckFactories.registerCheck<MyCheck22Check>( + "boost-my-check-22"); + CheckFactories.registerCheck<MyCheck23Check>( + "boost-my-check-23"); + CheckFactories.registerCheck<MyCheck24Check>( + "boost-my-check-24"); + CheckFactories.registerCheck<MyCheck25Check>( + "boost-my-check-25"); + CheckFactories.registerCheck<MyCheck26Check>( + "boost-my-check-26"); + CheckFactories.registerCheck<MyCheck27Check>( + "boost-my-check-27"); + CheckFactories.registerCheck<MyCheck28Check>( + "boost-my-check-28"); + CheckFactories.registerCheck<MyCheck29Check>( + "boost-my-check-29"); + CheckFactories.registerCheck<MyCheck3Check>( + "boost-my-check-3"); + CheckFactories.registerCheck<MyCheck30Check>( + "boost-my-check-30"); + CheckFactories.registerCheck<MyCheck31Check>( + "boost-my-check-31"); + CheckFactories.registerCheck<MyCheck32Check>( + "boost-my-check-32"); + CheckFactories.registerCheck<MyCheck33Check>( + "boost-my-check-33"); + CheckFactories.registerCheck<MyCheck34Check>( + "boost-my-check-34"); + CheckFactories.registerCheck<MyCheck35Check>( + "boost-my-check-35"); + CheckFactories.registerCheck<MyCheck36Check>( + "boost-my-check-36"); + CheckFactories.registerCheck<MyCheck37Check>( + "boost-my-check-37"); + CheckFactories.registerCheck<MyCheck38Check>( + "boost-my-check-38"); + CheckFactories.registerCheck<MyCheck39Check>( + "boost-my-check-39"); + CheckFactories.registerCheck<MyCheck4Check>( + "boost-my-check-4"); + CheckFactories.registerCheck<MyCheck5Check>( + "boost-my-check-5"); + CheckFactories.registerCheck<MyCheck50Check>( + "boost-my-check-50"); + CheckFactories.registerCheck<MyCheck51Check>( + "boost-my-check-51"); + CheckFactories.registerCheck<MyCheck52Check>( + "boost-my-check-52"); + CheckFactories.registerCheck<MyCheck54Check>( + "boost-my-check-54"); + CheckFactories.registerCheck<MyCheck565Check>( + "boost-my-check-565"); + CheckFactories.registerCheck<MyCheck57Check>( + "boost-my-check-57"); + CheckFactories.registerCheck<MyCheck58Check>( + "boost-my-check-58"); + CheckFactories.registerCheck<MyCheck59Check>( + "boost-my-check-59"); + CheckFactories.registerCheck<MyCheck6Check>( + "boost-my-check-6"); + CheckFactories.registerCheck<MyCheck60Check>( + "boost-my-check-60"); + CheckFactories.registerCheck<MyCheck61Check>( + "boost-my-check-61"); + CheckFactories.registerCheck<MyCheck62Check>( + "boost-my-check-62"); + CheckFactories.registerCheck<MyCheck63Check>( + "boost-my-check-63"); + CheckFactories.registerCheck<MyCheck64Check>( + "boost-my-check-64"); + CheckFactories.registerCheck<MyCheck66Check>( + "boost-my-check-66"); + CheckFactories.registerCheck<MyCheck68Check>( + "boost-my-check-68"); + CheckFactories.registerCheck<MyCheck69Check>( + "boost-my-check-69"); + CheckFactories.registerCheck<MyCheck7Check>( + "boost-my-check-7"); + CheckFactories.registerCheck<MyCheck8Check>( + "boost-my-check-8"); + CheckFactories.registerCheck<MyCheck9Check>( + "boost-my-check-9"); CheckFactories.registerCheck<UseToStringCheck>("boost-use-to-string"); } }; Index: clang-tools-extra/clang-tidy/add_new_check.py =================================================================== --- clang-tools-extra/clang-tidy/add_new_check.py +++ clang-tools-extra/clang-tidy/add_new_check.py @@ -294,37 +294,88 @@ def update_checks_list(clang_tidy_path): docs_dir = os.path.join(clang_tidy_path, '../docs/clang-tidy/checks') filename = os.path.normpath(os.path.join(docs_dir, 'list.rst')) + # Read the content of the current list.rst file with open(filename, 'r') as f: lines = f.readlines() + # Get all existing docs doc_files = list(filter(lambda s: s.endswith('.rst') and s != 'list.rst', os.listdir(docs_dir))) doc_files.sort() - def format_link(doc_file): + def has_auto_fix(check_name): + dirname, _, check_name = check_name.partition("-") + + checkerCode = os.path.join(dirname,get_camel_name(check_name)) + ".cpp" + + if not os.path.isfile(checkerCode): + return "" + + with open(checkerCode) as f: + code = f.read() + if 'FixItHint' in code or "ReplacementText" in code or "fixit" in code: + # Some stupid heuristics to figure out if a checker has an autofix or not + return ' "Yes"' + return "" + + def process_doc(doc_file): check_name = doc_file.replace('.rst', '') + with open(os.path.join(docs_dir, doc_file), 'r') as doc: content = doc.read() match = re.search('.*:orphan:.*', content) + if match: - return '' + # Orphan page, don't list it + return '', '' match = re.search('.*:http-equiv=refresh: \d+;URL=(.*).html.*', content) - if match: - return ' %(check)s (redirects to %(target)s) <%(check)s>\n' % { - 'check': check_name, - 'target': match.group(1) - } - return ' %s\n' % check_name + # Is it a redirect? + return check_name, match + + def format_link(doc_file): + check_name, match = process_doc(doc_file) + if not match: + return ' `%(check)s <%(check)s.html>`_,%(autofix)s\n' % { + 'check': check_name, + 'autofix': has_auto_fix(check_name) + } + else: + return '' + + def format_link_alias(doc_file): + check_name, match = process_doc(doc_file) + if match: + if match.group(1) == 'https://clang.llvm.org/docs/analyzer/checkers': + titleRedirect = 'Clang Static Analyzer' + else: + titleRedirect = match.group(1) + # The checker is just a redirect + return ' `%(check)s <%(check)s.html>`_, `%(title)s <%(target)s.html>`_,%(autofix)s\n' % { + 'check': check_name, + 'target': match.group(1), + 'title': titleRedirect, + 'autofix': has_auto_fix(match.group(1)) + } + return '' checks = map(format_link, doc_files) + checks_alias = map(format_link_alias, doc_files) print('Updating %s...' % filename) with open(filename, 'w') as f: for line in lines: f.write(line) - if line.startswith('.. toctree::'): + if line.strip() == ".. csv-table::": + # We dump the checkers + f.write(' :header: "Name", "Offers fixes"\n') + f.write(' :widths: 50, 20\n') f.writelines(checks) + # and the aliases + f.write('.. csv-table:: Aliases..\n') + f.write(' :header: "Name", "Redirect", "Offers fixes"\n') + f.write(' :widths: 50, 50, 10\n') + f.writelines(checks_alias) break @@ -345,6 +396,11 @@ 'underline': '=' * len(check_name_dashes)}) +def get_camel_name(check_name): + return ''.join(map(lambda elem: elem.capitalize(), + check_name.split('-'))) + 'Check' + + def main(): language_to_extension = { 'c': 'c', @@ -384,13 +440,11 @@ module = args.module check_name = args.check - + check_name_camel = get_camel_name(check_name) if check_name.startswith(module): print('Check name "%s" must not start with the module "%s". Exiting.' % ( check_name, module)) return - check_name_camel = ''.join(map(lambda elem: elem.capitalize(), - check_name.split('-'))) + 'Check' clang_tidy_path = os.path.dirname(sys.argv[0]) module_path = os.path.join(clang_tidy_path, module)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits