| # Disabled some clang-analyzer static checks, need some more investigation. |
| # TODO(hzeller) fix and re-enable clang-analyzer checks. |
| # TODO(hzeller) Looking over magic numbers might be good, but probably |
| # not worthwhile hard-failing |
| # TODO(hzeller) Explore anofalloff suggestions. |
| # |
| # readability-make-member-function-const is great, but it also suggests that |
| # in cases where we return a non-const pointer. So good to check, not by |
| # default. |
| # |
| # readability-qualified-auto is useful in general, however it suggests |
| # to convert iterators (e.g. std::string_view::begin()) to the pointer it |
| # returns; however since the iterator is implementation defined, this is not |
| # a valid assertion. Running the check every now and then manually and |
| # fixing all the non-iterator cases is useful though. Off by default. |
| # |
| # misc-const-correctness: useful, but it seems to be overzealous at times. |
| # |
| # modernize-make-unique: mostly correct, but wants to also replace .reset() |
| # which is a more readable way than assign. |
| # |
| # misc-include-cleaner: we do not exclude it here, as it is useful in itself |
| # locally running clang tidy checks (and potentially language |
| # server support); but since code is not 'clean' yet, we |
| # exclude it in the CI run. |
| # Config: don't flag *_linter_test_utils.h as they define a test |
| # template spezialization that clang-tidy fails to see is necessary. |
| # |
| # NOTE: Below, there must be no comments, otherwise clang tidy silently ignores |
| # rules... (ask me how I know). |
| ### |
| Checks: > |
| clang-diagnostic-*, |
| clang-analyzer-*, |
| -clang-analyzer-core.NonNullParamChecker, |
| -clang-analyzer-cplusplus.InnerPointer, |
| -clang-analyzer-optin.core.EnumCastOutOfRange, |
| -clang-analyzer-optin.performance.Padding, |
| abseil-*, |
| -abseil-no-namespace, |
| readability-*, |
| -readability-avoid-nested-conditional-operator, |
| -readability-avoid-unconditional-preprocessor-if, |
| -readability-braces-around-statements, |
| -readability-convert-member-functions-to-static, |
| -readability-function-cognitive-complexity, |
| -readability-identifier-length, |
| -readability-implicit-bool-conversion, |
| -readability-isolate-declaration, |
| -readability-magic-numbers, |
| -readability-make-member-function-const, |
| -readability-math-missing-parentheses, |
| -readability-named-parameter, |
| -readability-qualified-auto, |
| -readability-redundant-access-specifiers, |
| -readability-simplify-boolean-expr, |
| -readability-static-definition-in-anonymous-namespace, |
| -readability-uppercase-literal-suffix, |
| -readability-use-anyofallof, |
| google-*, |
| -google-readability-avoid-underscore-in-googletest-name, |
| -google-readability-casting, |
| -google-readability-todo, |
| performance-*, |
| -performance-avoid-endl, |
| -performance-enum-size, |
| bugprone-*, |
| -bugprone-branch-clone, |
| -bugprone-easily-swappable-parameters, |
| -bugprone-exception-escape, |
| -bugprone-inc-dec-in-conditions, |
| -bugprone-macro-parentheses, |
| -bugprone-move-forwarding-reference, |
| -bugprone-narrowing-conversions, |
| -bugprone-suspicious-missing-comma, |
| modernize-*, |
| -modernize-avoid-bind, |
| -modernize-avoid-c-arrays, |
| -modernize-concat-nested-namespaces, |
| -modernize-make-shared, |
| -modernize-make-unique, |
| -modernize-pass-by-value, |
| -modernize-raw-string-literal, |
| -modernize-return-braced-init-list, |
| -modernize-type-traits, |
| -modernize-use-auto, |
| -modernize-use-emplace, |
| -modernize-use-nodiscard, |
| -modernize-use-trailing-return-type, |
| -modernize-use-transparent-functors, |
| misc-*, |
| -misc-const-correctness, |
| -misc-no-recursion, |
| -misc-non-private-member-variables-in-classes, |
| -misc-redundant-expression, |
| -misc-unused-parameters, |
| -misc-use-anonymous-namespace, |
| |
| CheckOptions: |
| - key: misc-include-cleaner.IgnoreHeaders |
| value: .*-linter-test-utils\.h |