IdrissRio created this revision. IdrissRio added reviewers: JonasToth, aaron.ballman, alexfh. Herald added subscribers: cfe-commits, mgorny.
Hello, i want to propose this check suggested by @EugeneZelenko. I have found it in the beginner tag of llvm-bugzilla repository. This check looks for numerical unsigned constants that are equal to -1 or ~0 and substitutes them with std::numeric_limits<type>::max(). It includes the library <limits> if is not found. Example: unsigned const int x = -1; becomes unsigned const int x = std::numeric_limits<unsigned int>::max(); Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D52892 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp docs/ReleaseNotes.rst docs/clang-tidy/checks/list.rst Index: docs/clang-tidy/checks/list.rst =================================================================== --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -9,8 +9,8 @@ abseil-no-internal-dependencies abseil-no-namespace abseil-redundant-strcat-calls - abseil-string-find-startswith abseil-str-cat-append + abseil-string-find-startswith android-cloexec-accept android-cloexec-accept4 android-cloexec-creat @@ -216,6 +216,7 @@ performance-unnecessary-copy-initialization performance-unnecessary-value-param portability-simd-intrinsics + readability-NumericalCostantsToMaxInt readability-avoid-const-params-in-decls readability-braces-around-statements readability-container-size-empty Index: docs/ReleaseNotes.rst =================================================================== --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -57,6 +57,12 @@ Improvements to clang-tidy -------------------------- +- New :doc:`readability-numerical-costants-to-max-int + <clang-tidy/checks/readability-numerical-costants-to-max-int>` check. + + Checks for numerical unsigned constants that are equal to -1 or ~0 + and substitutes them with std::numeric_limits<type>::max(). + - New :doc:`abseil-duration-division <clang-tidy/checks/abseil-duration-division>` check. Index: clang-tidy/readability/ReadabilityTidyModule.cpp =================================================================== --- clang-tidy/readability/ReadabilityTidyModule.cpp +++ clang-tidy/readability/ReadabilityTidyModule.cpp @@ -25,6 +25,7 @@ #include "MisplacedArrayIndexCheck.h" #include "NamedParameterCheck.h" #include "NonConstParameterCheck.h" +#include "NumericalCostantsToMaxIntCheck.h" #include "RedundantControlFlowCheck.h" #include "RedundantDeclarationCheck.h" #include "RedundantFunctionPtrDereferenceCheck.h" @@ -72,6 +73,8 @@ "readability-misleading-indentation"); CheckFactories.registerCheck<MisplacedArrayIndexCheck>( "readability-misplaced-array-index"); + CheckFactories.registerCheck<NumericalCostantsToMaxIntCheck>( + "readability-numerical-costants-to-max-int"); CheckFactories.registerCheck<RedundantFunctionPtrDereferenceCheck>( "readability-redundant-function-ptr-dereference"); CheckFactories.registerCheck<RedundantMemberInitCheck>( Index: clang-tidy/readability/CMakeLists.txt =================================================================== --- clang-tidy/readability/CMakeLists.txt +++ clang-tidy/readability/CMakeLists.txt @@ -17,6 +17,7 @@ NamedParameterCheck.cpp NamespaceCommentCheck.cpp NonConstParameterCheck.cpp + NumericalCostantsToMaxIntCheck.cpp ReadabilityTidyModule.cpp RedundantControlFlowCheck.cpp RedundantDeclarationCheck.cpp
Index: docs/clang-tidy/checks/list.rst =================================================================== --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -9,8 +9,8 @@ abseil-no-internal-dependencies abseil-no-namespace abseil-redundant-strcat-calls - abseil-string-find-startswith abseil-str-cat-append + abseil-string-find-startswith android-cloexec-accept android-cloexec-accept4 android-cloexec-creat @@ -216,6 +216,7 @@ performance-unnecessary-copy-initialization performance-unnecessary-value-param portability-simd-intrinsics + readability-NumericalCostantsToMaxInt readability-avoid-const-params-in-decls readability-braces-around-statements readability-container-size-empty Index: docs/ReleaseNotes.rst =================================================================== --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -57,6 +57,12 @@ Improvements to clang-tidy -------------------------- +- New :doc:`readability-numerical-costants-to-max-int + <clang-tidy/checks/readability-numerical-costants-to-max-int>` check. + + Checks for numerical unsigned constants that are equal to -1 or ~0 + and substitutes them with std::numeric_limits<type>::max(). + - New :doc:`abseil-duration-division <clang-tidy/checks/abseil-duration-division>` check. Index: clang-tidy/readability/ReadabilityTidyModule.cpp =================================================================== --- clang-tidy/readability/ReadabilityTidyModule.cpp +++ clang-tidy/readability/ReadabilityTidyModule.cpp @@ -25,6 +25,7 @@ #include "MisplacedArrayIndexCheck.h" #include "NamedParameterCheck.h" #include "NonConstParameterCheck.h" +#include "NumericalCostantsToMaxIntCheck.h" #include "RedundantControlFlowCheck.h" #include "RedundantDeclarationCheck.h" #include "RedundantFunctionPtrDereferenceCheck.h" @@ -72,6 +73,8 @@ "readability-misleading-indentation"); CheckFactories.registerCheck<MisplacedArrayIndexCheck>( "readability-misplaced-array-index"); + CheckFactories.registerCheck<NumericalCostantsToMaxIntCheck>( + "readability-numerical-costants-to-max-int"); CheckFactories.registerCheck<RedundantFunctionPtrDereferenceCheck>( "readability-redundant-function-ptr-dereference"); CheckFactories.registerCheck<RedundantMemberInitCheck>( Index: clang-tidy/readability/CMakeLists.txt =================================================================== --- clang-tidy/readability/CMakeLists.txt +++ clang-tidy/readability/CMakeLists.txt @@ -17,6 +17,7 @@ NamedParameterCheck.cpp NamespaceCommentCheck.cpp NonConstParameterCheck.cpp + NumericalCostantsToMaxIntCheck.cpp ReadabilityTidyModule.cpp RedundantControlFlowCheck.cpp RedundantDeclarationCheck.cpp
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits