xref: /openbmc/bmcweb/.clang-tidy (revision 70f79752af03b11f5a52d31aaf4c2a0aa9b5c526)
1Checks: '-*,
2    bugprone-argument-comment,
3    bugprone-assert-side-effect,
4    bugprone-assignment-in-if-condition,
5    bugprone-bad-signal-to-kill-thread,
6    bugprone-bool-pointer-implicit-conversion,
7    bugprone-branch-clone,
8    bugprone-casting-through-void,
9    bugprone-chained-comparison,
10    bugprone-compare-pointer-to-member-virtual-function,
11    bugprone-copy-constructor-init,
12    bugprone-crtp-constructor-accessibility,
13    bugprone-dangling-handle,
14    bugprone-dynamic-static-initializers,
15    bugprone-empty-catch,
16    bugprone-exception-escape,
17    bugprone-fold-init-type,
18    bugprone-forward-declaration-namespace,
19    bugprone-forwarding-reference-overload,
20    bugprone-implicit-widening-of-multiplication-result,
21    bugprone-inaccurate-erase,
22    bugprone-inc-dec-in-conditions,
23    bugprone-incorrect-enable-if,
24    bugprone-incorrect-roundings,
25    bugprone-infinite-loop,
26    bugprone-integer-division,
27    bugprone-lambda-function-name,
28    bugprone-macro-parentheses,
29    bugprone-macro-repeated-side-effects,
30    bugprone-misplaced-operator-in-strlen-in-alloc,
31    bugprone-misplaced-pointer-arithmetic-in-alloc,
32    bugprone-misplaced-widening-cast,
33    bugprone-move-forwarding-reference,
34    bugprone-multi-level-implicit-pointer-conversion,
35    bugprone-multiple-new-in-one-expression,
36    bugprone-multiple-statement-macro,
37    bugprone-narrowing-conversions,
38    bugprone-no-escape,
39    bugprone-non-zero-enum-to-bool-conversion,
40    bugprone-not-null-terminated-result,
41    bugprone-optional-value-conversion,
42    bugprone-parent-virtual-call,
43    bugprone-pointer-arithmetic-on-polymorphic-object,
44    bugprone-posix-return,
45    bugprone-redundant-branch-condition,
46    bugprone-reserved-identifier,
47    bugprone-return-const-ref-from-parameter,
48    bugprone-shared-ptr-array-mismatch,
49    bugprone-signal-handler,
50    bugprone-signed-char-misuse,
51    bugprone-sizeof-container,
52    bugprone-sizeof-expression,
53    bugprone-spuriously-wake-up-functions,
54    bugprone-standalone-empty,
55    bugprone-string-constructor,
56    bugprone-string-integer-assignment,
57    bugprone-string-literal-with-embedded-nul,
58    bugprone-stringview-nullptr,
59    bugprone-suspicious-enum-usage,
60    bugprone-suspicious-include,
61    bugprone-suspicious-memory-comparison,
62    bugprone-suspicious-memset-usage,
63    bugprone-suspicious-missing-comma,
64    bugprone-suspicious-realloc-usage,
65    bugprone-suspicious-semicolon,
66    bugprone-suspicious-string-compare,
67    bugprone-suspicious-stringview-data-usage,
68    bugprone-swapped-arguments,
69    bugprone-switch-missing-default-case,
70    bugprone-terminating-continue,
71    bugprone-throw-keyword-missing,
72    bugprone-too-small-loop-variable,
73    bugprone-unchecked-optional-access,
74    bugprone-undefined-memory-manipulation,
75    bugprone-undelegated-constructor,
76    bugprone-unhandled-exception-at-new,
77    bugprone-unhandled-self-assignment,
78    bugprone-unique-ptr-array-mismatch,
79    bugprone-unsafe-functions,
80    bugprone-unused-local-non-trivial-variable,
81    bugprone-unused-raii,
82    bugprone-unused-return-value,
83    bugprone-use-after-move,
84    bugprone-virtual-near-miss,
85    cert-con36-c,
86    cert-con54-cpp,
87    cert-ctr56-cpp,
88    cert-dcl03-c,
89    cert-dcl16-c,
90    cert-dcl21-cpp,
91    cert-dcl37-c,
92    cert-dcl50-cpp,
93    cert-dcl51-cpp,
94    cert-dcl54-cpp,
95    cert-dcl58-cpp,
96    cert-dcl59-cpp,
97    cert-env33-c,
98    cert-err09-cpp,
99    cert-err34-c,
100    cert-err52-cpp,
101    cert-err60-cpp,
102    cert-err61-cpp,
103    cert-fio38-c,
104    cert-flp30-c,
105    cert-mem57-cpp,
106    cert-msc30-c,
107    cert-msc32-c,
108    cert-msc50-cpp,
109    cert-msc51-cpp,
110    cert-oop11-cpp,
111    cert-oop54-cpp,
112    cert-oop57-cpp,
113    cert-oop58-cpp,
114    cert-pos44-c,
115    cert-pos47-c,
116    cert-sig30-c,
117    cert-str34-c,
118    clang-analyzer-apiModeling.Errno,
119    clang-analyzer-apiModeling.TrustNonnull,
120    clang-analyzer-apiModeling.TrustReturnsNonnull,
121    clang-analyzer-apiModeling.google.GTest,
122    clang-analyzer-apiModeling.llvm.CastValue,
123    clang-analyzer-apiModeling.llvm.ReturnValue,
124    clang-analyzer-core.BitwiseShift,
125    clang-analyzer-core.CallAndMessage,
126    clang-analyzer-core.CallAndMessageModeling,
127    clang-analyzer-core.DivideZero,
128    clang-analyzer-core.DynamicTypePropagation,
129    clang-analyzer-core.NonNullParamChecker,
130    clang-analyzer-core.NonnilStringConstants,
131    clang-analyzer-core.NullDereference,
132    clang-analyzer-core.StackAddrEscapeBase,
133    clang-analyzer-core.StackAddressEscape,
134    clang-analyzer-core.UndefinedBinaryOperatorResult,
135    clang-analyzer-core.VLASize,
136    clang-analyzer-core.builtin.BuiltinFunctions,
137    clang-analyzer-core.builtin.NoReturnFunctions,
138    clang-analyzer-core.uninitialized.ArraySubscript,
139    clang-analyzer-core.uninitialized.Assign,
140    clang-analyzer-core.uninitialized.Branch,
141    clang-analyzer-core.uninitialized.CapturedBlockVariable,
142    clang-analyzer-core.uninitialized.NewArraySize,
143    clang-analyzer-core.uninitialized.UndefReturn,
144    clang-analyzer-cplusplus.ArrayDelete,
145    clang-analyzer-cplusplus.InnerPointer,
146    clang-analyzer-cplusplus.Move,
147    clang-analyzer-cplusplus.NewDelete,
148    clang-analyzer-cplusplus.NewDeleteLeaks,
149    clang-analyzer-cplusplus.PlacementNew,
150    clang-analyzer-cplusplus.PureVirtualCall,
151    clang-analyzer-cplusplus.SelfAssignment,
152    clang-analyzer-cplusplus.SmartPtrModeling,
153    clang-analyzer-cplusplus.StringChecker,
154    clang-analyzer-cplusplus.VirtualCallModeling,
155    clang-analyzer-deadcode.DeadStores,
156    clang-analyzer-fuchsia.HandleChecker,
157    clang-analyzer-nullability.NullPassedToNonnull,
158    clang-analyzer-nullability.NullReturnedFromNonnull,
159    clang-analyzer-nullability.NullabilityBase,
160    clang-analyzer-nullability.NullableDereferenced,
161    clang-analyzer-nullability.NullablePassedToNonnull,
162    clang-analyzer-nullability.NullableReturnedFromNonnull,
163    clang-analyzer-optin.core.EnumCastOutOfRange,
164    clang-analyzer-optin.cplusplus.UninitializedObject,
165    clang-analyzer-optin.cplusplus.VirtualCall,
166    clang-analyzer-optin.mpi.MPI-Checker,
167    clang-analyzer-optin.performance.GCDAntipattern,
168    clang-analyzer-optin.performance.Padding,
169    clang-analyzer-optin.portability.UnixAPI,
170    clang-analyzer-optin.taint.TaintedAlloc,
171    clang-analyzer-security.FloatLoopCounter,
172    clang-analyzer-security.PutenvStackArray,
173    clang-analyzer-security.SetgidSetuidOrder,
174    clang-analyzer-security.cert.env.InvalidPtr,
175    clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
176    clang-analyzer-security.insecureAPI.SecuritySyntaxChecker,
177    clang-analyzer-security.insecureAPI.UncheckedReturn,
178    clang-analyzer-security.insecureAPI.bcmp,
179    clang-analyzer-security.insecureAPI.bcopy,
180    clang-analyzer-security.insecureAPI.bzero,
181    clang-analyzer-security.insecureAPI.decodeValueOfObjCType,
182    clang-analyzer-security.insecureAPI.getpw,
183    clang-analyzer-security.insecureAPI.gets,
184    clang-analyzer-security.insecureAPI.mkstemp,
185    clang-analyzer-security.insecureAPI.mktemp,
186    clang-analyzer-security.insecureAPI.rand,
187    clang-analyzer-security.insecureAPI.strcpy,
188    clang-analyzer-security.insecureAPI.vfork,
189    clang-analyzer-unix.API,
190    clang-analyzer-unix.BlockInCriticalSection,
191    clang-analyzer-unix.DynamicMemoryModeling,
192    clang-analyzer-unix.Errno,
193    clang-analyzer-unix.Malloc,
194    clang-analyzer-unix.MallocSizeof,
195    clang-analyzer-unix.MismatchedDeallocator,
196    clang-analyzer-unix.StdCLibraryFunctions,
197    clang-analyzer-unix.Vfork,
198    clang-analyzer-unix.cstring.BadSizeArg,
199    clang-analyzer-unix.cstring.CStringModeling,
200    clang-analyzer-unix.cstring.NullArg,
201    clang-analyzer-valist.CopyToSelf,
202    clang-analyzer-valist.Uninitialized,
203    clang-analyzer-valist.Unterminated,
204    clang-analyzer-valist.ValistBase,
205    concurrency-mt-unsafe,
206    concurrency-thread-canceltype-asynchronous,
207    cppcoreguidelines-avoid-c-arrays,
208    cppcoreguidelines-avoid-capturing-lambda-coroutines,
209    cppcoreguidelines-avoid-goto,
210    cppcoreguidelines-avoid-non-const-global-variables,
211    cppcoreguidelines-avoid-reference-coroutine-parameters,
212    cppcoreguidelines-c-copy-assignment-signature,
213    cppcoreguidelines-explicit-virtual-functions,
214    cppcoreguidelines-init-variables,
215    cppcoreguidelines-interfaces-global-init,
216    cppcoreguidelines-macro-to-enum,
217    cppcoreguidelines-macro-usage,
218    cppcoreguidelines-misleading-capture-default-by-value,
219    cppcoreguidelines-narrowing-conversions,
220    cppcoreguidelines-no-malloc,
221    cppcoreguidelines-no-suspend-with-lock,
222    cppcoreguidelines-noexcept-destructor,
223    cppcoreguidelines-noexcept-move-operations,
224    cppcoreguidelines-noexcept-swap,
225    cppcoreguidelines-prefer-member-initializer,
226    cppcoreguidelines-pro-bounds-array-to-pointer-decay,
227    cppcoreguidelines-pro-bounds-pointer-arithmetic,
228    cppcoreguidelines-pro-type-const-cast,
229    cppcoreguidelines-pro-type-cstyle-cast,
230    cppcoreguidelines-pro-type-member-init,
231    cppcoreguidelines-pro-type-reinterpret-cast,
232    cppcoreguidelines-pro-type-static-cast-downcast,
233    cppcoreguidelines-pro-type-union-access,
234    cppcoreguidelines-pro-type-vararg,
235    cppcoreguidelines-rvalue-reference-param-not-moved,
236    cppcoreguidelines-slicing,
237    cppcoreguidelines-special-member-functions,
238    cppcoreguidelines-use-default-member-init,
239    cppcoreguidelines-virtual-class-destructor,
240    misc-coroutine-hostile-raii,
241    misc-definitions-in-headers,
242    misc-header-include-cycle,
243    misc-misleading-bidirectional,
244    misc-misleading-identifier,
245    misc-misplaced-const,
246    misc-new-delete-overloads,
247    misc-non-copyable-objects,
248    misc-redundant-expression,
249    misc-static-assert,
250    misc-throw-by-value-catch-by-reference,
251    misc-unconventional-assign-operator,
252    misc-uniqueptr-reset-release,
253    misc-unused-alias-decls,
254    misc-unused-parameters,
255    misc-unused-using-decls,
256    modernize-avoid-bind,
257    modernize-deprecated-headers,
258    modernize-deprecated-ios-base-aliases,
259    modernize-loop-convert,
260    modernize-make-shared,
261    modernize-make-unique,
262    modernize-raw-string-literal,
263    modernize-redundant-void-arg,
264    modernize-replace-auto-ptr,
265    modernize-replace-random-shuffle,
266    modernize-return-braced-init-list,
267    modernize-shrink-to-fit,
268    modernize-unary-static-assert,
269    modernize-use-bool-literals,
270    modernize-use-default-member-init,
271    modernize-use-emplace,
272    modernize-use-equals-default,
273    modernize-use-equals-delete,
274    modernize-use-noexcept,
275    modernize-use-nullptr,
276    modernize-use-override,
277    modernize-use-starts-ends-with,
278    modernize-use-std-numbers,
279    modernize-use-transparent-functors,
280    modernize-use-uncaught-exceptions,
281    modernize-use-using,
282    performance-avoid-endl,
283    performance-faster-string-find,
284    performance-for-range-copy,
285    performance-implicit-conversion-in-loop,
286    performance-inefficient-algorithm,
287    performance-inefficient-string-concatenation,
288    performance-inefficient-vector-operation,
289    performance-move-const-arg,
290    performance-move-constructor-init,
291    performance-no-automatic-move,
292    performance-no-int-to-ptr,
293    performance-noexcept-destructor,
294    performance-noexcept-move-constructor,
295    performance-noexcept-swap,
296    performance-trivially-destructible,
297    performance-type-promotion-in-math-fn,
298    performance-unnecessary-copy-initialization,
299    performance-unnecessary-value-param,
300    readability-avoid-const-params-in-decls,
301    readability-avoid-nested-conditional-operator,
302    readability-avoid-return-with-void-value,
303    readability-avoid-unconditional-preprocessor-if,
304    readability-braces-around-statements,
305    readability-const-return-type,
306    readability-container-contains,
307    readability-container-data-pointer,
308    readability-container-size-empty,
309    readability-convert-member-functions-to-static,
310    readability-delete-null-pointer,
311    readability-duplicate-include,
312    readability-else-after-return,
313    readability-function-size,
314    readability-identifier-naming,
315    readability-implicit-bool-conversion,
316    readability-inconsistent-declaration-parameter-name,
317    readability-isolate-declaration,
318    readability-make-member-function-const,
319    readability-misleading-indentation,
320    readability-misplaced-array-index,
321    readability-named-parameter,
322    readability-non-const-parameter,
323    readability-operators-representation,
324    readability-qualified-auto,
325    readability-redundant-access-specifiers,
326    readability-redundant-casting,
327    readability-redundant-control-flow,
328    readability-redundant-declaration,
329    readability-redundant-function-ptr-dereference,
330    readability-redundant-inline-specifier,
331    readability-redundant-member-init,
332    readability-redundant-preprocessor,
333    readability-redundant-smartptr-get,
334    readability-redundant-string-cstr,
335    readability-redundant-string-init,
336    readability-reference-to-constructed-temporary,
337    readability-simplify-boolean-expr,
338    readability-simplify-subscript-expr,
339    readability-static-accessed-through-instance,
340    readability-static-definition-in-anonymous-namespace,
341    readability-string-compare,
342    readability-suspicious-call-argument,
343    readability-uniqueptr-delete-release,
344    readability-uppercase-literal-suffix,
345    readability-use-std-min-max
346    '
347
348CheckOptions:
349-   key: cppcoreguidelines-macro-usage.AllowedRegexp
350    value: DEBUG*|NLOHMANN_JSON_SERIALIZE_ENUM
351-   key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams
352    value: true
353-   key: misc-include-cleaner.IgnoreHeaders
354    value: ((nlohmann/json.hpp)|(nlohmann/json_fwd.hpp)|(boost/asio/connect_pipe.hpp)|(boost/beast/websocket/rfc6455.hpp)|(read.hpp)|(write.hpp)|(boost/circular_buffer.hpp)|(boost/asio/.*read.hpp)|(boost/.*/src.hpp)|(boost/.*/detail/.*)|(nlohmann/detail/.*)|(stdio.h)|(ranges)|(bits/.*)|(boost/system/error_code.hpp)|(json_formatters.hpp)|(boost_formatters.hpp)|(CLI/.*))
355-   key: readability-identifier-naming.ClassCase
356    value: CamelCase
357-   key: readability-identifier-naming.FunctionCase
358    value: camelBack
359-   key: readability-identifier-naming.FunctionIgnoredRegexp
360    value: (BMCWEB_LOG_DEBUG|BMCWEB_LOG_INFO|BMCWEB_LOG_WARNING|BMCWEB_LOG_ERROR|BMCWEB_LOG_CRITICAL|REDFISH_SUB_ROUTE)
361-   key: readability-identifier-naming.NamespaceCase
362    value: lower_case
363-   key: readability-identifier-naming.ParameterCase
364    value: camelBack
365-   key: readability-identifier-naming.StructCase
366    value: CamelCase
367-   key: readability-identifier-naming.StructIgnoredRegexp
368    value: (BMCWEB_LOG_DEBUG|BMCWEB_LOG_INFO|BMCWEB_LOG_WARNING|BMCWEB_LOG_ERROR|BMCWEB_LOG_CRITICAL)
369-   key: readability-identifier-naming.VariableCase
370    value: camelBack
371
372HeaderFilterRegex: .*
373
374WarningsAsErrors: '*'
375