diff --git a/.clang-tidy-ci b/.clang-tidy-ci new file mode 100644 index 00000000000..04a9f8bacce --- /dev/null +++ b/.clang-tidy-ci @@ -0,0 +1,480 @@ +Checks: " + -*, + boost-use-to-string, + bugprone-argument-comment, + bugprone-assert-side-effect, + bugprone-bad-signal-to-kill-thread, + bugprone-bool-pointer-implicit-conversion, + bugprone-branch-clone, + bugprone-copy-constructor-init, + bugprone-dangling-handle, + bugprone-dynamic-static-initializers, + bugprone-exception-escape, + bugprone-fold-init-type, + bugprone-forward-declaration-namespace, + bugprone-forwarding-reference-overload, + bugprone-inaccurate-erase, + bugprone-incorrect-roundings, + bugprone-integer-division, + bugprone-lambda-function-name, + bugprone-macro-parentheses, + bugprone-macro-repeated-side-effects, + bugprone-misplaced-operator-in-strlen-in-alloc, + bugprone-misplaced-widening-cast, + bugprone-move-forwarding-reference, + bugprone-multiple-statement-macro, + bugprone-not-null-terminated-result, + bugprone-parent-virtual-call, + bugprone-posix-return, + bugprone-signed-char-misuse, + bugprone-sizeof-container, + bugprone-sizeof-expression, + bugprone-string-constructor, + bugprone-string-integer-assignment, + bugprone-string-literal-with-embedded-nul, + bugprone-suspicious-enum-usage, + bugprone-suspicious-memset-usage, + bugprone-suspicious-missing-comma, + bugprone-suspicious-semicolon, + bugprone-suspicious-string-compare, + bugprone-swapped-arguments, + 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-self-assignment, + bugprone-unused-raii, + bugprone-unused-return-value, + bugprone-use-after-move, + bugprone-virtual-near-miss, + cppcoreguidelines-avoid-goto, + cppcoreguidelines-init-variables, + cppcoreguidelines-interfaces-global-init, + cppcoreguidelines-macro-usage, + cppcoreguidelines-narrowing-conversions, + cppcoreguidelines-no-malloc, + cppcoreguidelines-pro-bounds-pointer-arithmetic, + cppcoreguidelines-pro-type-const-cast, + cppcoreguidelines-pro-type-cstyle-cast, + cppcoreguidelines-pro-type-member-init, + cppcoreguidelines-pro-type-reinterpret-cast, + cppcoreguidelines-pro-type-static-cast-downcast, + cppcoreguidelines-pro-type-union-access, + cppcoreguidelines-slicing, + cppcoreguidelines-special-member-functions, + google-build-explicit-make-pair, + google-build-namespaces, + google-build-using-namespace, + google-explicit-constructor, + google-global-names-in-headers, + google-upgrade-googletest-case, + hicpp-exception-baseclass, + hicpp-multiway-paths-covered, + hicpp-no-assembler, + hicpp-signed-bitwise, + llvm-namespace-comment, + misc-definitions-in-headers, + 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-concat-nested-namespaces, + modernize-deprecated-headers, + modernize-deprecated-ios-base-aliases, + modernize-loop-convert, + modernize-make-shared, + modernize-make-unique, + modernize-pass-by-value, + modernize-raw-string-literal, + modernize-redundant-void-arg, + modernize-replace-auto-ptr, + modernize-replace-disallow-copy-and-assign-macro, + modernize-replace-random-shuffle, + modernize-return-braced-init-list, + modernize-shrink-to-fit, + modernize-unary-static-assert, + modernize-use-auto, + modernize-use-bool-literals, + modernize-use-default-member-init, + modernize-use-emplace, + modernize-use-equals-default, + modernize-use-equals-delete, + modernize-use-nodiscard, + modernize-use-noexcept, + modernize-use-nullptr, + modernize-use-override, + modernize-use-transparent-functors, + modernize-use-uncaught-exceptions, + modernize-use-using, + openmp-use-default-none, + performance-faster-string-find, + performance-for-range-copy, + performance-implicit-conversion-in-loop, + performance-inefficient-algorithm, + performance-inefficient-string-concatenation, + performance-inefficient-vector-operation, + performance-move-const-arg, + performance-move-constructor-init, + performance-no-automatic-move, + performance-no-int-to-ptr, + performance-noexcept-move-constructor, + performance-trivially-destructible, + performance-type-promotion-in-math-fn, + performance-unnecessary-copy-initialization, + performance-unnecessary-value-param, + portability-simd-intrinsics, + readability-const-return-type, + readability-container-size-empty, + readability-convert-member-functions-to-static, + readability-delete-null-pointer, + readability-else-after-return, + readability-function-cognitive-complexity, + readability-identifier-naming, + readability-inconsistent-declaration-parameter-name, + readability-isolate-declaration, + readability-make-member-function-const, + readability-misleading-indentation, + readability-misplaced-array-index, + readability-non-const-parameter, + readability-redundant-access-specifiers, + readability-redundant-control-flow, + readability-redundant-declaration, + readability-redundant-function-ptr-dereference, + readability-redundant-member-init, + readability-redundant-smartptr-get, + readability-redundant-string-cstr, + readability-redundant-string-init, + readability-simplify-boolean-expr, + readability-simplify-subscript-expr, + readability-static-accessed-through-instance, + readability-static-definition-in-anonymous-namespace, + readability-string-compare, + readability-uniqueptr-delete-release" + +WarningsAsErrors: " + // severity: HIGH + bugprone-dangling-handle, + bugprone-fold-init-type, + bugprone-inaccurate-erase, + // bugprone-incorrect-roundings, + // bugprone-misplaced-widening-cast, + bugprone-sizeof-container, + bugprone-sizeof-expression, + bugprone-string-constructor, + bugprone-suspicious-enum-usage, + bugprone-suspicious-memset-usage, + bugprone-suspicious-missing-comma, + bugprone-suspicious-semicolon, + bugprone-swapped-arguments, + bugprone-unchecked-optional-access, + // bugprone-unused-raii, + bugprone-use-after-move, + misc-non-copyable-objects, + misc-throw-by-value-catch-by-reference, + + // severity: MEDIUM + bugprone-assert-side-effect, + bugprone-bad-signal-to-kill-thread, + bugprone-copy-constructor-init, + bugprone-dynamic-static-initializers, + // bugprone-exception-escape, + // bugprone-integer-division, + // bugprone-macro-parentheses, + bugprone-macro-repeated-side-effects, + bugprone-misplaced-operator-in-strlen-in-alloc, + bugprone-move-forwarding-reference, + bugprone-multiple-statement-macro, + bugprone-not-null-terminated-result, + // bugprone-parent-virtual-call, + bugprone-posix-return, + // bugprone-signed-char-misuse, + bugprone-string-literal-with-embedded-nul, + bugprone-suspicious-string-compare, + bugprone-terminating-continue, + // bugprone-throw-keyword-missing, + bugprone-too-small-loop-variable, + bugprone-undefined-memory-manipulation, + bugprone-undelegated-constructor, + bugprone-unhandled-self-assignment, + bugprone-unused-return-value, + bugprone-virtual-near-miss, + // cppcoreguidelines-init-variables, + // cppcoreguidelines-narrowing-conversions, + google-build-explicit-make-pair, + google-build-namespaces, + // google-explicit-constructor, + misc-definitions-in-headers, + misc-new-delete-overloads, + misc-redundant-expression, + misc-unconventional-assign-operator, + misc-uniqueptr-reset-release, + performance-inefficient-algorithm, + // performance-move-const-arg, + performance-move-constructor-init, + performance-noexcept-move-constructor, + // readability-simplify-boolean-expr" + +HeaderFilterRegex: ^(?!\/usr)(?!\/opt) + +CheckOptions: + - key: bugprone-argument-comment.CommentBoolLiterals + value: "0" + - key: bugprone-argument-comment.CommentCharacterLiterals + value: "0" + - key: bugprone-argument-comment.CommentFloatLiterals + value: "0" + - key: bugprone-argument-comment.CommentIntegerLiterals + value: "0" + - key: bugprone-argument-comment.CommentNullPtrs + value: "0" + - key: bugprone-argument-comment.CommentStringLiterals + value: "0" + - key: bugprone-argument-comment.CommentUserDefinedLiterals + value: "0" + - key: bugprone-argument-comment.IgnoreSingleArgument + value: "0" + - key: bugprone-argument-comment.StrictMode + value: "0" + - key: bugprone-assert-side-effect.AssertMacros + value: assert + - key: bugprone-assert-side-effect.CheckFunctionCalls + value: "0" + - key: bugprone-dangling-handle.HandleClasses + value: std::basic_string_view;std::experimental::basic_string_view + - key: bugprone-dynamic-static-initializers.HeaderFileExtensions + value: ",h,hh,hpp,hxx" + - key: bugprone-exception-escape.FunctionsThatShouldNotThrow + value: "" + - key: bugprone-exception-escape.IgnoredExceptions + value: "" + - key: bugprone-misplaced-widening-cast.CheckImplicitCasts + value: "0" + - key: bugprone-not-null-terminated-result.WantToUseSafeFunctions + value: "1" + - key: bugprone-signed-char-misuse.CharTypdefsToIgnore + value: "" + - key: bugprone-sizeof-expression.WarnOnSizeOfCompareToConstant + value: "1" + - key: bugprone-sizeof-expression.WarnOnSizeOfConstant + value: "1" + - key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression + value: "0" + - key: bugprone-sizeof-expression.WarnOnSizeOfThis + value: "1" + - key: bugprone-string-constructor.LargeLengthThreshold + value: "8388608" + - key: bugprone-string-constructor.WarnOnLargeLength + value: "1" + - key: bugprone-suspicious-enum-usage.StrictMode + value: "0" + - key: bugprone-suspicious-missing-comma.MaxConcatenatedTokens + value: "5" + - key: bugprone-suspicious-missing-comma.RatioThreshold + value: "0.200000" + - key: bugprone-suspicious-missing-comma.SizeThreshold + value: "5" + - key: bugprone-suspicious-string-compare.StringCompareLikeFunctions + value: "" + - key: bugprone-suspicious-string-compare.WarnOnImplicitComparison + value: "1" + - key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison + value: "0" + - key: bugprone-too-small-loop-variable.MagnitudeBitsUpperLimit + value: "16" + - key: bugprone-unhandled-self-assignment.WarnOnlyIfThisHasSuspiciousField + value: "1" + - key: bugprone-unused-return-value.CheckedFunctions + value: ::std::async;::std::launder;::std::remove;::std::remove_if;::std::unique;::std::unique_ptr::release;::std::basic_string::empty;::std::vector::empty + - key: cert-dcl16-c.NewSuffixes + value: L;LL;LU;LLU + - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField + value: "0" + - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors + value: "1" + - key: cppcoreguidelines-macro-usage.AllowedRegexp + value: ^DEBUG_* + - key: cppcoreguidelines-macro-usage.CheckCapsOnly + value: "0" + - key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros + value: "1" + - key: cppcoreguidelines-no-malloc.Allocations + value: ::malloc;::calloc + - key: cppcoreguidelines-no-malloc.Deallocations + value: ::free + - key: cppcoreguidelines-no-malloc.Reallocations + value: ::realloc + - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: "1" + - key: cppcoreguidelines-pro-type-member-init.IgnoreArrays + value: "0" + - key: cppcoreguidelines-pro-type-member-init.UseAssignment + value: "0" + - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions + value: "0" + - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor + value: "0" + - key: google-readability-braces-around-statements.ShortStatementLines + value: "1" + - key: google-readability-function-size.StatementThreshold + value: "800" + - key: google-readability-namespace-comments.ShortNamespaceLines + value: "10" + - key: google-readability-namespace-comments.SpacesBeforeComments + value: "2" + - key: hicpp-multiway-paths-covered.WarnOnMissingElse + value: "0" + - key: hicpp-signed-bitwise.IgnorePositiveIntegerLiterals + value: "0" + - key: misc-definitions-in-headers.HeaderFileExtensions + value: ",h,hh,hpp,hxx" + - key: misc-definitions-in-headers.UseHeaderFileExtension + value: "1" + - key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries + value: "1" + - key: misc-unused-parameters.StrictMode + value: "0" + - key: modernize-loop-convert.MaxCopySize + value: "16" + - key: modernize-loop-convert.MinConfidence + value: reasonable + - key: modernize-loop-convert.NamingStyle + value: CamelCase + - key: modernize-make-shared.IgnoreMacros + value: "1" + - key: modernize-make-shared.IncludeStyle + value: google + - key: modernize-make-shared.MakeSmartPtrFunction + value: std::make_shared + - key: modernize-make-shared.MakeSmartPtrFunctionHeader + value: memory + - key: modernize-make-unique.IgnoreMacros + value: "1" + - key: modernize-make-unique.IncludeStyle + value: google + - key: modernize-make-unique.MakeSmartPtrFunction + value: std::make_unique + - key: modernize-make-unique.MakeSmartPtrFunctionHeader + value: memory + - key: modernize-pass-by-value.IncludeStyle + value: google + - key: modernize-pass-by-value.ValuesOnly + value: "0" + - key: modernize-raw-string-literal.ReplaceShorterLiterals + value: "0" + - key: modernize-replace-auto-ptr.IncludeStyle + value: google + - key: modernize-replace-random-shuffle.IncludeStyle + value: google + - key: modernize-use-auto.MinTypeNameLength + value: "5" + - key: modernize-use-auto.RemoveStars + value: "0" + - key: modernize-use-default-member-init.IgnoreMacros + value: "1" + - key: modernize-use-default-member-init.UseAssignment + value: "0" + - key: modernize-use-emplace.ContainersWithPushBack + value: ::std::vector;::std::list;::std::deque + - key: modernize-use-emplace.SmartPointers + value: ::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr + - key: modernize-use-emplace.TupleMakeFunctions + value: ::std::make_pair;::std::make_tuple + - key: modernize-use-emplace.TupleTypes + value: ::std::pair;::std::tuple + - key: modernize-use-equals-default.IgnoreMacros + value: "1" + - key: modernize-use-equals-delete.IgnoreMacros + value: "1" + - key: modernize-use-nodiscard.ReplacementString + value: "[[nodiscard]]" + - key: modernize-use-noexcept.ReplacementString + value: "" + - key: modernize-use-noexcept.UseNoexceptFalse + value: "1" + - key: modernize-use-nullptr.NullMacros + value: "NULL" + - key: modernize-use-override.AllowOverrideAndFinal + value: "0" + - key: modernize-use-override.FinalSpelling + value: final + - key: modernize-use-override.IgnoreDestructors + value: "0" + - key: modernize-use-override.OverrideSpelling + value: override + - key: modernize-use-transparent-functors.SafeMode + value: "0" + - key: modernize-use-using.IgnoreMacros + value: "1" + - key: performance-faster-string-find.StringLikeClasses + value: std::basic_string + - key: performance-for-range-copy.AllowedTypes + value: "" + - key: performance-for-range-copy.WarnOnAllAutoCopies + value: "0" + - key: performance-inefficient-string-concatenation.StrictMode + value: "0" + - key: performance-inefficient-vector-operation.EnableProto + value: "0" + - key: performance-inefficient-vector-operation.VectorLikeClasses + value: ::std::vector + - key: performance-move-const-arg.CheckTriviallyCopyableMove + value: "1" + - key: performance-move-constructor-init.IncludeStyle + value: google + - key: performance-no-automatic-move.AllowedTypes + value: "" + - key: performance-type-promotion-in-math-fn.IncludeStyle + value: google + - key: performance-unnecessary-copy-initialization.AllowedTypes + value: "" + - key: performance-unnecessary-value-param.AllowedTypes + value: .*Ptr;.*SharedFuture + - key: performance-unnecessary-value-param.IncludeStyle + value: google + - key: portability-simd-intrinsics.Std + value: "" + - key: portability-simd-intrinsics.Suggest + value: "0" + - key: readability-function-cognitive-complexity.IgnoreMacros + value: "1" + - key: readability-else-after-return.WarnOnUnfixable + value: "1" + - key: readability-identifier-naming.NamespaceCase + value: lower_case + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.PrivateMemberSuffix + value: _ + - key: readability-identifier-naming.StructCase + value: CamelCase + - key: readability-identifier-naming.FunctionCase + value: lower_case + - key: readability-identifier-naming.VariableCase + value: lower_case + - key: readability-identifier-naming.GlobalConstantCase + value: lower_case + - key: readability-identifier-naming.GlobalConstantPrefix + value: g_ + - key: readability-identifier-naming.ConstexprVariableCase + value: lower_case + - key: readability-inconsistent-declaration-parameter-name.IgnoreMacros + value: "1" + - key: readability-inconsistent-declaration-parameter-name.Strict + value: "0" + - key: readability-redundant-smartptr-get.IgnoreMacros + value: "1" + - key: readability-redundant-string-init.StringNames + value: ::std::basic_string + - key: readability-simplify-subscript-expr.Types + value: ::std::basic_string;::std::basic_string_view;::std::vector;::std::array + - key: readability-static-accessed-through-instance.NameSpecifierNestingThreshold + value: "3"