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