1# Copyright 2024 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15--- 16UseColor: true 17 18Checks: > 19 bugprone-argument-comment, 20 bugprone-assert-side-effect, 21 bugprone-bool-pointer-implicit-conversion, 22 bugprone-dangling-handle, 23 bugprone-fold-init-type, 24 bugprone-forward-declaration-namespace, 25 bugprone-inaccurate-erase, 26 bugprone-macro-repeated-side-effects, 27 bugprone-move-forwarding-reference, 28 bugprone-multiple-statement-macro, 29 bugprone-string-constructor, 30 bugprone-suspicious-memset-usage, 31 bugprone-swapped-arguments, 32 bugprone-undefined-memory-manipulation, 33 bugprone-undelegated-constructor, 34 bugprone-unused-raii, 35 bugprone-use-after-move, 36 clang-diagnostic-*, 37 -clang-analyzer-*, 38 darwin-avoid-spinlock, 39 google-build-explicit-make-pair, 40 google-build-namespaces, 41 google-default-arguments, 42 google-global-names-in-headers, 43 google-readability-function-size, 44 google-readability-namespace-comments, 45 google-runtime-operator, 46 misc-static-assert, 47 misc-unconventional-assign-operator, 48 misc-unused-using-decls, 49 modernize-avoid-bind, 50 modernize-deprecated-ios-base-aliases, 51 modernize-make-shared, 52 modernize-make-unique, 53 modernize-replace-auto-ptr, 54 modernize-replace-disallow-copy-and-assign-macro, 55 modernize-replace-random-shuffle, 56 modernize-shrink-to-fit, 57 modernize-unary-static-assert, 58 modernize-use-bool-literals, 59 modernize-use-equals-delete, 60 modernize-use-noexcept, 61 modernize-use-nullptr, 62 modernize-use-override, 63 modernize-use-transparent-functors, 64 modernize-use-uncaught-exceptions, 65 performance-faster-string-find, 66 performance-for-range-copy, 67 performance-implicit-conversion-in-loop, 68 performance-inefficient-algorithm, 69 performance-inefficient-vector-operation, 70 performance-move-constructor-init, 71 readability-container-size-empty, 72 readability-inconsistent-declaration-parameter-name, 73 readability-misleading-indentation, 74 readability-redundant-control-flow, 75 readability-redundant-smartptr-get, 76 readability-string-compare, 77WarningsAsErrors: > 78 *, 79 -clang-diagnostic-deprecated-declarations, 80 -clang-diagnostic-unused-command-line-argument 81HeaderFilterRegex: '.*' 82ExcludeHeaderFilterRegex: 'external/.*' 83... 84 85# Disabled checks: 86# 87# clang-analyzer-*: 88# 89# performance-* 90# bugprone-* 91# cert-* 92# misc-* 93# readability-* 94# 95# Checks marked with @ should be reenabled first 96# (the effort is minimal). 97# 98# modernize-avoid-c-arrays: 99# @ modernize-concat-nested-namespaces: 100# Note: added in c++17 101# modernize-deprecated-headers: 102# Advises to use <cheader> instead of <header.h> for 103# legacy headers 104# modernize-loop-convert: 105# @ modernize-pass-by-value: 106# @ modernize-raw-string-literal: 107# Note: added in c++11 108# @ modernize-redundant-void-arg: 109# modernize-return-braced-init-list: 110# @ modernize-use-auto: 111# Advises to use auto when initializing with a cast to 112# avoid duplicating the type name 113# modernize-use-default-member-init: 114# Note: added in c++11 115# Advises to use a default initializer in 116# member declarations 117# @ modernize-use-emplace: 118# @ modernize-use-equals-default: 119# Note: added in c++11 120# Advises to use '= default' for empty constructors or 121# destructors '{}' 122# modernize-use-nodiscard: 123# Note: added in c++17 124# @ modernize-use-override: 125# modernize-use-trailing-return-type: 126# Note: added in c++11 127# Used to delay the writing of the return type 128# to after the function parameters; does not make 129# sense to generalise its use. 130# modernize-use-using: 131# Note: added in c++11 132# Advises to use 'using' instead of 'typedef' 133