Checks:
  - -*
  - bugprone-suspicious-memset-usage
  - bugprone-unchecked-optional-access
  - bugprone-undefined-memory-manipulation
  - bugprone-unused-raii
  - bugprone-use-after-move
  - google-readability-casting
  - misc-misleading-identifier
  - misc-misplaced-const
  - misc-non-copyable-objects
  - misc-throw-by-value-catch-by-reference
  - misc-redundant-expression
  - misc-unconventional-assign-operator
  - misc-static-assert
  - modernize-*
  - -modernize-avoid-c-arrays
  - -modernize-use-nodiscard
  - -modernize-use-integer-sign-comparison
  - -modernize-use-trailing-return-type
  - performance-unnecessary-copy-initialization
  - readability-*
  - -readability-avoid-nested-conditional-operator
  - -readability-braces-around-statements
  - -readability-convert-member-functions-to-static
  - -readability-else-after-return
  - -readability-enum-initial-value
  - -readability-function-cognitive-complexity
  - -readability-function-size
  - -readability-identifier-length
  - -readability-implicit-bool-conversion
  - -readability-isolate-declaration
  - -readability-magic-numbers
  - -readability-make-member-function-const
  - -readability-suspicious-call-argument

CheckOptions:
  # gcc and llvm did not introduce <format> when supporting C++20, so using
  # std::format is temporarily not allowed.
  # see issue https://github.com/bpftrace/bpftrace/issues/4185
  modernize-use-std-format.ReplacementFormat: "DISALLOW"

WarningsAsErrors: "*"
UseColor: true
HeaderFilterRegex: ".*"
ExcludeHeaderFilterRegex: ".*/(parser\\.tab|location)\\.hh"
