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