Add new tidy checks
Change-Id: Ibe7eb340603a6c5228997d314c20fe872e91fe58
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/.clang-tidy b/.clang-tidy
index 7a92985..303b7ce 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -2,19 +2,25 @@
-*,
boost-use-to-string,
bugprone-argument-comment,
-bugprone-assignment-in-if-condition,
bugprone-assert-side-effect,
+bugprone-assignment-in-if-condition,
bugprone-bad-signal-to-kill-thread,
bugprone-bool-pointer-implicit-conversion,
bugprone-branch-clone,
+bugprone-casting-through-void,
+bugprone-chained-comparison,
+bugprone-compare-pointer-to-member-virtual-function,
bugprone-copy-constructor-init,
bugprone-dangling-handle,
bugprone-dynamic-static-initializers,
+bugprone-empty-catch,
bugprone-fold-init-type,
bugprone-forward-declaration-namespace,
bugprone-forwarding-reference-overload,
bugprone-implicit-widening-of-multiplication-result,
bugprone-inaccurate-erase,
+bugprone-inc-dec-in-conditions,
+bugprone-incorrect-enable-if,
bugprone-incorrect-roundings,
bugprone-infinite-loop,
bugprone-integer-division,
@@ -25,36 +31,49 @@
bugprone-misplaced-pointer-arithmetic-in-alloc,
bugprone-misplaced-widening-cast,
bugprone-move-forwarding-reference,
+bugprone-multi-level-implicit-pointer-conversion,
+bugprone-multiple-new-in-one-expression,
bugprone-multiple-statement-macro,
bugprone-optional-value-conversion,
bugprone-no-escape,
+bugprone-non-zero-enum-to-bool-conversion,
bugprone-not-null-terminated-result,
+bugprone-optional-value-conversion,
bugprone-parent-virtual-call,
bugprone-posix-return,
bugprone-redundant-branch-condition,
bugprone-reserved-identifier,
+bugprone-shared-ptr-array-mismatch,
bugprone-signal-handler,
bugprone-signed-char-misuse,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-spuriously-wake-up-functions,
+bugprone-standalone-empty,
bugprone-string-constructor,
bugprone-string-integer-assignment,
bugprone-string-literal-with-embedded-nul,
+bugprone-stringview-nullptr,
bugprone-suspicious-enum-usage,
bugprone-suspicious-include,
+bugprone-suspicious-memory-comparison,
bugprone-suspicious-memset-usage,
bugprone-suspicious-missing-comma,
+bugprone-suspicious-realloc-usage,
bugprone-suspicious-semicolon,
bugprone-suspicious-string-compare,
bugprone-swapped-arguments,
+bugprone-switch-missing-default-case,
bugprone-terminating-continue,
bugprone-throw-keyword-missing,
bugprone-too-small-loop-variable,
+bugprone-unchecked-optional-access,
bugprone-undefined-memory-manipulation,
bugprone-undelegated-constructor,
bugprone-unhandled-exception-at-new,
bugprone-unhandled-self-assignment,
+bugprone-unique-ptr-array-mismatch,
+bugprone-unsafe-functions,
bugprone-unused-local-non-trivial-variable,
bugprone-unused-raii,
bugprone-unused-return-value,
@@ -65,7 +84,9 @@
cert-dcl03-c,
cert-dcl16-c,
cert-dcl21-cpp,
+cert-dcl37-c,
cert-dcl50-cpp,
+cert-dcl51-cpp,
cert-dcl54-cpp,
cert-dcl58-cpp,
cert-dcl59-cpp,
@@ -90,11 +111,14 @@
cert-pos47-c,
cert-sig30-c,
cert-str34-c,
-clang-analyzer-apiModeling.StdCLibraryFunctions,
+clang-analyzer-apiModeling.Errno,
clang-analyzer-apiModeling.TrustNonnull,
+clang-analyzer-apiModeling.TrustReturnsNonnull,
clang-analyzer-apiModeling.google.GTest,
clang-analyzer-apiModeling.llvm.CastValue,
clang-analyzer-apiModeling.llvm.ReturnValue,
+clang-analyzer-core.BitwiseShift,
+clang-analyzer-core.CallAndMessage,
clang-analyzer-core.CallAndMessageModeling,
clang-analyzer-core.DivideZero,
clang-analyzer-core.DynamicTypePropagation,
@@ -111,6 +135,7 @@
clang-analyzer-core.uninitialized.Assign,
clang-analyzer-core.uninitialized.Branch,
clang-analyzer-core.uninitialized.CapturedBlockVariable,
+clang-analyzer-core.uninitialized.NewArraySize,
clang-analyzer-core.uninitialized.UndefReturn,
clang-analyzer-cplusplus.InnerPointer,
clang-analyzer-cplusplus.Move,
@@ -120,6 +145,7 @@
clang-analyzer-cplusplus.PureVirtualCall,
clang-analyzer-cplusplus.SelfAssignment,
clang-analyzer-cplusplus.SmartPtrModeling,
+clang-analyzer-cplusplus.StringChecker,
clang-analyzer-cplusplus.VirtualCallModeling,
clang-analyzer-deadcode.DeadStores,
clang-analyzer-fuchsia.HandleChecker,
@@ -129,6 +155,7 @@
clang-analyzer-nullability.NullableDereferenced,
clang-analyzer-nullability.NullablePassedToNonnull,
clang-analyzer-nullability.NullableReturnedFromNonnull,
+clang-analyzer-optin.core.EnumCastOutOfRange,
clang-analyzer-optin.cplusplus.UninitializedObject,
clang-analyzer-optin.cplusplus.VirtualCall,
clang-analyzer-optin.mpi.MPI-Checker,
@@ -170,6 +197,7 @@
clang-analyzer-osx.coreFoundation.containers.OutOfBounds,
clang-analyzer-osx.coreFoundation.containers.PointerSizedValues,
clang-analyzer-security.FloatLoopCounter,
+clang-analyzer-security.cert.env.InvalidPtr,
clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
clang-analyzer-security.insecureAPI.SecuritySyntaxChecker,
clang-analyzer-security.insecureAPI.UncheckedReturn,
@@ -186,9 +214,11 @@
clang-analyzer-security.insecureAPI.vfork,
clang-analyzer-unix.API,
clang-analyzer-unix.DynamicMemoryModeling,
+clang-analyzer-unix.Errno,
clang-analyzer-unix.Malloc,
clang-analyzer-unix.MallocSizeof,
clang-analyzer-unix.MismatchedDeallocator,
+clang-analyzer-unix.StdCLibraryFunctions,
clang-analyzer-unix.Vfork,
clang-analyzer-unix.cstring.BadSizeArg,
clang-analyzer-unix.cstring.CStringModeling,
@@ -199,14 +229,24 @@
clang-analyzer-valist.ValistBase,
clang-analyzer-webkit.NoUncountedMemberChecker,
clang-analyzer-webkit.RefCntblBaseVirtualDtor,
+clang-analyzer-webkit.UncountedLambdaCapturesChecker,
cppcoreguidelines-avoid-c-arrays,
+cppcoreguidelines-avoid-capturing-lambda-coroutines,
cppcoreguidelines-avoid-goto,
+cppcoreguidelines-avoid-reference-coroutine-parameters,
cppcoreguidelines-c-copy-assignment-signature,
cppcoreguidelines-explicit-virtual-functions,
cppcoreguidelines-init-variables,
cppcoreguidelines-interfaces-global-init,
+cppcoreguidelines-macro-to-enum,
cppcoreguidelines-macro-usage,
+cppcoreguidelines-misleading-capture-default-by-value,
+cppcoreguidelines-missing-std-forward,
cppcoreguidelines-no-malloc,
+cppcoreguidelines-no-suspend-with-lock,
+cppcoreguidelines-noexcept-destructor,
+cppcoreguidelines-noexcept-move-operations,
+cppcoreguidelines-noexcept-swap,
cppcoreguidelines-prefer-member-initializer,
cppcoreguidelines-pro-bounds-array-to-pointer-decay,
cppcoreguidelines-pro-type-const-cast,
@@ -217,15 +257,25 @@
cppcoreguidelines-pro-type-union-access,
cppcoreguidelines-pro-type-vararg,
cppcoreguidelines-rvalue-reference-param-not-moved,
+cppcoreguidelines-use-default-member-init,
+cppcoreguidelines-virtual-class-destructor,
cppcoreguidelines-slicing,
google-explicit-constructor,
+misc-coroutine-hostile-raii,
+misc-header-include-cycle,
misc-include-cleaner,
+misc-misleading-bidirectional,
+misc-misleading-identifier,
misc-misplaced-const,
+misc-new-delete-overloads,
+misc-non-copyable-objects,
misc-redundant-expression,
misc-static-assert,
misc-throw-by-value-catch-by-reference,
misc-unconventional-assign-operator,
misc-uniqueptr-reset-release,
+misc-unused-alias-decls,
+misc-unused-parameters,
misc-unused-using-decls,
modernize-avoid-bind,
modernize-deprecated-headers,
@@ -248,6 +298,8 @@
modernize-use-noexcept,
modernize-use-nullptr,
modernize-use-override,
+modernize-use-starts-ends-with,
+modernize-use-std-numbers,
modernize-use-transparent-functors,
modernize-use-uncaught-exceptions,
modernize-use-using,
@@ -261,18 +313,25 @@
performance-move-constructor-init,
performance-no-automatic-move,
performance-no-int-to-ptr,
+performance-noexcept-destructor,
performance-noexcept-move-constructor,
+performance-noexcept-swap,
performance-trivially-destructible,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param,
readability-avoid-const-params-in-decls,
+readability-avoid-nested-conditional-operator,
+readability-avoid-return-with-void-value,
+readability-avoid-unconditional-preprocessor-if,
readability-braces-around-statements,
readability-const-return-type,
+readability-container-contains,
readability-container-data-pointer,
readability-container-size-empty,
readability-convert-member-functions-to-static,
readability-delete-null-pointer,
+readability-duplicate-include,
readability-deleted-default,
readability-else-after-return,
readability-function-size,
@@ -284,17 +343,21 @@
readability-misleading-indentation,
readability-misplaced-array-index,
readability-named-parameter,
+readability-operators-representation,
readability-non-const-parameter,
readability-qualified-auto,
readability-redundant-access-specifiers,
+readability-redundant-casting,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
+readability-redundant-inline-specifier,
readability-redundant-member-init,
readability-redundant-preprocessor,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
+readability-reference-to-constructed-temporary,
readability-simplify-boolean-expr,
readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
@@ -313,4 +376,5 @@
- { key: readability-identifier-naming.ParameterCase, value: camelBack }
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
- { key: readability-identifier-naming.StructCase, value: CamelCase }
+ - { key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams, value: true }
- { key: misc-include-cleaner.IgnoreHeaders, value: ((stdlib.h)|(nlohmann/json_fwd.hpp)|(boost/.*/src.hpp)|(boost/.*/detail/.*)|(nlohmann/detail/.*)|(stdio.h)|(ranges)|(bits/chrono.h)|(boost/system/error_code.hpp)) }