blob: c7d0dadc33fcf2c45ca80a9e63ebcca55b92dc2f [file] [edit]
FormatStyle: file
Checks:
# Enable interesting groups of checks.
- abseil-*
- bugprone-*
- cert-*
- concurrency-*
- cppcoreguidelines-*
- google-*
- misc-*
- modernize-*
- performance-*
- portability-*
- readability-*
# Checks we're not really interested in re-enabling.
# - Prefers #ifdef over #if defined. Triggers a lot and doesn't really matter.
- -readability-use-concise-preprocessor-directives
# - Aliases of other checks. When adding a check here, verify that it didn't
# disable the check you wanted.
- -cppcoreguidelines-explicit-constructor # google-explicit-constructor
- -misc-explicit-constructor # google-explicit-constructor
# Untriaged checks that weren't passing on a first-pass over the codebase.
- -abseil-faster-strsplit-delimiter
- -abseil-string-find-startswith
- -abseil-string-find-str-contains
- -bugprone-argument-comment
- -bugprone-branch-clone
- -bugprone-copy-constructor-init
- -bugprone-crtp-constructor-accessibility
- -bugprone-easily-swappable-parameters
- -bugprone-forward-declaration-namespace
- -bugprone-forwarding-reference-overload
- -bugprone-infinite-loop
- -bugprone-integer-division
- -bugprone-lambda-function-name
- -bugprone-macro-parentheses
- -bugprone-misplaced-widening-cast
- -bugprone-move-forwarding-reference
- -bugprone-multi-level-implicit-pointer-conversion
- -bugprone-narrowing-conversions
- -bugprone-nondeterministic-pointer-iteration-order
- -bugprone-parent-virtual-call
- -bugprone-reserved-identifier
- -bugprone-return-const-ref-from-parameter
- -bugprone-signed-char-misuse
- -bugprone-sizeof-expression
- -bugprone-string-constructor
- -bugprone-suspicious-include
- -bugprone-suspicious-memory-comparison
- -bugprone-suspicious-stringview-data-usage
- -bugprone-swapped-arguments
- -bugprone-switch-missing-default-case
- -bugprone-throwing-static-initialization
- -bugprone-too-small-loop-variable
- -bugprone-unchecked-optional-access
- -bugprone-unhandled-self-assignment
- -bugprone-unintended-char-ostream-output
- -bugprone-unused-local-non-trivial-variable
- -bugprone-use-after-move
- -cert-arr39-c
- -cert-dcl16-c
- -cert-dcl21-cpp
- -cert-dcl37-c
- -cert-dcl50-cpp
- -cert-dcl51-cpp
- -cert-dcl54-cpp
- -cert-dcl58-cpp
- -cert-err33-c
- -cert-err34-c
- -cert-err58-cpp
- -cert-exp42-c
- -cert-flp37-c
- -cert-int09-c
- -cert-msc30-c
- -cert-msc32-c
- -cert-msc50-cpp
- -cert-msc51-cpp
- -cert-oop11-cpp
- -cert-oop54-cpp
- -cert-str34-c
- -concurrency-mt-unsafe
- -cppcoreguidelines-avoid-c-arrays
- -cppcoreguidelines-avoid-const-or-ref-data-members
- -cppcoreguidelines-avoid-do-while
- -cppcoreguidelines-avoid-goto
- -cppcoreguidelines-avoid-magic-numbers
- -cppcoreguidelines-avoid-non-const-global-variables
- -cppcoreguidelines-c-copy-assignment-signature
- -cppcoreguidelines-explicit-virtual-functions
- -cppcoreguidelines-init-variables
- -cppcoreguidelines-interfaces-global-init
- -cppcoreguidelines-macro-usage
- -cppcoreguidelines-missing-std-forward
- -cppcoreguidelines-narrowing-conversions
- -cppcoreguidelines-no-malloc
- -cppcoreguidelines-non-private-member-variables-in-classes
- -cppcoreguidelines-owning-memory
- -cppcoreguidelines-prefer-member-initializer
- -cppcoreguidelines-pro-bounds-array-to-pointer-decay
- -cppcoreguidelines-pro-bounds-avoid-unchecked-container-access
- -cppcoreguidelines-pro-bounds-constant-array-index
- -cppcoreguidelines-pro-bounds-pointer-arithmetic
- -cppcoreguidelines-pro-type-const-cast
- -cppcoreguidelines-pro-type-cstyle-cast
- -cppcoreguidelines-pro-type-reinterpret-cast
- -cppcoreguidelines-pro-type-static-cast-downcast
- -cppcoreguidelines-pro-type-union-access
- -cppcoreguidelines-pro-type-vararg
- -cppcoreguidelines-rvalue-reference-param-not-moved
- -cppcoreguidelines-slicing
- -cppcoreguidelines-special-member-functions
- -cppcoreguidelines-use-default-member-init
- -cppcoreguidelines-virtual-class-destructor
- -google-build-using-namespace
- -google-default-arguments
- -google-objc-function-naming
- -google-objc-global-variable-declaration
- -google-readability-avoid-underscore-in-googletest-name
- -google-readability-braces-around-statements
- -google-readability-casting
- -google-readability-function-size
- -google-readability-namespace-comments
- -google-readability-todo
- -google-runtime-float
- -google-runtime-int
- -misc-confusable-identifiers
- -misc-const-correctness
- -misc-include-cleaner
- -misc-misplaced-const
- -misc-new-delete-overloads
- -misc-no-recursion
- -misc-non-private-member-variables-in-classes
- -misc-redundant-expression
- -misc-unconventional-assign-operator
- -misc-uniqueptr-reset-release
- -misc-unused-parameters
- -misc-use-anonymous-namespace
- -misc-use-internal-linkage
- -modernize-avoid-c-arrays
- -modernize-concat-nested-namespaces
- -modernize-deprecated-headers
- -modernize-loop-convert
- -modernize-macro-to-enum
- -modernize-make-unique
- -modernize-min-max-use-initializer-list
- -modernize-pass-by-value
- -modernize-raw-string-literal
- -modernize-redundant-void-arg
- -modernize-return-braced-init-list
- -modernize-type-traits
- -modernize-unary-static-assert
- -modernize-use-auto
- -modernize-use-bool-literals
- -modernize-use-default-member-init
- -modernize-use-designated-initializers
- -modernize-use-emplace
- -modernize-use-equals-default
- -modernize-use-equals-delete
- -modernize-use-integer-sign-comparison
- -modernize-use-nodiscard
- -modernize-use-nullptr
- -modernize-use-ranges
- -modernize-use-starts-ends-with
- -modernize-use-std-format
- -modernize-use-std-numbers
- -modernize-use-trailing-return-type
- -modernize-use-transparent-functors
- -modernize-use-using
- -performance-enum-size
- -performance-faster-string-find
- -performance-for-range-copy
- -performance-inefficient-algorithm
- -performance-inefficient-string-concatenation
- -performance-move-const-arg
- -performance-no-automatic-move
- -performance-no-int-to-ptr
- -performance-noexcept-move-constructor
- -performance-trivially-destructible
- -performance-unnecessary-copy-initialization
- -performance-unnecessary-value-param
- -portability-template-virtual-member-function
- -readability-avoid-nested-conditional-operator
- -readability-avoid-return-with-void-value
- -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-else-after-return
- -readability-enum-initial-value
- -readability-fn_size
- -readability-function-cognitive-complexity
- -readability-function-size
- -readability-identifier-length
- -readability-implicit-bool-conversion
- -readability-inconsistent-declaration-parameter-name
- -readability-isolate-declaration
- -readability-magic-numbers
- -readability-make-member-function-const
- -readability-math-missing-parentheses
- -readability-named-parameter
- -readability-non-const-parameter
- -readability-qualified-auto
- -readability-redundant-access-specifiers
- -readability-redundant-casting
- -readability-redundant-control-flow
- -readability-redundant-declaration
- -readability-redundant-inline-specifier
- -readability-redundant-member-init
- -readability-redundant-parentheses
- -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-static-accessed-through-instance
- -readability-static-definition-in-anonymous-namespace
- -readability-suspicious-call-argument
- -readability-trailing-comma
- -readability-uppercase-literal-suffix
- -readability-use-anyofallof
- -readability-use-std-min-max
CheckOptions:
- key: cppcoreguidelines-avoid-do-while.IgnoreMacros
value: true
- key: readability-implicit-bool-conversion.AllowIntegerConditions
value: true
- key: readability-implicit-bool-conversion.AllowPointerConditions
value: true
- key: bugprone-assert-side-effect.AssertMacros
value: assert,NSAssert,NSCAssert,DAWN_ASSERT,DAWN_RELEASE_ASSUME
# It would be nice to use bugprone-assert-side-effect.CheckFunctionCalls,
# but it isn't smart enough and triggers on things like:
# - constexpr functions like std::numeric_limits::max()
# - templated methods https://github.com/llvm/llvm-project/issues/62878