---
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2018-2025 Carles Fernandez-Prades <carles.fernandez@cttc.es>
Checks: >
  -*,
  boost-use-to-string,
  bugprone-argument-comment,
  bugprone-assert-side-effect,
  bugprone-bool-pointer-implicit-conversion,
  bugprone-copy-constructor-init,
  bugprone-dangling-handle,
  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-parent-virtual-call,
  bugprone-redundant-branch-condition,
  bugprone-reserved-identifier,
  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-undefined-memory-manipulation,
  bugprone-undelegated-constructor,
  bugprone-unused-raii,
  bugprone-unused-return-value,
  bugprone-use-after-move,
  bugprone-virtual-near-miss,
  cert-dcl21-cpp,
  cert-dcl58-cpp,
  cert-env33-c,
  cert-err52-cpp,
  cert-err60-cpp,
  cert-flp30-c,
  cert-msc50-cpp,
  cert-msc51-cpp,
  clang-analyzer-cplusplus.*,
  clang-analyzer-optin.performance.*,
  clang-analyzer-optin.portability.UnixAPI,
  clang-analyzer-security.*,
  cppcoreguidelines-prefer-member-initializer,
  cppcoreguidelines-pro-type-cstyle-cast,
  cppcoreguidelines-pro-type-static-cast-downcast,
  cppcoreguidelines-slicing,
  cppcoreguidelines-special-member-functions,
  google-build-namespaces,
  google-global-names-in-headers,
  google-runtime-int,
  hicpp-exception-baseclass,
  hicpp-explicit-conversions,
  hicpp-noexcept-move,
  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-uniqueptr-reset-release,
  misc-unused-using-decls,
  modernize-avoid-bind,
  modernize-use-default-member-init,
  modernize-deprecated-headers,
  modernize-loop-convert,
  modernize-raw-string-literal,
  modernize-redundant-void-arg,
  modernize-return-braced-init-list,
  modernize-shrink-to-fit,
  modernize-use-auto,
  modernize-use-bool-literals,
  modernize-use-emplace,
  modernize-use-equals-default,
  modernize-use-equals-delete,
  modernize-use-noexcept,
  modernize-use-nullptr,
  modernize-use-override,
  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-noexcept-move-constructor,
  performance-type-promotion-in-math-fn,
  performance-unnecessary-copy-initialization,
  performance-unnecessary-value-param,
  readability-avoid-const-params-in-decls,
  readability-braces-around-statements,
  readability-container-size-empty,
  readability-identifier-naming,
  readability-inconsistent-declaration-parameter-name,
  readability-isolate-declaration,
  readability-make-member-function-const,
  readability-named-parameter,
  readability-non-const-parameter,
  readability-qualified-auto,
  readability-redundant-control-flow,
  readability-redundant-member-init,
  readability-string-compare,
  readability-uppercase-literal-suffix
WarningsAsErrors: ''
HeaderFilterRegex: ''
FormatStyle: 'file'
CheckOptions:
  - key: performance-unnecessary-copy-initialization.ExcludedContainerTypes
    value: ''
  - key: modernize-replace-auto-ptr.IncludeStyle
    value: llvm
  - key: performance-move-const-arg.CheckTriviallyCopyableMove
    value: 'true'
  - key: modernize-use-auto.MinTypeNameLength
    value: '5'
  - key: bugprone-reserved-identifier.Invert
    value: 'false'
  - 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;
      std::back_inserter;
      std::distance;
      std::find;
      std::find_if;
      std::inserter;
      std::lower_bound;
      std::make_pair;
      std::map::count;
      std::map::find;
      std::map::lower_bound;
      std::multimap::equal_range;
      std::multimap::upper_bound;
      std::set::count;
      std::set::find;
      std::setfill;
      std::setprecision;
      std::setw;
      std::upper_bound;
      std::vector::at;
      ::bsearch;
      ::ferror;
      ::feof;
      ::isalnum;
      ::isalpha;
      ::isblank;
      ::iscntrl;
      ::isdigit;
      ::isgraph;
      ::islower;
      ::isprint;
      ::ispunct;
      ::isspace;
      ::isupper;
      ::iswalnum;
      ::iswprint;
      ::iswspace;
      ::isxdigit;
      ::memchr;
      ::memcmp;
      ::strcmp;
      ::strcoll;
      ::strncmp;
      ::strpbrk;
      ::strrchr;
      ::strspn;
      ::strstr;
      ::wcscmp;
      ::access;
      ::bind;
      ::connect;
      ::difftime;
      ::dlsym;
      ::fnmatch;
      ::getaddrinfo;
      ::getopt;
      ::htonl;
      ::htons;
      ::iconv_open;
      ::inet_addr;
      ::isascii;
      ::isatty;
      ::mmap;
      ::newlocale;
      ::openat;
      ::pathconf;
      ::pthread_equal;
      ::pthread_getspecific;
      ::pthread_mutex_trylock;
      ::readdir;
      ::readlink;
      ::recvmsg;
      ::regexec;
      ::scandir;
      ::semget;
      ::setjmp;
      ::shm_open;
      ::shmget;
      ::sigismember;
      ::strcasecmp;
      ::strsignal;
      ::ttyname
  - key: cert-dcl16-c.NewSuffixes
    value: 'L;LL;LU;LLU'
  - key: readability-identifier-naming.GetConfigPerFile
    value: 'true'
  - key: readability-inconsistent-declaration-parameter-name.Strict
    value: 'false'
  - key: modernize-use-default-member-init.UseAssignment
    value: 'false'
  - key: modernize-use-override.AllowOverrideAndFinal
    value: 'false'
  - key: modernize-loop-convert.IncludeStyle
    value: llvm
  - key: cert-str34-c.DiagnoseSignedUnsignedCharComparisons
    value: 'false'
  - key: misc-uniqueptr-reset-release.IncludeStyle
    value: llvm
  - key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison
    value: 'false'
  - key: readability-identifier-naming.AggressiveDependentMemberLookup
    value: 'false'
  - key: bugprone-suspicious-string-compare.WarnOnImplicitComparison
    value: 'true'
  - key: modernize-use-emplace.TupleTypes
    value: 'std::pair;std::tuple'
  - key: modernize-use-emplace.TupleMakeFunctions
    value: 'std::make_pair;std::make_tuple'
  - key: bugprone-argument-comment.CommentNullPtrs
    value: '0'
  - key: bugprone-argument-comment.StrictMode
    value: '0'
  - key: modernize-loop-convert.MakeReverseRangeHeader
    value: ''
  - key: modernize-use-bool-literals.IgnoreMacros
    value: 'true'
  - key: google-readability-namespace-comments.ShortNamespaceLines
    value: '10'
  - key: bugprone-suspicious-string-compare.StringCompareLikeFunctions
    value: ''
  - key: modernize-avoid-bind.PermissiveParameterList
    value: 'false'
  - key: modernize-use-override.FinalSpelling
    value: final
  - key: modernize-loop-convert.UseCxx20ReverseRanges
    value: 'true'
  - key: modernize-use-noexcept.ReplacementString
    value: ''
  - key: cppcoreguidelines-prefer-member-initializer.UseAssignment
    value: 'false'
  - key: performance-type-promotion-in-math-fn.IncludeStyle
    value: llvm
  - key: modernize-loop-convert.NamingStyle
    value: CamelCase
  - key: bugprone-suspicious-missing-comma.SizeThreshold
    value: '5'
  - key: readability-inconsistent-declaration-parameter-name.IgnoreMacros
    value: 'true'
  - key: performance-for-range-copy.WarnOnAllAutoCopies
    value: 'false'
  - key: bugprone-argument-comment.CommentIntegerLiterals
    value: '0'
  - key: google-runtime-int.UnsignedTypePrefix
    value: uint
  - key: modernize-loop-convert.MakeReverseRangeFunction
    value: ''
  - key: readability-identifier-naming.IgnoreFailedSplit
    value: 'false'
  - key: modernize-pass-by-value.IncludeStyle
    value: llvm
  - key: readability-qualified-auto.AddConstToQualified
    value: 'true'
  - key: bugprone-sizeof-expression.WarnOnSizeOfThis
    value: 'true'
  - key: bugprone-string-constructor.WarnOnLargeLength
    value: 'true'
  - key: bugprone-argument-comment.CommentCharacterLiterals
    value: '0'
  - key: bugprone-too-small-loop-variable.MagnitudeBitsUpperLimit
    value: '16'
  - key: bugprone-argument-comment.CommentFloatLiterals
    value: '0'
  - key: google-global-names-in-headers.HeaderFileExtensions
    value: ';h;hh;hpp;hxx'
  - key: readability-uppercase-literal-suffix.IgnoreMacros
    value: 'true'
  - key: modernize-use-nullptr.NullMacros
    value: 'NULL'
  - key: bugprone-suspicious-enum-usage.StrictMode
    value: 'false'
  - key: performance-unnecessary-copy-initialization.AllowedTypes
    value: ''
  - key: bugprone-suspicious-missing-comma.MaxConcatenatedTokens
    value: '5'
  - key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries
    value: 'true'
  - key: bugprone-string-constructor.LargeLengthThreshold
    value: '8388608'
  - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
    value: 'false'
  - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField
    value: 'false'
  - key: bugprone-exception-escape.FunctionsThatShouldNotThrow
    value: ''
  - key: performance-inefficient-vector-operation.EnableProto
    value: 'false'
  - key: bugprone-argument-comment.CommentStringLiterals
    value: '0'
  - key: modernize-loop-convert.MaxCopySize
    value: '16'
  - key: google-build-namespaces.HeaderFileExtensions
    value: ';h;hh;hpp;hxx'
  - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors
    value: 'true'
  - key: performance-for-range-copy.AllowedTypes
    value: ''
  - key: modernize-use-override.IgnoreDestructors
    value: 'false'
  - key: bugprone-sizeof-expression.WarnOnSizeOfConstant
    value: 'true'
  - key: modernize-use-emplace.ContainersWithPushBack
    value: 'std::vector;std::list;std::deque'
  - key: bugprone-argument-comment.CommentBoolLiterals
    value: '0'
  - key: readability-braces-around-statements.ShortStatementLines
    value: '0'
  - key: bugprone-argument-comment.CommentUserDefinedLiterals
    value: '0'
  - key: modernize-use-override.OverrideSpelling
    value: override
  - key: performance-inefficient-string-concatenation.StrictMode
    value: 'false'
  - key: google-readability-braces-around-statements.ShortStatementLines
    value: '1'
  - key: google-runtime-int.TypeSuffix
    value: _t
  - key: bugprone-reserved-identifier.AllowedIdentifiers
    value: '_pb;_pbi'
  - key: modernize-use-emplace.IgnoreImplicitConstructors
    value: 'false'
  - key: modernize-use-equals-delete.IgnoreMacros
    value: 'true'
  - key: bugprone-misplaced-widening-cast.CheckImplicitCasts
    value: 'false'
  - key: readability-uppercase-literal-suffix.NewSuffixes
    value: ''
  - key: modernize-loop-convert.MinConfidence
    value: reasonable
  - key: performance-unnecessary-value-param.AllowedTypes
    value: ''
  - key: bugprone-suspicious-missing-comma.RatioThreshold
    value: '0.200000'
  - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted
    value: 'false'
  - key: modernize-use-noexcept.UseNoexceptFalse
    value: 'true'
  - key: google-readability-namespace-comments.SpacesBeforeComments
    value: '2'
  - key: misc-throw-by-value-catch-by-reference.MaxSize
    value: '64'
  - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
    value: 'true'
  - key: bugprone-argument-comment.IgnoreSingleArgument
    value: '0'
  - key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression
    value: 'false'
  - key: performance-faster-string-find.StringLikeClasses
    value: 'std::basic_string;std::basic_string_view'
  - key: bugprone-assert-side-effect.CheckFunctionCalls
    value: 'false'
  - key: bugprone-string-constructor.StringNames
    value: '::std::basic_string;::std::basic_string_view'
  - key: bugprone-assert-side-effect.AssertMacros
    value: assert
  - key: bugprone-exception-escape.IgnoredExceptions
    value: ''
  - key: modernize-use-default-member-init.IgnoreMacros
    value: 'true'
  - key: llvm-qualified-auto.AddConstToQualified
    value: 'false'
  - key: readability-identifier-naming.IgnoreMainLikeFunctions
    value: 'false'
  - key: google-runtime-int.SignedTypePrefix
    value: int
  - key: google-readability-function-size.StatementThreshold
    value: '800'
  - key: llvm-else-after-return.WarnOnConditionVariables
    value: 'false'
  - key: cert-msc51-cpp.DisallowedSeedTypes
    value: 'time_t,std::time_t'
  - key: bugprone-sizeof-expression.WarnOnSizeOfCompareToConstant
    value: 'true'
  - key: bugprone-reserved-identifier.AggressiveDependentMemberLookup
    value: 'false'
  - key: modernize-raw-string-literal.DelimiterStem
    value: lit
  - key: modernize-use-equals-default.IgnoreMacros
    value: 'true'
  - key: misc-throw-by-value-catch-by-reference.WarnOnLargeObjects
    value: 'false'
  - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
    value: 'false'
  - key: modernize-raw-string-literal.ReplaceShorterLiterals
    value: 'false'
  - key: modernize-use-emplace.SmartPointers
    value: 'std::shared_ptr;std::unique_ptr;std::auto_ptr;std::weak_ptr'
  - key: performance-inefficient-vector-operation.VectorLikeClasses
    value: 'std::vector'
  - key: modernize-use-auto.RemoveStars
    value: 'false'
  - key: bugprone-dangling-handle.HandleClasses
    value: 'std::basic_string_view;std::experimental::basic_string_view'
  - key: performance-unnecessary-value-param.IncludeStyle
    value: llvm
  - key: readability-redundant-member-init.IgnoreBaseInCopyConstructors
    value: 'false'
  - key: llvm-else-after-return.WarnOnUnfixable
    value: 'false'
...
