# Correlation C++20/C++23 Static Analysis Configuration
# SPDX-License-Identifier: AGPL-3.0-only
---
Checks: >
  bugprone-*,
  cert-*,
  clang-analyzer-*,
  cppcoreguidelines-*,
  misc-*,
  modernize-*,
  performance-*,
  readability-*,
  -modernize-use-trailing-return-type,
  -cppcoreguidelines-avoid-magic-numbers,
  -readability-magic-numbers,
  -cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -misc-include-cleaner,
  -readability-math-missing-parentheses,
  -cppcoreguidelines-pro-type-reinterpret-cast

HeaderFilterRegex: '^(?!.*(build/|build-fuzz/|/usr/|/opt/|pdfgen|RobotoData)).*$'
FormatStyle: file
WarningsAsErrors: 'bugprone-*,cert-*,performance-*'

CheckOptions:
  bugprone-easily-swappable-parameters.MinimumLength: '3'
  cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor: 'true'
  misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: 'true'
  modernize-loop-convert.MinConfidence: 'reasonable'
  modernize-use-auto.MinConfidence: 'reasonable'
  readability-function-cognitive-complexity.Threshold: '25'
  readability-identifier-length.IgnoredVariableNames: '^(x|y|z|a|b|c|r|q|q[0-9]|p[0-9]|pi|PI)$'
  readability-identifier-naming.ClassCase: 'CamelCase'
  readability-identifier-naming.StructCase: 'CamelCase'
  readability-identifier-naming.FunctionCase: 'camelBack'
  readability-identifier-naming.MethodCase: 'camelBack'
  readability-identifier-naming.VariableCase: 'lower_case'
  readability-identifier-naming.ConstantCase: 'UPPER_CASE'
  readability-identifier-naming.EnumConstantCase: 'CamelCase'
  readability-identifier-naming.ScopedEnumConstantCase: 'CamelCase'
  readability-identifier-naming.ConstexprVariableCase: 'UPPER_CASE'
  readability-identifier-naming.ClassConstantCase: 'UPPER_CASE'
  readability-identifier-naming.StructConstantCase: 'UPPER_CASE'
  readability-identifier-naming.MemberConstantCase: 'UPPER_CASE'
  readability-identifier-naming.StaticConstantCase: 'UPPER_CASE'
  readability-identifier-naming.GlobalConstantCase: 'UPPER_CASE'
  readability-identifier-naming.LocalConstantCase: 'lower_case'
  readability-identifier-naming.ParameterCase: 'lower_case'
  readability-identifier-naming.PrivateMemberSuffix: '_'
  readability-identifier-naming.ProtectedMemberSuffix: '_'
  readability-identifier-naming.ClassIgnoredRegexp: '.*_Test|.*_.*'
  readability-identifier-naming.FunctionIgnoredRegexp: 'LLVMFuzzer.*|init_.*'
  readability-identifier-naming.ConstexprVariableIgnoredRegexp: 'hip.*|threadIdx|blockIdx|blockDim'
  readability-identifier-naming.GlobalConstantIgnoredRegexp: 'hip.*|threadIdx|blockIdx|blockDim'
  readability-identifier-naming.StructIgnoredRegexp: 'dim3'

