xref: /aosp_15_r20/external/grpc-grpc/.clang-tidy (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1---
2# Note on checks are disabled on purpose
3#
4# - abseil-cleanup-ctad
5#   Requires C++17 and higher.
6#
7# - abseil-no-namespace
8#   https://bugs.llvm.org/show_bug.cgi?id=47947
9#
10# - bugprone-exception-escape
11#   https://github.com/llvm/llvm-project/issues/54668 (seems to be fixed in LLVM17)
12#
13# - bugprone-reserved-identifier
14#   Some macros need to be defined for portability purpose; e.g. _BSD_SOURCE.
15#
16# - modernize-redundant-void-arg
17#   Some source should be strictly C99 and func(void) should be used.
18#
19# - google-readability-casting
20#   https://github.com/llvm/llvm-project/issues/57959
21#
22# Note on checks which will be enabled in future. These are good to have but
23# it's not activated yet due to the existing issues with the checks.
24# Once those issues are clear, these checks can be enabled later.
25#
26# - bugprone-assignment-in-if-condition
27# - bugprone-branch-clone
28# - bugprone-easily-swappable-parameters
29# - bugprone-implicit-widening-of-multiplication-result
30# - bugprone-infinite-loop
31# - bugprone-narrowing-conversions
32# - bugprone-not-null-terminated-result
33# - bugprone-signed-char-misuse
34# - bugprone-sizeof-expression
35# - bugprone-switch-missing-default-case
36# - bugprone-too-small-loop-variable
37# - bugprone-unchecked-optional-access
38# - clang-diagnostic-deprecated-declarations
39# - clang-diagnostic-unused-function
40# - google-runtime-int
41# - google-runtime-references
42# - modernize-avoid-bind
43# - modernize-deprecated-headers
44# - modernize-loop-convert
45# - modernize-pass-by-value
46# - modernize-raw-string-literal
47# - modernize-return-braced-init-list
48# - modernize-use-auto
49# - modernize-use-default-member-init
50# - modernize-use-emplace
51# - modernize-use-equals-default
52# - modernize-use-equals-delete
53# - modernize-use-using
54# - performance-avoid-endl
55# - performance-no-automatic-move
56# - performance-no-int-to-ptr
57# - performance-noexcept-swap
58# - performance-unnecessary-copy-initialization
59# - performance-unnecessary-value-param
60# - readability-else-after-return
61# - readability-implicit-bool-conversion
62# - readability-redundant-declaration
63# - readability-redundant-string-cstr
64#
65Checks: '-*,
66  abseil-*,
67  -abseil-cleanup-ctad,
68  -abseil-no-namespace,
69  bugprone-*,
70  -bugprone-assignment-in-if-condition,
71  -bugprone-branch-clone,
72  -bugprone-easily-swappable-parameters,
73  -bugprone-empty-catch,
74  -bugprone-exception-escape,
75  -bugprone-implicit-widening-of-multiplication-result,
76  -bugprone-infinite-loop,
77  -bugprone-narrowing-conversions,
78  -bugprone-not-null-terminated-result,
79  -bugprone-reserved-identifier,
80  -bugprone-signed-char-misuse,
81  -bugprone-sizeof-expression,
82  -bugprone-switch-missing-default-case,
83  -bugprone-too-small-loop-variable,
84  -bugprone-unchecked-optional-access,
85  google-*,
86  -google-readability-casting,
87  -google-runtime-int,
88  -google-runtime-references,
89  performance-*,
90  -performance-avoid-endl,
91  -performance-no-automatic-move,
92  -performance-no-int-to-ptr,
93  -performance-noexcept-swap,
94  -performance-unnecessary-copy-initialization,
95  -performance-unnecessary-value-param,
96  clang-diagnostic-deprecated-declarations,
97  clang-diagnostic-deprecated-register,
98  clang-diagnostic-expansion-to-defined,
99  clang-diagnostic-ignored-attributes,
100  clang-diagnostic-non-pod-varargs,
101  clang-diagnostic-shadow-field,
102  clang-diagnostic-shift-sign-overflow,
103  clang-diagnostic-tautological-undefined-compare,
104  clang-diagnostic-thread-safety*,
105  clang-diagnostic-undefined-bool-conversion,
106  clang-diagnostic-unreachable-code,
107  clang-diagnostic-unreachable-code-loop-increment,
108  clang-diagnostic-unused-const-variable,
109  clang-diagnostic-unused-lambda-capture,
110  clang-diagnostic-unused-local-typedef,
111  clang-diagnostic-unused-private-field,
112  clang-diagnostic-user-defined-warnings,
113  misc-definitions-in-headers,
114  misc-static-assert,
115  misc-unconventional-assign-operator,
116  misc-uniqueptr-reset-release,
117  misc-unused-alias-decls,
118  misc-unused-using-decls,
119  modernize-make-shared,
120  modernize-make-unique,
121  modernize-replace-auto-ptr,
122  modernize-replace-random-shuffle,
123  modernize-shrink-to-fit,
124  modernize-unary-static-assert,
125  modernize-use-bool-literals,
126  modernize-use-noexcept,
127  modernize-use-nullptr,
128  modernize-use-override,
129  modernize-use-transparent-functors,
130  readability-braces-around-statements,
131  readability-const-return-type,
132  readability-container-size-empty,
133  readability-delete-null-pointer,
134  readability-deleted-default,
135  readability-duplicate-include,
136  readability-function-size,
137  readability-inconsistent-declaration-parameter-name,
138  readability-misleading-indentation,
139  readability-misplaced-array-index,
140  readability-redundant-access-specifiers,
141  readability-redundant-control-flow,
142  readability-redundant-function-ptr-dereference,
143  readability-redundant-smartptr-get,
144  -readability-redundant-string-cstr,
145  readability-redundant-string-init,
146  readability-simplify-boolean-expr,
147  readability-static-definition-in-anonymous-namespace,
148  readability-string-compare,
149  readability-uniqueptr-delete-release'
150WarningsAsErrors: '*'
151CheckOptions:
152  - key:    readability-function-size.StatementThreshold
153    value:  '450'
154  - key:    modernize-make-unique.MakeSmartPtrFunction
155    value:  'absl::make_unique'
156  - key:    modernize-make-unique.MakeSmartPtrFunctionHeader
157    value:  'absl/memory/memory.h'
158  - key:    readability-braces-around-statements.ShortStatementLines
159    value:  1
160  - key:    readability-simplify-boolean-expr.SimplifyDeMorgan
161    value:  false
162