# Copyright (c) 2022, 2025, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is designed to work with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation.  The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have either included with
# the program or referenced in the documentation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA

Checks:
  -*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  -bugprone-narrowing-conversions,
  clang-analyzer-*,
  -clang-diagnostic-unused-function,
  cppcoreguidelines-*,
  -cppcoreguidelines-avoid-c-arrays,
  -cppcoreguidelines-avoid-magic-numbers,
  -cppcoreguidelines-avoid-non-const-global-variables,
  -cppcoreguidelines-pro-bounds-constant-array-index,
  -cppcoreguidelines-pro-bounds-pointer-arithmetic,
  -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
  -cppcoreguidelines-pro-type-vararg,
  -cppcoreguidelines-non-private-member-variables-in-classes,
  -cppcoreguidelines-pro-type-reinterpret-cast,
  -cppcoreguidelines-narrowing-conversions,
  google-*,
  -google-readability-todo,
  -google-readability-braces-around-statements,
  -google-runtime-int,
  -google-build-using-namespace,
  misc-*,
  -misc-const-correctness,
  -misc-non-private-member-variables-in-classes,
  modernize-use-nullptr,
  llvm-*,
  -llvm-header-guard,
  -llvm-include-order,
  performance-*,
  readability-*,
  -readability-braces-around-statements,
  -readability-named-parameter,
  -readability-redundant-member-init,
  -readability-magic-numbers,
  -clang-diagnostic-error,



CheckOptions:
  - key:        readability-magic-numbers.IgnoredIntegerValues
    value:      "1;2;3;4;8;9;10;15;32;127;128;240;255"
  # Allow things like CHARSET_INFO cs;
  - key:             readability-identifier-length.MinimumParameterNameLength
    value:           2
  - key:             readability-identifier-length.MinimumVariableNameLength
    value:           2
  - key: readability-function-cognitive-complexity.Threshold
    value: 50

FormatStyle: "file"
