Author: jbcoe Date: Thu Mar 30 06:57:54 2017 New Revision: 299068 URL: http://llvm.org/viewvc/llvm-project?rev=299068&view=rev Log: [clang-tidy] add aliases for hicpp module
Summary: Add some hicpp checks that can be implmented as alises for existing clang-tidy checks: hicpp-explicit-conversions hicpp-function-size hicpp-named-parameter hicpp-invalid-access-moved hicpp-member-init hicpp-new-delete-operators hicpp-noexcept-move hicpp-special-member-functions hicpp-undelegated-constructor hicpp-use-equals-default hicpp-use-equals-delete hicpp-use-override Reviewers: dberlin, jbcoe, aaron.ballman, alexfh Reviewed By: aaron.ballman Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D30383 Patch By: Jonas Toth Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-explicit-conversions.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-function-size.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-invalid-access-moved.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-member-init.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-named-parameter.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-new-delete-operators.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-noexcept-move.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-special-member-functions.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-default.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-delete.rst clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-override.rst Modified: clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp clang-tools-extra/trunk/docs/ReleaseNotes.rst Modified: clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp?rev=299068&r1=299067&r2=299068&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp Thu Mar 30 06:57:54 2017 @@ -10,6 +10,19 @@ #include "../ClangTidy.h" #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" +#include "../cppcoreguidelines/ProTypeMemberInitCheck.h" +#include "../cppcoreguidelines/SpecialMemberFunctionsCheck.h" +#include "../google/DefaultArgumentsCheck.h" +#include "../google/ExplicitConstructorCheck.h" +#include "../misc/NewDeleteOverloadsCheck.h" +#include "../misc/NoexceptMoveConstructorCheck.h" +#include "../misc/UndelegatedConstructor.h" +#include "../misc/UseAfterMoveCheck.h" +#include "../modernize/UseEqualsDefaultCheck.h" +#include "../modernize/UseEqualsDeleteCheck.h" +#include "../modernize/UseOverrideCheck.h" +#include "../readability/FunctionSizeCheck.h" +#include "../readability/IdentifierNamingCheck.h" #include "NoAssemblerCheck.h" namespace clang { @@ -19,8 +32,32 @@ namespace hicpp { class HICPPModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { - CheckFactories.registerCheck<NoAssemblerCheck>( - "hicpp-no-assembler"); + CheckFactories.registerCheck<google::ExplicitConstructorCheck>( + "hicpp-explicit-conversions"); + CheckFactories.registerCheck<readability::FunctionSizeCheck>( + "hicpp-function-size"); + CheckFactories.registerCheck<readability::IdentifierNamingCheck>( + "hicpp-named-parameter"); + CheckFactories.registerCheck<misc::UseAfterMoveCheck>( + "hicpp-invalid-access-moved"); + CheckFactories.registerCheck<cppcoreguidelines::ProTypeMemberInitCheck>( + "hicpp-member-init"); + CheckFactories.registerCheck<misc::NewDeleteOverloadsCheck>( + "hicpp-new-delete-operators"); + CheckFactories.registerCheck<misc::NoexceptMoveConstructorCheck>( + "hicpp-noexcept-move"); + CheckFactories.registerCheck<NoAssemblerCheck>("hicpp-no-assembler"); + CheckFactories + .registerCheck<cppcoreguidelines::SpecialMemberFunctionsCheck>( + "hicpp-special-member-functions"); + CheckFactories.registerCheck<misc::UndelegatedConstructorCheck>( + "hicpp-undelegated-constructor"); + CheckFactories.registerCheck<modernize::UseEqualsDefaultCheck>( + "hicpp-use-equals-default"); + CheckFactories.registerCheck<modernize::UseEqualsDeleteCheck>( + "hicpp-use-equals-delete"); + CheckFactories.registerCheck<modernize::UseOverrideCheck>( + "hicpp-use-override"); } }; Modified: clang-tools-extra/trunk/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ReleaseNotes.rst?rev=299068&r1=299067&r2=299068&view=diff ============================================================================== --- clang-tools-extra/trunk/docs/ReleaseNotes.rst (original) +++ clang-tools-extra/trunk/docs/ReleaseNotes.rst Thu Mar 30 06:57:54 2017 @@ -76,10 +76,10 @@ Improvements to clang-tidy Finds functions that have more then `ParameterThreshold` parameters and emits a warning. -- New `safety-no-assembler - <http://clang.llvm.org/extra/clang-tidy/checks/safety-no-assembler.html>`_ check +- New `hicpp` module - Finds uses of inline assembler. + Adds checks that implement the `High Integrity C++ Coding Standard <http://www.codingstandard.com/section/index/>`_ and other safety + standards. Many checks are aliased to other modules. - New `modernize-return-braced-init-list <http://clang.llvm.org/extra/clang-tidy/checks/modernize-return-braced-init-list.html>`_ check Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-explicit-conversions.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-explicit-conversions.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-explicit-conversions.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-explicit-conversions.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,15 @@ +.. title:: clang-tidy - hicpp-explicit-conversions + +hicpp-explicit-conversions +========================== + +This check is an alias for `google-explicit-constructor <google-explicit-constructor.hml>`_. +Used to enforce parts of `rule 5.4.1 <http://www.codingstandard.com/rule/5-4-1-only-use-casting-forms-static_cast-excl-void-dynamic_cast-or-explicit-constructor-call/>`_. +This check will enforce that constructors and conversion operators are marked `explicit`. +Other forms of casting checks are implemented in other places. +The following checks can be used to check for more forms of casting: + +- `cppcoreguidelines-pro-type-static-cast-downcast <cppcoreguidelines-pro-type-static-cast-downcast.html>`_ +- `cppcoreguidelines-pro-type-reinterpret-cast <cppcoreguidelines-pro-type-reinterpret-cast.html>`_ +- `cppcoreguidelines-pro-type-const-cast <cppcoreguidelines-pro-type-const-cast.html>`_ +- `cppcoreguidelines-pro-type-cstyle-cast <cppcoreguidelines-pro-type-cstyle-cast.html>`_ Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-function-size.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-function-size.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-function-size.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-function-size.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,11 @@ +.. title:: clang-tidy - hicpp-function-size + +hicpp-function-size +=================== + +This check is an alias for `readability-function-size <readability-function-size.hml>`_. +Useful to enforce multiple sections on function complexity. + +- `rule 8.2.2 <http://www.codingstandard.com/rule/8-2-2-do-not-declare-functions-with-an-excessive-number-of-parameters/>`_ +- `rule 8.3.1 <http://www.codingstandard.com/rule/8-3-1-do-not-write-functions-with-an-excessive-mccabe-cyclomatic-complexity/>`_ +- `rule 8.3.2 <http://www.codingstandard.com/rule/8-3-2-do-not-write-functions-with-a-high-static-program-path-count/>`_ Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-invalid-access-moved.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-invalid-access-moved.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-invalid-access-moved.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-invalid-access-moved.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,8 @@ +.. title:: clang-tidy - hicpp-invalid-access-moved + +hicpp-invalid-access-moved +========================== + +This check is an alias for `misc-use-after-move <misc-use-after-move.hml>`_. + +Implements parts of the `rule 8.4.1 <http://www.codingstandard.com/rule/8-4-1-do-not-access-an-invalid-object-or-an-object-with-indeterminate-value/>`_ to check if moved-from objects are accessed. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-member-init.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-member-init.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-member-init.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-member-init.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,9 @@ +.. title:: clang-tidy - hicpp-member-init + +hicpp-member-init +================= + +This check is an alias for `cppcoreguidelines-pro-type-member-init <cppcoreguidelines-pro-type-member-init.hml>`_. +Implements the check for +`rule 12.4.2 <http://www.codingstandard.com/rule/12-4-2-ensure-that-a-constructor-initializes-explicitly-all-base-classes-and-non-static-data-members/>`_ +to initialize class members in the right order. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-named-parameter.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-named-parameter.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-named-parameter.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-named-parameter.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,8 @@ +.. title:: clang-tidy - hicpp-named-parameter + +hicpp-named-parameter +===================== + +This check is an alias for `readability-named-parameter <readability-named-parameter.hml>`_. + +Implements `rule 8.2.1 <http://www.codingstandard.com/rule/8-2-1-make-parameter-names-absent-or-identical-in-all-declarations/>`_. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-new-delete-operators.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-new-delete-operators.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-new-delete-operators.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-new-delete-operators.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,8 @@ +.. title:: clang-tidy - hicpp-new-delete-operators + +hicpp-new-delete-operators +========================== + +This check is an alias for `misc-new-delete-overloads <misc-new-delete-overloads.hml>`_. +Implements `rule 12.3.1 <http://www.codingstandard.com/section/12-3-free-store/>`_ to ensure +the `new` and `delete` operators have the correct signature. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-noexcept-move.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-noexcept-move.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-noexcept-move.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-noexcept-move.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,7 @@ +.. title:: clang-tidy - hicpp-noexcept-move + +hicpp-noexcept-move +=================== + +This check is an alias for `misc-noexcept-moveconstructor <misc-noexcept-moveconstructor.hml>`_. +Checks `rule 12.5.4 <http://www.codingstandard.com/rule/12-5-4-declare-noexcept-the-move-constructor-and-move-assignment-operator/`_ to mark move assignment and move construction `noexcept`. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-special-member-functions.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-special-member-functions.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-special-member-functions.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-special-member-functions.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,7 @@ +.. title:: clang-tidy - hicpp-special-member-functions + +hicpp-special-member-functions +============================== + +This check is an alias for `cppcoreguidelines-special-member-functions <cppcoreguidelines-special-member-functions.hml>`_. +Checks that special member functions have the correct signature, according to `rule 12.5.7 <http://www.codingstandard.com/rule/12-5-7-declare-assignment-operators-with-the-ref-qualifier/>`_. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,23 @@ +.. title:: clang-tidy - hicpp-undelegated-construtor + +hicpp-undelegated-constructor +============================= + +This check is an alias for `misc-undelegated-constructor <misc-undelegated-constructor.hml>`_. +Partially implements `rule 12.4.5 <http://www.codingstandard.com/rule/12-4-5-use-delegating-constructors-to-reduce-code-duplication/>`_ +to find misplaced constructor calls inside a constructor. + +.. code-block:: c++ + + struct Ctor { + Ctor(); + Ctor(int); + Ctor(int, int); + Ctor(Ctor *i) { + // All Ctor() calls result in a temporary object + Ctor(); // did you intend to call a delegated constructor? + Ctor(0); // did you intend to call a delegated constructor? + Ctor(1, 2); // did you intend to call a delegated constructor? + foo(); + } + }; Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-default.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-default.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-default.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-default.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,7 @@ +.. title:: clang-tidy - hicpp-use-equals-defaults + +hicpp-use-equals-default +======================== + +This check is an alias for `modernize-use-equals-default <modernize-use-equals-default.hml>`_. +Implements `rule 12.5.1 <http://www.codingstandard.com/rule/12-5-1-define-explicitly-default-or-delete-implicit-special-member-functions-of-concrete-classes/>`_ to explicitly default special member functions. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-delete.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-delete.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-delete.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-equals-delete.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,8 @@ +.. title:: clang-tidy - hicpp-use-equals-delete + +hicpp-use-equals-delete +======================= + +This check is an alias for `modernize-use-equals-delete <modernize-use-equals-delete.hml>`_. +Implements `rule 12.5.1 <http://www.codingstandard.com/rule/12-5-1-define-explicitly-default-or-delete-implicit-special-member-functions-of-concrete-classes/>`_ +to explicitly default or delete special member functions. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-override.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-override.rst?rev=299068&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-override.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-use-override.rst Thu Mar 30 06:57:54 2017 @@ -0,0 +1,8 @@ +.. title:: clang-tidy - hicpp-use-override + +hicpp-use-override +================== + +This check is an alias for `modernize-use-override <modernize-use-override.hml>`_. +Implements `rule 10.2.1 <http://www.codingstandard.com/section/10-2-virtual-functions/>`_ to +declare a virtual function `override` when overriding. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits