---
HeaderFilterRegex: '.*'
# disable clang-analyzer-core.UndefinedBinaryOperatorResult
#   ROOT throws lots of them in their headers
# Bugprone:
#   These could cause actual bugs.
# C++ Core Guidelines
# * cppcoreguidelines-virtual-class-destructor
#   Avoid undefined behaviour
# * cppcoreguidelines-pro-type-cstyle-cast
#   Avoid C-Style Casts which might be problematic
# * -bugprone-multi-level-implicit-pointer-conversion
#   Triggered by ROOT's TTree::SetBranchAddress(void*) API pattern
# google-build-using-namespace:
#   "using namespace" imports a changing amount of symbols, avoid it
# readability-simplify-boolean-expr:
#   Simplify boolean expressions for clarity
# modernize-use-nullptr:
#   Use nullptr instead of NULL or 0 for pointer types
# modernize-use-override:
#   Ensure overriding functions use the override keyword
# modernize-use-equals-default:
#   Use = default for trivial special member functions
# performance-unnecessary-value-param:
#   Pass large objects by const reference instead of by value
Checks: >-
  -clang-analyzer-core.UndefinedBinaryOperatorResult,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-narrowing-conversions,
  -bugprone-virtual-near-miss,
  -bugprone-unhandled-self-assignment,
  -bugprone-reserved-identifier,
  -bugprone-multi-level-implicit-pointer-conversion,
  cppcoreguidelines-pro-type-cstyle-cast,
  cppcoreguidelines-virtual-class-destructor,
  modernize-make-unique,
  modernize-use-nullptr,
  modernize-use-override,
  modernize-use-equals-default,
  performance-unnecessary-value-param,
  google-build-using-namespace,
  readability-simplify-boolean-expr
