HeaderFilterRegex: '(^|/)backend/(include|lib|tools|utils|unittests)/'
WarningsAsErrors: ''
FormatStyle: file
Checks: >
  -*,
  clang-diagnostic-*,
  bugprone-*,
  -bugprone-easily-swappable-parameters,
  performance-*,
  -performance-enum-size,
  portability-*,
  llvm-namespace-comment,
  llvm-qualified-auto,
  misc-definitions-in-headers,
  misc-misplaced-const,
  misc-new-delete-overloads,
  misc-non-copyable-objects,
  modernize-use-default-member-init,
  modernize-use-equals-default,
  modernize-use-equals-delete,
  modernize-use-nullptr,
  modernize-use-override,
  readability-container-size-empty,
  readability-identifier-naming,
  readability-redundant-*,
  readability-simplify-boolean-expr

CheckOptions:
  - { key: readability-identifier-naming.NamespaceCase,             value: lower_case }
  - { key: readability-identifier-naming.ClassCase,                 value: CamelCase  }
  - { key: readability-identifier-naming.StructCase,                value: CamelCase  }
  - { key: readability-identifier-naming.UnionCase,                 value: CamelCase  }
  - { key: readability-identifier-naming.EnumCase,                  value: CamelCase  }
  - { key: readability-identifier-naming.TypeAliasCase,             value: CamelCase  }
  - { key: readability-identifier-naming.TypedefCase,               value: CamelCase  }
  - { key: readability-identifier-naming.TypeTemplateParameterCase, value: CamelCase  }
  - { key: readability-identifier-naming.FunctionCase,              value: camelBack  }
  - { key: readability-identifier-naming.MethodCase,                value: camelBack  }
  - { key: readability-identifier-naming.VariableCase,              value: CamelCase  }
  - { key: readability-identifier-naming.ParameterCase,             value: CamelCase  }
  - { key: readability-identifier-naming.MemberCase,                value: CamelCase  }
  - { key: readability-identifier-naming.GlobalConstantCase,        value: CamelCase  }
  - { key: readability-identifier-naming.ConstexprVariableCase,     value: CamelCase  }
  - { key: readability-identifier-naming.ClassConstantCase,         value: CamelCase  }
  - { key: readability-identifier-naming.EnumConstantCase,          value: CamelCase  }
  # Preserve canonical protocol, opcode, ABI, and ISA spellings.
  - { key: readability-identifier-naming.EnumConstantIgnoredRegexp, value: '^([A-Z][A-Z0-9_]*|Pseudo[A-Z0-9_]+)$' }
  - { key: readability-identifier-naming.MacroDefinitionCase,       value: UPPER_CASE }
  - { key: readability-identifier-naming.IgnoreMainLikeFunctions,   value: 1          }
  - { key: readability-redundant-member-init.IgnoreBaseInCopyConstructors, value: 1    }
  - { key: modernize-use-default-member-init.UseAssignment,         value: 1          }
