Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmd] Logging enabled checkers at the beginning of analysis #2858

Merged
merged 1 commit into from
Aug 31, 2020

Conversation

bruntib
Copy link
Contributor

@bruntib bruntib commented Jul 23, 2020

The list of applied checkers can be configured by -e, -d flags,
CodeChecker config files, etc. It is hard to see which checkers are
actually enabled during the analysis. Now the enabled checkers are
listed at the beginning of the analysis.

@@ -240,6 +240,8 @@ def perform_analysis(args, skip_handler, context, actions, metadata_tool,
check_env = env.extend(context.path_env_extra,
context.ld_lib_path_extra)

enabled_checkers = []
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to mix all the checkers from all of the analyzers which are enabled?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I chose the same format as for missing checkers a few lines above.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe @gyorb is right. It would be better to print enabled checker for each analyzers separately. Similar to this:

Enabled checker:
 - ClangSA: checker1, checker2
 - Clang Tidy: checker3, checker4


version = config_map[analyzer].get_version(check_env)
metadata_info['analyzer_statistics']['version'] = version

metadata_tool['analyzers'][analyzer] = metadata_info

LOG.info("Enabled checkers:\n%s", '\n'.join(enabled_checkers))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't a debug level log be enough here? I'm just thinking this list can get really long quickly (just by enabling a few groups), or that is the plan to make it visible?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gyorb Is right, the list can be really long. I recommend you to separate checker names with commas instead of new lines. The list will be much shorter.

Seprate checker names with comma alpha.clone.CloneChecker, alpha.core.BoolAssignment, alpha.core.CallAndMessageUnInitRefArg, alpha.core.CastSize, alpha.core.CastToStruct, alpha.core.Conversion, alpha.core.DynamicTypeChecker, alpha.core.FixedAddr, alpha.core.IdenticalExpr, alpha.core.PointerArithm, alpha.core.PointerSub, alpha.core.SizeofPtr, alpha.core.StackAddressAsyncEscape, alpha.core.TestAfterDivZero, alpha.cplusplus.DeleteWithNonVirtualDtor, alpha.cplusplus.EnumCastOutOfRange, alpha.cplusplus.PlacementNew, alpha.deadcode.UnreachableCode, alpha.llvm.Conventions, alpha.nondeterminism.PointerIteration, alpha.nondeterminism.PointerSorting, alpha.osx.cocoa.DirectIvarAssignment, alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions, alpha.osx.cocoa.InstanceVariableInvalidation, alpha.osx.cocoa.IvarInvalidationModeling, alpha.osx.cocoa.MissingInvalidationMethod, alpha.osx.cocoa.localizability.PluralMisuseChecker, alpha.security.ArrayBound, alpha.security.ArrayBoundV2, alpha.security.MallocOverflow, alpha.security.MmapWriteExec, alpha.security.ReturnPtrRange, alpha.security.taint.TaintPropagation, alpha.unix.BlockInCriticalSection, alpha.unix.Chroot, alpha.unix.PthreadLock, alpha.unix.SimpleStream, alpha.unix.Stream, alpha.unix.cstring.BufferOverlap, alpha.unix.cstring.NotNullTerminated, alpha.unix.cstring.OutOfBounds, apiModeling.StdCLibraryFunctions, apiModeling.TrustNonnull, apiModeling.google.GTest, apiModeling.llvm.CastValue, apiModeling.llvm.ReturnValue, core.CallAndMessage, core.DivideZero, core.DynamicTypePropagation, core.NonNullParamChecker, core.NonnilStringConstants, core.NullDereference, core.StackAddrEscapeBase, core.StackAddressEscape, core.UndefinedBinaryOperatorResult, core.VLASize, core.builtin.BuiltinFunctions, core.builtin.NoReturnFunctions, core.uninitialized.ArraySubscript, core.uninitialized.Assign, core.uninitialized.Branch, core.uninitialized.CapturedBlockVariable, core.uninitialized.UndefReturn, cplusplus.InnerPointer, cplusplus.Move, cplusplus.NewDelete, cplusplus.NewDeleteLeaks, cplusplus.PureVirtualCall, cplusplus.SelfAssignment, cplusplus.SmartPtr, cplusplus.VirtualCallModeling, deadcode.DeadStores, debug.AnalysisOrder, debug.ConfigDumper, debug.DumpCFG, debug.DumpCallGraph, debug.DumpCalls, debug.DumpControlDependencies, debug.DumpDominators, debug.DumpLiveStmts, debug.DumpLiveVars, debug.DumpPostDominators, debug.DumpTraversal, debug.ExprInspection, debug.ReportStmts, debug.Stats, debug.TaintTest, debug.ViewCFG, debug.ViewCallGraph, debug.ViewExplodedGraph, fuchsia.HandleChecker, nullability.NullPassedToNonnull, nullability.NullReturnedFromNonnull, nullability.NullabilityBase, nullability.NullableDereferenced, nullability.NullablePassedToNonnull, nullability.NullableReturnedFromNonnull, optin.cplusplus.UninitializedObject, optin.cplusplus.VirtualCall, optin.mpi.MPI-Checker, optin.osx.OSObjectCStyleCast, optin.osx.cocoa.localizability.EmptyLocalizationContextChecker, optin.osx.cocoa.localizability.NonLocalizedStringChecker, optin.performance.GCDAntipattern, optin.performance.Padding, optin.portability.UnixAPI, osx.API, osx.MIG, osx.NSOrCFErrorDerefChecker, osx.NumberObjectConversion, osx.OSObjectRetainCount, osx.ObjCProperty, osx.SecKeychainAPI, osx.cocoa.AtSync, osx.cocoa.AutoreleaseWrite, osx.cocoa.ClassRelease, osx.cocoa.Dealloc, osx.cocoa.IncompatibleMethodTypes, osx.cocoa.Loops, osx.cocoa.MissingSuperCall, osx.cocoa.NSAutoreleasePool, osx.cocoa.NSError, osx.cocoa.NilArg, osx.cocoa.NonNilReturnValue, osx.cocoa.ObjCGenerics, osx.cocoa.RetainCount, osx.cocoa.RetainCountBase, osx.cocoa.RunLoopAutoreleaseLeak, osx.cocoa.SelfInit, osx.cocoa.SuperDealloc, osx.cocoa.UnusedIvars, osx.cocoa.VariadicMethodTypes, osx.coreFoundation.CFError, osx.coreFoundation.CFNumber, osx.coreFoundation.CFRetainRelease, osx.coreFoundation.containers.OutOfBounds, osx.coreFoundation.containers.PointerSizedValues, security.FloatLoopCounter, security.insecureAPI.DeprecatedOrUnsafeBufferHandling, security.insecureAPI.SecuritySyntaxChecker, security.insecureAPI.UncheckedReturn, security.insecureAPI.bcmp, security.insecureAPI.bcopy, security.insecureAPI.bzero, security.insecureAPI.decodeValueOfObjCType, security.insecureAPI.getpw, security.insecureAPI.gets, security.insecureAPI.mkstemp, security.insecureAPI.mktemp, security.insecureAPI.rand, security.insecureAPI.strcpy, security.insecureAPI.vfork, unix.API, unix.DynamicMemoryModeling, unix.Malloc, unix.MallocSizeof, unix.MismatchedDeallocator, unix.Vfork, unix.cstring.BadSizeArg, unix.cstring.CStringModeling, unix.cstring.NullArg, valist.CopyToSelf, valist.Uninitialized, valist.Unterminated, valist.ValistBase, abseil-duration-addition, abseil-duration-comparison, abseil-duration-conversion-cast, abseil-duration-division, abseil-duration-factory-float, abseil-duration-factory-scale, abseil-duration-subtraction, abseil-duration-unnecessary-conversion, abseil-faster-strsplit-delimiter, abseil-no-internal-dependencies, abseil-no-namespace, abseil-redundant-strcat-calls, abseil-str-cat-append, abseil-string-find-startswith, abseil-time-comparison, abseil-time-subtraction, abseil-upgrade-duration-conversions, android-cloexec-accept, android-cloexec-accept4, android-cloexec-creat, android-cloexec-dup, android-cloexec-epoll-create, android-cloexec-epoll-create1, android-cloexec-fopen, android-cloexec-inotify-init, android-cloexec-inotify-init1, android-cloexec-memfd-create, android-cloexec-open, android-cloexec-pipe, android-cloexec-pipe2, android-cloexec-socket, android-comparison-in-temp-failure-retry, boost-use-to-string, bugprone-argument-comment, bugprone-assert-side-effect, bugprone-bad-signal-to-kill-thread, bugprone-bool-pointer-implicit-conversion, bugprone-branch-clone, bugprone-copy-constructor-init, bugprone-dangling-handle, bugprone-dynamic-static-initializers, bugprone-exception-escape, bugprone-fold-init-type, bugprone-forward-declaration-namespace, bugprone-forwarding-reference-overload, bugprone-inaccurate-erase, bugprone-incorrect-roundings, bugprone-infinite-loop, bugprone-integer-division, bugprone-lambda-function-name, bugprone-macro-parentheses, bugprone-macro-repeated-side-effects, bugprone-misplaced-operator-in-strlen-in-alloc, bugprone-misplaced-widening-cast, bugprone-move-forwarding-reference, bugprone-multiple-statement-macro, bugprone-narrowing-conversions, bugprone-not-null-terminated-result, bugprone-parent-virtual-call, bugprone-posix-return, bugprone-signed-char-misuse, bugprone-sizeof-container, bugprone-sizeof-expression, bugprone-string-constructor, bugprone-string-integer-assignment, bugprone-string-literal-with-embedded-nul, bugprone-suspicious-enum-usage, bugprone-suspicious-memset-usage, bugprone-suspicious-missing-comma, bugprone-suspicious-semicolon, bugprone-suspicious-string-compare, bugprone-swapped-arguments, bugprone-terminating-continue, bugprone-throw-keyword-missing, bugprone-too-small-loop-variable, bugprone-undefined-memory-manipulation, bugprone-undelegated-constructor, bugprone-unhandled-self-assignment, bugprone-unused-raii, bugprone-unused-return-value, bugprone-use-after-move, bugprone-virtual-near-miss, cert-dcl03-c, cert-dcl16-c, cert-dcl21-cpp, cert-dcl50-cpp, cert-dcl54-cpp, cert-dcl58-cpp, cert-dcl59-cpp, cert-env33-c, cert-err09-cpp, cert-err34-c, cert-err52-cpp, cert-err58-cpp, cert-err60-cpp, cert-err61-cpp, cert-fio38-c, cert-flp30-c, cert-mem57-cpp, cert-msc30-c, cert-msc32-c, cert-msc50-cpp, cert-msc51-cpp, cert-oop11-cpp, cert-oop54-cpp, cert-oop58-cpp, cert-pos44-c, cppcoreguidelines-avoid-c-arrays, cppcoreguidelines-avoid-goto, cppcoreguidelines-avoid-magic-numbers, cppcoreguidelines-c-copy-assignment-signature, cppcoreguidelines-explicit-virtual-functions, cppcoreguidelines-init-variables, cppcoreguidelines-interfaces-global-init, cppcoreguidelines-macro-usage, cppcoreguidelines-narrowing-conversions, cppcoreguidelines-no-malloc, cppcoreguidelines-non-private-member-variables-in-classes, cppcoreguidelines-owning-memory, cppcoreguidelines-pro-bounds-array-to-pointer-decay, cppcoreguidelines-pro-bounds-constant-array-index, cppcoreguidelines-pro-bounds-pointer-arithmetic, cppcoreguidelines-pro-type-const-cast, cppcoreguidelines-pro-type-cstyle-cast, cppcoreguidelines-pro-type-member-init, cppcoreguidelines-pro-type-reinterpret-cast, cppcoreguidelines-pro-type-static-cast-downcast, cppcoreguidelines-pro-type-union-access, cppcoreguidelines-pro-type-vararg, cppcoreguidelines-slicing, cppcoreguidelines-special-member-functions, darwin-avoid-spinlock, darwin-dispatch-once-nonstatic, fuchsia-default-arguments-calls, fuchsia-default-arguments-declarations, fuchsia-header-anon-namespaces, fuchsia-multiple-inheritance, fuchsia-overloaded-operator, fuchsia-restrict-system-includes, fuchsia-statically-constructed-objects, fuchsia-trailing-return, fuchsia-virtual-inheritance, google-build-explicit-make-pair, google-build-namespaces, google-build-using-namespace, google-default-arguments, google-explicit-constructor, google-global-names-in-headers, google-objc-avoid-nsobject-new, google-objc-avoid-throwing-exception, google-objc-function-naming, google-objc-global-variable-declaration, google-readability-avoid-underscore-in-googletest-name, google-readability-braces-around-statements, google-readability-casting, google-readability-function-size, google-readability-namespace-comments, google-readability-todo, google-runtime-int, google-runtime-operator, google-runtime-references, google-upgrade-googletest-case, hicpp-avoid-c-arrays, hicpp-avoid-goto, hicpp-braces-around-statements, hicpp-deprecated-headers, hicpp-exception-baseclass, hicpp-explicit-conversions, hicpp-function-size, hicpp-invalid-access-moved, hicpp-member-init, hicpp-move-const-arg, hicpp-multiway-paths-covered, hicpp-named-parameter, hicpp-new-delete-operators, hicpp-no-array-decay, hicpp-no-assembler, hicpp-no-malloc, hicpp-noexcept-move, hicpp-signed-bitwise, hicpp-special-member-functions, hicpp-static-assert, hicpp-undelegated-constructor, hicpp-uppercase-literal-suffix, hicpp-use-auto, hicpp-use-emplace, hicpp-use-equals-default, hicpp-use-equals-delete, hicpp-use-noexcept, hicpp-use-nullptr, hicpp-use-override, hicpp-vararg, linuxkernel-must-check-errs, llvm-header-guard, llvm-include-order, llvm-namespace-comment, llvm-prefer-isa-or-dyn-cast-in-conditionals, llvm-prefer-register-over-unsigned, llvm-qualified-auto, llvm-twine-local, misc-definitions-in-headers, misc-misplaced-const, misc-new-delete-overloads, misc-non-copyable-objects, misc-non-private-member-variables-in-classes, misc-redundant-expression, misc-static-assert, misc-throw-by-value-catch-by-reference, misc-unconventional-assign-operator, misc-uniqueptr-reset-release, misc-unused-alias-decls, misc-unused-parameters, misc-unused-using-decls, modernize-avoid-bind, modernize-avoid-c-arrays, modernize-concat-nested-namespaces, modernize-deprecated-headers, modernize-deprecated-ios-base-aliases, modernize-loop-convert, modernize-make-shared, modernize-make-unique, modernize-pass-by-value, modernize-raw-string-literal, modernize-redundant-void-arg, modernize-replace-auto-ptr, modernize-replace-random-shuffle, modernize-return-braced-init-list, modernize-shrink-to-fit, modernize-unary-static-assert, modernize-use-auto, modernize-use-bool-literals, modernize-use-default-member-init, modernize-use-emplace, modernize-use-equals-default, modernize-use-equals-delete, modernize-use-nodiscard, modernize-use-noexcept, modernize-use-nullptr, modernize-use-override, modernize-use-trailing-return-type, modernize-use-transparent-functors, modernize-use-uncaught-exceptions, modernize-use-using, mpi-buffer-deref, mpi-type-mismatch, objc-avoid-nserror-init, objc-forbidden-subclassing, objc-missing-hash, objc-property-declaration, objc-super-self, openmp-exception-escape, openmp-use-default-none, performance-faster-string-find, performance-for-range-copy, performance-implicit-conversion-in-loop, performance-inefficient-algorithm, performance-inefficient-string-concatenation, performance-inefficient-vector-operation, performance-move-const-arg, performance-move-constructor-init, performance-no-automatic-move, performance-noexcept-move-constructor, performance-trivially-destructible, performance-type-promotion-in-math-fn, performance-unnecessary-copy-initialization, performance-unnecessary-value-param, portability-simd-intrinsics, readability-avoid-const-params-in-decls, readability-braces-around-statements, readability-const-return-type, readability-container-size-empty, readability-convert-member-functions-to-static, readability-delete-null-pointer, readability-deleted-default, readability-else-after-return, readability-function-size, readability-identifier-naming, readability-implicit-bool-conversion, readability-inconsistent-declaration-parameter-name, readability-isolate-declaration, readability-magic-numbers, readability-make-member-function-const, readability-misleading-indentation, readability-misplaced-array-index, readability-named-parameter, readability-non-const-parameter, readability-qualified-auto, readability-redundant-access-specifiers, readability-redundant-control-flow, readability-redundant-declaration, readability-redundant-function-ptr-dereference, readability-redundant-member-init, readability-redundant-preprocessor, readability-redundant-smartptr-get, readability-redundant-string-cstr, readability-redundant-string-init, readability-simplify-boolean-expr, readability-simplify-subscript-expr, readability-static-accessed-through-instance, readability-static-definition-in-anonymous-namespace, readability-string-compare, readability-uniqueptr-delete-release, readability-uppercase-literal-suffix, zircon-temporary-objects
Seprate checker names with new lines alpha.clone.CloneChecker
alpha.core.BoolAssignment
alpha.core.CallAndMessageUnInitRefArg
alpha.core.CastSize
alpha.core.CastToStruct
alpha.core.Conversion
alpha.core.DynamicTypeChecker
alpha.core.FixedAddr
alpha.core.IdenticalExpr
alpha.core.PointerArithm
alpha.core.PointerSub
alpha.core.SizeofPtr
alpha.core.StackAddressAsyncEscape
alpha.core.TestAfterDivZero
alpha.cplusplus.DeleteWithNonVirtualDtor
alpha.cplusplus.EnumCastOutOfRange
alpha.cplusplus.PlacementNew
alpha.deadcode.UnreachableCode
alpha.llvm.Conventions
alpha.nondeterminism.PointerIteration
alpha.nondeterminism.PointerSorting
alpha.osx.cocoa.DirectIvarAssignment
alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions
alpha.osx.cocoa.InstanceVariableInvalidation
alpha.osx.cocoa.IvarInvalidationModeling
alpha.osx.cocoa.MissingInvalidationMethod
alpha.osx.cocoa.localizability.PluralMisuseChecker
alpha.security.ArrayBound
alpha.security.ArrayBoundV2
alpha.security.MallocOverflow
alpha.security.MmapWriteExec
alpha.security.ReturnPtrRange
alpha.security.taint.TaintPropagation
alpha.unix.BlockInCriticalSection
alpha.unix.Chroot
alpha.unix.PthreadLock
alpha.unix.SimpleStream
alpha.unix.Stream
alpha.unix.cstring.BufferOverlap
alpha.unix.cstring.NotNullTerminated
alpha.unix.cstring.OutOfBounds
apiModeling.StdCLibraryFunctions
apiModeling.TrustNonnull
apiModeling.google.GTest
apiModeling.llvm.CastValue
apiModeling.llvm.ReturnValue
core.CallAndMessage
core.DivideZero
core.DynamicTypePropagation
core.NonNullParamChecker
core.NonnilStringConstants
core.NullDereference
core.StackAddrEscapeBase
core.StackAddressEscape
core.UndefinedBinaryOperatorResult
core.VLASize
core.builtin.BuiltinFunctions
core.builtin.NoReturnFunctions
core.uninitialized.ArraySubscript
core.uninitialized.Assign
core.uninitialized.Branch
core.uninitialized.CapturedBlockVariable
core.uninitialized.UndefReturn
cplusplus.InnerPointer
cplusplus.Move
cplusplus.NewDelete
cplusplus.NewDeleteLeaks
cplusplus.PureVirtualCall
cplusplus.SelfAssignment
cplusplus.SmartPtr
cplusplus.VirtualCallModeling
deadcode.DeadStores
debug.AnalysisOrder
debug.ConfigDumper
debug.DumpCFG
debug.DumpCallGraph
debug.DumpCalls
debug.DumpControlDependencies
debug.DumpDominators
debug.DumpLiveStmts
debug.DumpLiveVars
debug.DumpPostDominators
debug.DumpTraversal
debug.ExprInspection
debug.ReportStmts
debug.Stats
debug.TaintTest
debug.ViewCFG
debug.ViewCallGraph
debug.ViewExplodedGraph
fuchsia.HandleChecker
nullability.NullPassedToNonnull
nullability.NullReturnedFromNonnull
nullability.NullabilityBase
nullability.NullableDereferenced
nullability.NullablePassedToNonnull
nullability.NullableReturnedFromNonnull
optin.cplusplus.UninitializedObject
optin.cplusplus.VirtualCall
optin.mpi.MPI-Checker
optin.osx.OSObjectCStyleCast
optin.osx.cocoa.localizability.EmptyLocalizationContextChecker
optin.osx.cocoa.localizability.NonLocalizedStringChecker
optin.performance.GCDAntipattern
optin.performance.Padding
optin.portability.UnixAPI
osx.API
osx.MIG
osx.NSOrCFErrorDerefChecker
osx.NumberObjectConversion
osx.OSObjectRetainCount
osx.ObjCProperty
osx.SecKeychainAPI
osx.cocoa.AtSync
osx.cocoa.AutoreleaseWrite
osx.cocoa.ClassRelease
osx.cocoa.Dealloc
osx.cocoa.IncompatibleMethodTypes
osx.cocoa.Loops
osx.cocoa.MissingSuperCall
osx.cocoa.NSAutoreleasePool
osx.cocoa.NSError
osx.cocoa.NilArg
osx.cocoa.NonNilReturnValue
osx.cocoa.ObjCGenerics
osx.cocoa.RetainCount
osx.cocoa.RetainCountBase
osx.cocoa.RunLoopAutoreleaseLeak
osx.cocoa.SelfInit
osx.cocoa.SuperDealloc
osx.cocoa.UnusedIvars
osx.cocoa.VariadicMethodTypes
osx.coreFoundation.CFError
osx.coreFoundation.CFNumber
osx.coreFoundation.CFRetainRelease
osx.coreFoundation.containers.OutOfBounds
osx.coreFoundation.containers.PointerSizedValues
security.FloatLoopCounter
security.insecureAPI.DeprecatedOrUnsafeBufferHandling
security.insecureAPI.SecuritySyntaxChecker
security.insecureAPI.UncheckedReturn
security.insecureAPI.bcmp
security.insecureAPI.bcopy
security.insecureAPI.bzero
security.insecureAPI.decodeValueOfObjCType
security.insecureAPI.getpw
security.insecureAPI.gets
security.insecureAPI.mkstemp
security.insecureAPI.mktemp
security.insecureAPI.rand
security.insecureAPI.strcpy
security.insecureAPI.vfork
unix.API
unix.DynamicMemoryModeling
unix.Malloc
unix.MallocSizeof
unix.MismatchedDeallocator
unix.Vfork
unix.cstring.BadSizeArg
unix.cstring.CStringModeling
unix.cstring.NullArg
valist.CopyToSelf
valist.Uninitialized
valist.Unterminated
valist.ValistBase
abseil-duration-addition
abseil-duration-comparison
abseil-duration-conversion-cast
abseil-duration-division
abseil-duration-factory-float
abseil-duration-factory-scale
abseil-duration-subtraction
abseil-duration-unnecessary-conversion
abseil-faster-strsplit-delimiter
abseil-no-internal-dependencies
abseil-no-namespace
abseil-redundant-strcat-calls
abseil-str-cat-append
abseil-string-find-startswith
abseil-time-comparison
abseil-time-subtraction
abseil-upgrade-duration-conversions
android-cloexec-accept
android-cloexec-accept4
android-cloexec-creat
android-cloexec-dup
android-cloexec-epoll-create
android-cloexec-epoll-create1
android-cloexec-fopen
android-cloexec-inotify-init
android-cloexec-inotify-init1
android-cloexec-memfd-create
android-cloexec-open
android-cloexec-pipe
android-cloexec-pipe2
android-cloexec-socket
android-comparison-in-temp-failure-retry
boost-use-to-string
bugprone-argument-comment
bugprone-assert-side-effect
bugprone-bad-signal-to-kill-thread
bugprone-bool-pointer-implicit-conversion
bugprone-branch-clone
bugprone-copy-constructor-init
bugprone-dangling-handle
bugprone-dynamic-static-initializers
bugprone-exception-escape
bugprone-fold-init-type
bugprone-forward-declaration-namespace
bugprone-forwarding-reference-overload
bugprone-inaccurate-erase
bugprone-incorrect-roundings
bugprone-infinite-loop
bugprone-integer-division
bugprone-lambda-function-name
bugprone-macro-parentheses
bugprone-macro-repeated-side-effects
bugprone-misplaced-operator-in-strlen-in-alloc
bugprone-misplaced-widening-cast
bugprone-move-forwarding-reference
bugprone-multiple-statement-macro
bugprone-narrowing-conversions
bugprone-not-null-terminated-result
bugprone-parent-virtual-call
bugprone-posix-return
bugprone-signed-char-misuse
bugprone-sizeof-container
bugprone-sizeof-expression
bugprone-string-constructor
bugprone-string-integer-assignment
bugprone-string-literal-with-embedded-nul
bugprone-suspicious-enum-usage
bugprone-suspicious-memset-usage
bugprone-suspicious-missing-comma
bugprone-suspicious-semicolon
bugprone-suspicious-string-compare
bugprone-swapped-arguments
bugprone-terminating-continue
bugprone-throw-keyword-missing
bugprone-too-small-loop-variable
bugprone-undefined-memory-manipulation
bugprone-undelegated-constructor
bugprone-unhandled-self-assignment
bugprone-unused-raii
bugprone-unused-return-value
bugprone-use-after-move
bugprone-virtual-near-miss
cert-dcl03-c
cert-dcl16-c
cert-dcl21-cpp
cert-dcl50-cpp
cert-dcl54-cpp
cert-dcl58-cpp
cert-dcl59-cpp
cert-env33-c
cert-err09-cpp
cert-err34-c
cert-err52-cpp
cert-err58-cpp
cert-err60-cpp
cert-err61-cpp
cert-fio38-c
cert-flp30-c
cert-mem57-cpp
cert-msc30-c
cert-msc32-c
cert-msc50-cpp
cert-msc51-cpp
cert-oop11-cpp
cert-oop54-cpp
cert-oop58-cpp
cert-pos44-c
cppcoreguidelines-avoid-c-arrays
cppcoreguidelines-avoid-goto
cppcoreguidelines-avoid-magic-numbers
cppcoreguidelines-c-copy-assignment-signature
cppcoreguidelines-explicit-virtual-functions
cppcoreguidelines-init-variables
cppcoreguidelines-interfaces-global-init
cppcoreguidelines-macro-usage
cppcoreguidelines-narrowing-conversions
cppcoreguidelines-no-malloc
cppcoreguidelines-non-private-member-variables-in-classes
cppcoreguidelines-owning-memory
cppcoreguidelines-pro-bounds-array-to-pointer-decay
cppcoreguidelines-pro-bounds-constant-array-index
cppcoreguidelines-pro-bounds-pointer-arithmetic
cppcoreguidelines-pro-type-const-cast
cppcoreguidelines-pro-type-cstyle-cast
cppcoreguidelines-pro-type-member-init
cppcoreguidelines-pro-type-reinterpret-cast
cppcoreguidelines-pro-type-static-cast-downcast
cppcoreguidelines-pro-type-union-access
cppcoreguidelines-pro-type-vararg
cppcoreguidelines-slicing
cppcoreguidelines-special-member-functions
darwin-avoid-spinlock
darwin-dispatch-once-nonstatic
fuchsia-default-arguments-calls
fuchsia-default-arguments-declarations
fuchsia-header-anon-namespaces
fuchsia-multiple-inheritance
fuchsia-overloaded-operator
fuchsia-restrict-system-includes
fuchsia-statically-constructed-objects
fuchsia-trailing-return
fuchsia-virtual-inheritance
google-build-explicit-make-pair
google-build-namespaces
google-build-using-namespace
google-default-arguments
google-explicit-constructor
google-global-names-in-headers
google-objc-avoid-nsobject-new
google-objc-avoid-throwing-exception
google-objc-function-naming
google-objc-global-variable-declaration
google-readability-avoid-underscore-in-googletest-name
google-readability-braces-around-statements
google-readability-casting
google-readability-function-size
google-readability-namespace-comments
google-readability-todo
google-runtime-int
google-runtime-operator
google-runtime-references
google-upgrade-googletest-case
hicpp-avoid-c-arrays
hicpp-avoid-goto
hicpp-braces-around-statements
hicpp-deprecated-headers
hicpp-exception-baseclass
hicpp-explicit-conversions
hicpp-function-size
hicpp-invalid-access-moved
hicpp-member-init
hicpp-move-const-arg
hicpp-multiway-paths-covered
hicpp-named-parameter
hicpp-new-delete-operators
hicpp-no-array-decay
hicpp-no-assembler
hicpp-no-malloc
hicpp-noexcept-move
hicpp-signed-bitwise
hicpp-special-member-functions
hicpp-static-assert
hicpp-undelegated-constructor
hicpp-uppercase-literal-suffix
hicpp-use-auto
hicpp-use-emplace
hicpp-use-equals-default
hicpp-use-equals-delete
hicpp-use-noexcept
hicpp-use-nullptr
hicpp-use-override
hicpp-vararg
linuxkernel-must-check-errs
llvm-header-guard
llvm-include-order
llvm-namespace-comment
llvm-prefer-isa-or-dyn-cast-in-conditionals
llvm-prefer-register-over-unsigned
llvm-qualified-auto
llvm-twine-local
misc-definitions-in-headers
misc-misplaced-const
misc-new-delete-overloads
misc-non-copyable-objects
misc-non-private-member-variables-in-classes
misc-redundant-expression
misc-static-assert
misc-throw-by-value-catch-by-reference
misc-unconventional-assign-operator
misc-uniqueptr-reset-release
misc-unused-alias-decls
misc-unused-parameters
misc-unused-using-decls
modernize-avoid-bind
modernize-avoid-c-arrays
modernize-concat-nested-namespaces
modernize-deprecated-headers
modernize-deprecated-ios-base-aliases
modernize-loop-convert
modernize-make-shared
modernize-make-unique
modernize-pass-by-value
modernize-raw-string-literal
modernize-redundant-void-arg
modernize-replace-auto-ptr
modernize-replace-random-shuffle
modernize-return-braced-init-list
modernize-shrink-to-fit
modernize-unary-static-assert
modernize-use-auto
modernize-use-bool-literals
modernize-use-default-member-init
modernize-use-emplace
modernize-use-equals-default
modernize-use-equals-delete
modernize-use-nodiscard
modernize-use-noexcept
modernize-use-nullptr
modernize-use-override
modernize-use-trailing-return-type
modernize-use-transparent-functors
modernize-use-uncaught-exceptions
modernize-use-using
mpi-buffer-deref
mpi-type-mismatch
objc-avoid-nserror-init
objc-forbidden-subclassing
objc-missing-hash
objc-property-declaration
objc-super-self
openmp-exception-escape
openmp-use-default-none
performance-faster-string-find
performance-for-range-copy
performance-implicit-conversion-in-loop
performance-inefficient-algorithm
performance-inefficient-string-concatenation
performance-inefficient-vector-operation
performance-move-const-arg
performance-move-constructor-init
performance-no-automatic-move
performance-noexcept-move-constructor
performance-trivially-destructible
performance-type-promotion-in-math-fn
performance-unnecessary-copy-initialization
performance-unnecessary-value-param
portability-simd-intrinsics
readability-avoid-const-params-in-decls
readability-braces-around-statements
readability-const-return-type
readability-container-size-empty
readability-convert-member-functions-to-static
readability-delete-null-pointer
readability-deleted-default
readability-else-after-return
readability-function-size
readability-identifier-naming
readability-implicit-bool-conversion
readability-inconsistent-declaration-parameter-name
readability-isolate-declaration
readability-magic-numbers
readability-make-member-function-const
readability-misleading-indentation
readability-misplaced-array-index
readability-named-parameter
readability-non-const-parameter
readability-qualified-auto
readability-redundant-access-specifiers
readability-redundant-control-flow
readability-redundant-declaration
readability-redundant-function-ptr-dereference
readability-redundant-member-init
readability-redundant-preprocessor
readability-redundant-smartptr-get
readability-redundant-string-cstr
readability-redundant-string-init
readability-simplify-boolean-expr
readability-simplify-subscript-expr
readability-static-accessed-through-instance
readability-static-definition-in-anonymous-namespace
readability-string-compare
readability-uniqueptr-delete-release
readability-uppercase-literal-suffix
zircon-temporary-objects

I also prefer to write this list only on debug log level but we should discuss about it on a meeting.


version = config_map[analyzer].get_version(check_env)
metadata_info['analyzer_statistics']['version'] = version

metadata_tool['analyzers'][analyzer] = metadata_info

LOG.info("Enabled checkers:\n%s", '\n'.join(enabled_checkers))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gyorb Is right, the list can be really long. I recommend you to separate checker names with commas instead of new lines. The list will be much shorter.

Seprate checker names with comma alpha.clone.CloneChecker, alpha.core.BoolAssignment, alpha.core.CallAndMessageUnInitRefArg, alpha.core.CastSize, alpha.core.CastToStruct, alpha.core.Conversion, alpha.core.DynamicTypeChecker, alpha.core.FixedAddr, alpha.core.IdenticalExpr, alpha.core.PointerArithm, alpha.core.PointerSub, alpha.core.SizeofPtr, alpha.core.StackAddressAsyncEscape, alpha.core.TestAfterDivZero, alpha.cplusplus.DeleteWithNonVirtualDtor, alpha.cplusplus.EnumCastOutOfRange, alpha.cplusplus.PlacementNew, alpha.deadcode.UnreachableCode, alpha.llvm.Conventions, alpha.nondeterminism.PointerIteration, alpha.nondeterminism.PointerSorting, alpha.osx.cocoa.DirectIvarAssignment, alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions, alpha.osx.cocoa.InstanceVariableInvalidation, alpha.osx.cocoa.IvarInvalidationModeling, alpha.osx.cocoa.MissingInvalidationMethod, alpha.osx.cocoa.localizability.PluralMisuseChecker, alpha.security.ArrayBound, alpha.security.ArrayBoundV2, alpha.security.MallocOverflow, alpha.security.MmapWriteExec, alpha.security.ReturnPtrRange, alpha.security.taint.TaintPropagation, alpha.unix.BlockInCriticalSection, alpha.unix.Chroot, alpha.unix.PthreadLock, alpha.unix.SimpleStream, alpha.unix.Stream, alpha.unix.cstring.BufferOverlap, alpha.unix.cstring.NotNullTerminated, alpha.unix.cstring.OutOfBounds, apiModeling.StdCLibraryFunctions, apiModeling.TrustNonnull, apiModeling.google.GTest, apiModeling.llvm.CastValue, apiModeling.llvm.ReturnValue, core.CallAndMessage, core.DivideZero, core.DynamicTypePropagation, core.NonNullParamChecker, core.NonnilStringConstants, core.NullDereference, core.StackAddrEscapeBase, core.StackAddressEscape, core.UndefinedBinaryOperatorResult, core.VLASize, core.builtin.BuiltinFunctions, core.builtin.NoReturnFunctions, core.uninitialized.ArraySubscript, core.uninitialized.Assign, core.uninitialized.Branch, core.uninitialized.CapturedBlockVariable, core.uninitialized.UndefReturn, cplusplus.InnerPointer, cplusplus.Move, cplusplus.NewDelete, cplusplus.NewDeleteLeaks, cplusplus.PureVirtualCall, cplusplus.SelfAssignment, cplusplus.SmartPtr, cplusplus.VirtualCallModeling, deadcode.DeadStores, debug.AnalysisOrder, debug.ConfigDumper, debug.DumpCFG, debug.DumpCallGraph, debug.DumpCalls, debug.DumpControlDependencies, debug.DumpDominators, debug.DumpLiveStmts, debug.DumpLiveVars, debug.DumpPostDominators, debug.DumpTraversal, debug.ExprInspection, debug.ReportStmts, debug.Stats, debug.TaintTest, debug.ViewCFG, debug.ViewCallGraph, debug.ViewExplodedGraph, fuchsia.HandleChecker, nullability.NullPassedToNonnull, nullability.NullReturnedFromNonnull, nullability.NullabilityBase, nullability.NullableDereferenced, nullability.NullablePassedToNonnull, nullability.NullableReturnedFromNonnull, optin.cplusplus.UninitializedObject, optin.cplusplus.VirtualCall, optin.mpi.MPI-Checker, optin.osx.OSObjectCStyleCast, optin.osx.cocoa.localizability.EmptyLocalizationContextChecker, optin.osx.cocoa.localizability.NonLocalizedStringChecker, optin.performance.GCDAntipattern, optin.performance.Padding, optin.portability.UnixAPI, osx.API, osx.MIG, osx.NSOrCFErrorDerefChecker, osx.NumberObjectConversion, osx.OSObjectRetainCount, osx.ObjCProperty, osx.SecKeychainAPI, osx.cocoa.AtSync, osx.cocoa.AutoreleaseWrite, osx.cocoa.ClassRelease, osx.cocoa.Dealloc, osx.cocoa.IncompatibleMethodTypes, osx.cocoa.Loops, osx.cocoa.MissingSuperCall, osx.cocoa.NSAutoreleasePool, osx.cocoa.NSError, osx.cocoa.NilArg, osx.cocoa.NonNilReturnValue, osx.cocoa.ObjCGenerics, osx.cocoa.RetainCount, osx.cocoa.RetainCountBase, osx.cocoa.RunLoopAutoreleaseLeak, osx.cocoa.SelfInit, osx.cocoa.SuperDealloc, osx.cocoa.UnusedIvars, osx.cocoa.VariadicMethodTypes, osx.coreFoundation.CFError, osx.coreFoundation.CFNumber, osx.coreFoundation.CFRetainRelease, osx.coreFoundation.containers.OutOfBounds, osx.coreFoundation.containers.PointerSizedValues, security.FloatLoopCounter, security.insecureAPI.DeprecatedOrUnsafeBufferHandling, security.insecureAPI.SecuritySyntaxChecker, security.insecureAPI.UncheckedReturn, security.insecureAPI.bcmp, security.insecureAPI.bcopy, security.insecureAPI.bzero, security.insecureAPI.decodeValueOfObjCType, security.insecureAPI.getpw, security.insecureAPI.gets, security.insecureAPI.mkstemp, security.insecureAPI.mktemp, security.insecureAPI.rand, security.insecureAPI.strcpy, security.insecureAPI.vfork, unix.API, unix.DynamicMemoryModeling, unix.Malloc, unix.MallocSizeof, unix.MismatchedDeallocator, unix.Vfork, unix.cstring.BadSizeArg, unix.cstring.CStringModeling, unix.cstring.NullArg, valist.CopyToSelf, valist.Uninitialized, valist.Unterminated, valist.ValistBase, abseil-duration-addition, abseil-duration-comparison, abseil-duration-conversion-cast, abseil-duration-division, abseil-duration-factory-float, abseil-duration-factory-scale, abseil-duration-subtraction, abseil-duration-unnecessary-conversion, abseil-faster-strsplit-delimiter, abseil-no-internal-dependencies, abseil-no-namespace, abseil-redundant-strcat-calls, abseil-str-cat-append, abseil-string-find-startswith, abseil-time-comparison, abseil-time-subtraction, abseil-upgrade-duration-conversions, android-cloexec-accept, android-cloexec-accept4, android-cloexec-creat, android-cloexec-dup, android-cloexec-epoll-create, android-cloexec-epoll-create1, android-cloexec-fopen, android-cloexec-inotify-init, android-cloexec-inotify-init1, android-cloexec-memfd-create, android-cloexec-open, android-cloexec-pipe, android-cloexec-pipe2, android-cloexec-socket, android-comparison-in-temp-failure-retry, boost-use-to-string, bugprone-argument-comment, bugprone-assert-side-effect, bugprone-bad-signal-to-kill-thread, bugprone-bool-pointer-implicit-conversion, bugprone-branch-clone, bugprone-copy-constructor-init, bugprone-dangling-handle, bugprone-dynamic-static-initializers, bugprone-exception-escape, bugprone-fold-init-type, bugprone-forward-declaration-namespace, bugprone-forwarding-reference-overload, bugprone-inaccurate-erase, bugprone-incorrect-roundings, bugprone-infinite-loop, bugprone-integer-division, bugprone-lambda-function-name, bugprone-macro-parentheses, bugprone-macro-repeated-side-effects, bugprone-misplaced-operator-in-strlen-in-alloc, bugprone-misplaced-widening-cast, bugprone-move-forwarding-reference, bugprone-multiple-statement-macro, bugprone-narrowing-conversions, bugprone-not-null-terminated-result, bugprone-parent-virtual-call, bugprone-posix-return, bugprone-signed-char-misuse, bugprone-sizeof-container, bugprone-sizeof-expression, bugprone-string-constructor, bugprone-string-integer-assignment, bugprone-string-literal-with-embedded-nul, bugprone-suspicious-enum-usage, bugprone-suspicious-memset-usage, bugprone-suspicious-missing-comma, bugprone-suspicious-semicolon, bugprone-suspicious-string-compare, bugprone-swapped-arguments, bugprone-terminating-continue, bugprone-throw-keyword-missing, bugprone-too-small-loop-variable, bugprone-undefined-memory-manipulation, bugprone-undelegated-constructor, bugprone-unhandled-self-assignment, bugprone-unused-raii, bugprone-unused-return-value, bugprone-use-after-move, bugprone-virtual-near-miss, cert-dcl03-c, cert-dcl16-c, cert-dcl21-cpp, cert-dcl50-cpp, cert-dcl54-cpp, cert-dcl58-cpp, cert-dcl59-cpp, cert-env33-c, cert-err09-cpp, cert-err34-c, cert-err52-cpp, cert-err58-cpp, cert-err60-cpp, cert-err61-cpp, cert-fio38-c, cert-flp30-c, cert-mem57-cpp, cert-msc30-c, cert-msc32-c, cert-msc50-cpp, cert-msc51-cpp, cert-oop11-cpp, cert-oop54-cpp, cert-oop58-cpp, cert-pos44-c, cppcoreguidelines-avoid-c-arrays, cppcoreguidelines-avoid-goto, cppcoreguidelines-avoid-magic-numbers, cppcoreguidelines-c-copy-assignment-signature, cppcoreguidelines-explicit-virtual-functions, cppcoreguidelines-init-variables, cppcoreguidelines-interfaces-global-init, cppcoreguidelines-macro-usage, cppcoreguidelines-narrowing-conversions, cppcoreguidelines-no-malloc, cppcoreguidelines-non-private-member-variables-in-classes, cppcoreguidelines-owning-memory, cppcoreguidelines-pro-bounds-array-to-pointer-decay, cppcoreguidelines-pro-bounds-constant-array-index, cppcoreguidelines-pro-bounds-pointer-arithmetic, cppcoreguidelines-pro-type-const-cast, cppcoreguidelines-pro-type-cstyle-cast, cppcoreguidelines-pro-type-member-init, cppcoreguidelines-pro-type-reinterpret-cast, cppcoreguidelines-pro-type-static-cast-downcast, cppcoreguidelines-pro-type-union-access, cppcoreguidelines-pro-type-vararg, cppcoreguidelines-slicing, cppcoreguidelines-special-member-functions, darwin-avoid-spinlock, darwin-dispatch-once-nonstatic, fuchsia-default-arguments-calls, fuchsia-default-arguments-declarations, fuchsia-header-anon-namespaces, fuchsia-multiple-inheritance, fuchsia-overloaded-operator, fuchsia-restrict-system-includes, fuchsia-statically-constructed-objects, fuchsia-trailing-return, fuchsia-virtual-inheritance, google-build-explicit-make-pair, google-build-namespaces, google-build-using-namespace, google-default-arguments, google-explicit-constructor, google-global-names-in-headers, google-objc-avoid-nsobject-new, google-objc-avoid-throwing-exception, google-objc-function-naming, google-objc-global-variable-declaration, google-readability-avoid-underscore-in-googletest-name, google-readability-braces-around-statements, google-readability-casting, google-readability-function-size, google-readability-namespace-comments, google-readability-todo, google-runtime-int, google-runtime-operator, google-runtime-references, google-upgrade-googletest-case, hicpp-avoid-c-arrays, hicpp-avoid-goto, hicpp-braces-around-statements, hicpp-deprecated-headers, hicpp-exception-baseclass, hicpp-explicit-conversions, hicpp-function-size, hicpp-invalid-access-moved, hicpp-member-init, hicpp-move-const-arg, hicpp-multiway-paths-covered, hicpp-named-parameter, hicpp-new-delete-operators, hicpp-no-array-decay, hicpp-no-assembler, hicpp-no-malloc, hicpp-noexcept-move, hicpp-signed-bitwise, hicpp-special-member-functions, hicpp-static-assert, hicpp-undelegated-constructor, hicpp-uppercase-literal-suffix, hicpp-use-auto, hicpp-use-emplace, hicpp-use-equals-default, hicpp-use-equals-delete, hicpp-use-noexcept, hicpp-use-nullptr, hicpp-use-override, hicpp-vararg, linuxkernel-must-check-errs, llvm-header-guard, llvm-include-order, llvm-namespace-comment, llvm-prefer-isa-or-dyn-cast-in-conditionals, llvm-prefer-register-over-unsigned, llvm-qualified-auto, llvm-twine-local, misc-definitions-in-headers, misc-misplaced-const, misc-new-delete-overloads, misc-non-copyable-objects, misc-non-private-member-variables-in-classes, misc-redundant-expression, misc-static-assert, misc-throw-by-value-catch-by-reference, misc-unconventional-assign-operator, misc-uniqueptr-reset-release, misc-unused-alias-decls, misc-unused-parameters, misc-unused-using-decls, modernize-avoid-bind, modernize-avoid-c-arrays, modernize-concat-nested-namespaces, modernize-deprecated-headers, modernize-deprecated-ios-base-aliases, modernize-loop-convert, modernize-make-shared, modernize-make-unique, modernize-pass-by-value, modernize-raw-string-literal, modernize-redundant-void-arg, modernize-replace-auto-ptr, modernize-replace-random-shuffle, modernize-return-braced-init-list, modernize-shrink-to-fit, modernize-unary-static-assert, modernize-use-auto, modernize-use-bool-literals, modernize-use-default-member-init, modernize-use-emplace, modernize-use-equals-default, modernize-use-equals-delete, modernize-use-nodiscard, modernize-use-noexcept, modernize-use-nullptr, modernize-use-override, modernize-use-trailing-return-type, modernize-use-transparent-functors, modernize-use-uncaught-exceptions, modernize-use-using, mpi-buffer-deref, mpi-type-mismatch, objc-avoid-nserror-init, objc-forbidden-subclassing, objc-missing-hash, objc-property-declaration, objc-super-self, openmp-exception-escape, openmp-use-default-none, performance-faster-string-find, performance-for-range-copy, performance-implicit-conversion-in-loop, performance-inefficient-algorithm, performance-inefficient-string-concatenation, performance-inefficient-vector-operation, performance-move-const-arg, performance-move-constructor-init, performance-no-automatic-move, performance-noexcept-move-constructor, performance-trivially-destructible, performance-type-promotion-in-math-fn, performance-unnecessary-copy-initialization, performance-unnecessary-value-param, portability-simd-intrinsics, readability-avoid-const-params-in-decls, readability-braces-around-statements, readability-const-return-type, readability-container-size-empty, readability-convert-member-functions-to-static, readability-delete-null-pointer, readability-deleted-default, readability-else-after-return, readability-function-size, readability-identifier-naming, readability-implicit-bool-conversion, readability-inconsistent-declaration-parameter-name, readability-isolate-declaration, readability-magic-numbers, readability-make-member-function-const, readability-misleading-indentation, readability-misplaced-array-index, readability-named-parameter, readability-non-const-parameter, readability-qualified-auto, readability-redundant-access-specifiers, readability-redundant-control-flow, readability-redundant-declaration, readability-redundant-function-ptr-dereference, readability-redundant-member-init, readability-redundant-preprocessor, readability-redundant-smartptr-get, readability-redundant-string-cstr, readability-redundant-string-init, readability-simplify-boolean-expr, readability-simplify-subscript-expr, readability-static-accessed-through-instance, readability-static-definition-in-anonymous-namespace, readability-string-compare, readability-uniqueptr-delete-release, readability-uppercase-literal-suffix, zircon-temporary-objects
Seprate checker names with new lines alpha.clone.CloneChecker
alpha.core.BoolAssignment
alpha.core.CallAndMessageUnInitRefArg
alpha.core.CastSize
alpha.core.CastToStruct
alpha.core.Conversion
alpha.core.DynamicTypeChecker
alpha.core.FixedAddr
alpha.core.IdenticalExpr
alpha.core.PointerArithm
alpha.core.PointerSub
alpha.core.SizeofPtr
alpha.core.StackAddressAsyncEscape
alpha.core.TestAfterDivZero
alpha.cplusplus.DeleteWithNonVirtualDtor
alpha.cplusplus.EnumCastOutOfRange
alpha.cplusplus.PlacementNew
alpha.deadcode.UnreachableCode
alpha.llvm.Conventions
alpha.nondeterminism.PointerIteration
alpha.nondeterminism.PointerSorting
alpha.osx.cocoa.DirectIvarAssignment
alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions
alpha.osx.cocoa.InstanceVariableInvalidation
alpha.osx.cocoa.IvarInvalidationModeling
alpha.osx.cocoa.MissingInvalidationMethod
alpha.osx.cocoa.localizability.PluralMisuseChecker
alpha.security.ArrayBound
alpha.security.ArrayBoundV2
alpha.security.MallocOverflow
alpha.security.MmapWriteExec
alpha.security.ReturnPtrRange
alpha.security.taint.TaintPropagation
alpha.unix.BlockInCriticalSection
alpha.unix.Chroot
alpha.unix.PthreadLock
alpha.unix.SimpleStream
alpha.unix.Stream
alpha.unix.cstring.BufferOverlap
alpha.unix.cstring.NotNullTerminated
alpha.unix.cstring.OutOfBounds
apiModeling.StdCLibraryFunctions
apiModeling.TrustNonnull
apiModeling.google.GTest
apiModeling.llvm.CastValue
apiModeling.llvm.ReturnValue
core.CallAndMessage
core.DivideZero
core.DynamicTypePropagation
core.NonNullParamChecker
core.NonnilStringConstants
core.NullDereference
core.StackAddrEscapeBase
core.StackAddressEscape
core.UndefinedBinaryOperatorResult
core.VLASize
core.builtin.BuiltinFunctions
core.builtin.NoReturnFunctions
core.uninitialized.ArraySubscript
core.uninitialized.Assign
core.uninitialized.Branch
core.uninitialized.CapturedBlockVariable
core.uninitialized.UndefReturn
cplusplus.InnerPointer
cplusplus.Move
cplusplus.NewDelete
cplusplus.NewDeleteLeaks
cplusplus.PureVirtualCall
cplusplus.SelfAssignment
cplusplus.SmartPtr
cplusplus.VirtualCallModeling
deadcode.DeadStores
debug.AnalysisOrder
debug.ConfigDumper
debug.DumpCFG
debug.DumpCallGraph
debug.DumpCalls
debug.DumpControlDependencies
debug.DumpDominators
debug.DumpLiveStmts
debug.DumpLiveVars
debug.DumpPostDominators
debug.DumpTraversal
debug.ExprInspection
debug.ReportStmts
debug.Stats
debug.TaintTest
debug.ViewCFG
debug.ViewCallGraph
debug.ViewExplodedGraph
fuchsia.HandleChecker
nullability.NullPassedToNonnull
nullability.NullReturnedFromNonnull
nullability.NullabilityBase
nullability.NullableDereferenced
nullability.NullablePassedToNonnull
nullability.NullableReturnedFromNonnull
optin.cplusplus.UninitializedObject
optin.cplusplus.VirtualCall
optin.mpi.MPI-Checker
optin.osx.OSObjectCStyleCast
optin.osx.cocoa.localizability.EmptyLocalizationContextChecker
optin.osx.cocoa.localizability.NonLocalizedStringChecker
optin.performance.GCDAntipattern
optin.performance.Padding
optin.portability.UnixAPI
osx.API
osx.MIG
osx.NSOrCFErrorDerefChecker
osx.NumberObjectConversion
osx.OSObjectRetainCount
osx.ObjCProperty
osx.SecKeychainAPI
osx.cocoa.AtSync
osx.cocoa.AutoreleaseWrite
osx.cocoa.ClassRelease
osx.cocoa.Dealloc
osx.cocoa.IncompatibleMethodTypes
osx.cocoa.Loops
osx.cocoa.MissingSuperCall
osx.cocoa.NSAutoreleasePool
osx.cocoa.NSError
osx.cocoa.NilArg
osx.cocoa.NonNilReturnValue
osx.cocoa.ObjCGenerics
osx.cocoa.RetainCount
osx.cocoa.RetainCountBase
osx.cocoa.RunLoopAutoreleaseLeak
osx.cocoa.SelfInit
osx.cocoa.SuperDealloc
osx.cocoa.UnusedIvars
osx.cocoa.VariadicMethodTypes
osx.coreFoundation.CFError
osx.coreFoundation.CFNumber
osx.coreFoundation.CFRetainRelease
osx.coreFoundation.containers.OutOfBounds
osx.coreFoundation.containers.PointerSizedValues
security.FloatLoopCounter
security.insecureAPI.DeprecatedOrUnsafeBufferHandling
security.insecureAPI.SecuritySyntaxChecker
security.insecureAPI.UncheckedReturn
security.insecureAPI.bcmp
security.insecureAPI.bcopy
security.insecureAPI.bzero
security.insecureAPI.decodeValueOfObjCType
security.insecureAPI.getpw
security.insecureAPI.gets
security.insecureAPI.mkstemp
security.insecureAPI.mktemp
security.insecureAPI.rand
security.insecureAPI.strcpy
security.insecureAPI.vfork
unix.API
unix.DynamicMemoryModeling
unix.Malloc
unix.MallocSizeof
unix.MismatchedDeallocator
unix.Vfork
unix.cstring.BadSizeArg
unix.cstring.CStringModeling
unix.cstring.NullArg
valist.CopyToSelf
valist.Uninitialized
valist.Unterminated
valist.ValistBase
abseil-duration-addition
abseil-duration-comparison
abseil-duration-conversion-cast
abseil-duration-division
abseil-duration-factory-float
abseil-duration-factory-scale
abseil-duration-subtraction
abseil-duration-unnecessary-conversion
abseil-faster-strsplit-delimiter
abseil-no-internal-dependencies
abseil-no-namespace
abseil-redundant-strcat-calls
abseil-str-cat-append
abseil-string-find-startswith
abseil-time-comparison
abseil-time-subtraction
abseil-upgrade-duration-conversions
android-cloexec-accept
android-cloexec-accept4
android-cloexec-creat
android-cloexec-dup
android-cloexec-epoll-create
android-cloexec-epoll-create1
android-cloexec-fopen
android-cloexec-inotify-init
android-cloexec-inotify-init1
android-cloexec-memfd-create
android-cloexec-open
android-cloexec-pipe
android-cloexec-pipe2
android-cloexec-socket
android-comparison-in-temp-failure-retry
boost-use-to-string
bugprone-argument-comment
bugprone-assert-side-effect
bugprone-bad-signal-to-kill-thread
bugprone-bool-pointer-implicit-conversion
bugprone-branch-clone
bugprone-copy-constructor-init
bugprone-dangling-handle
bugprone-dynamic-static-initializers
bugprone-exception-escape
bugprone-fold-init-type
bugprone-forward-declaration-namespace
bugprone-forwarding-reference-overload
bugprone-inaccurate-erase
bugprone-incorrect-roundings
bugprone-infinite-loop
bugprone-integer-division
bugprone-lambda-function-name
bugprone-macro-parentheses
bugprone-macro-repeated-side-effects
bugprone-misplaced-operator-in-strlen-in-alloc
bugprone-misplaced-widening-cast
bugprone-move-forwarding-reference
bugprone-multiple-statement-macro
bugprone-narrowing-conversions
bugprone-not-null-terminated-result
bugprone-parent-virtual-call
bugprone-posix-return
bugprone-signed-char-misuse
bugprone-sizeof-container
bugprone-sizeof-expression
bugprone-string-constructor
bugprone-string-integer-assignment
bugprone-string-literal-with-embedded-nul
bugprone-suspicious-enum-usage
bugprone-suspicious-memset-usage
bugprone-suspicious-missing-comma
bugprone-suspicious-semicolon
bugprone-suspicious-string-compare
bugprone-swapped-arguments
bugprone-terminating-continue
bugprone-throw-keyword-missing
bugprone-too-small-loop-variable
bugprone-undefined-memory-manipulation
bugprone-undelegated-constructor
bugprone-unhandled-self-assignment
bugprone-unused-raii
bugprone-unused-return-value
bugprone-use-after-move
bugprone-virtual-near-miss
cert-dcl03-c
cert-dcl16-c
cert-dcl21-cpp
cert-dcl50-cpp
cert-dcl54-cpp
cert-dcl58-cpp
cert-dcl59-cpp
cert-env33-c
cert-err09-cpp
cert-err34-c
cert-err52-cpp
cert-err58-cpp
cert-err60-cpp
cert-err61-cpp
cert-fio38-c
cert-flp30-c
cert-mem57-cpp
cert-msc30-c
cert-msc32-c
cert-msc50-cpp
cert-msc51-cpp
cert-oop11-cpp
cert-oop54-cpp
cert-oop58-cpp
cert-pos44-c
cppcoreguidelines-avoid-c-arrays
cppcoreguidelines-avoid-goto
cppcoreguidelines-avoid-magic-numbers
cppcoreguidelines-c-copy-assignment-signature
cppcoreguidelines-explicit-virtual-functions
cppcoreguidelines-init-variables
cppcoreguidelines-interfaces-global-init
cppcoreguidelines-macro-usage
cppcoreguidelines-narrowing-conversions
cppcoreguidelines-no-malloc
cppcoreguidelines-non-private-member-variables-in-classes
cppcoreguidelines-owning-memory
cppcoreguidelines-pro-bounds-array-to-pointer-decay
cppcoreguidelines-pro-bounds-constant-array-index
cppcoreguidelines-pro-bounds-pointer-arithmetic
cppcoreguidelines-pro-type-const-cast
cppcoreguidelines-pro-type-cstyle-cast
cppcoreguidelines-pro-type-member-init
cppcoreguidelines-pro-type-reinterpret-cast
cppcoreguidelines-pro-type-static-cast-downcast
cppcoreguidelines-pro-type-union-access
cppcoreguidelines-pro-type-vararg
cppcoreguidelines-slicing
cppcoreguidelines-special-member-functions
darwin-avoid-spinlock
darwin-dispatch-once-nonstatic
fuchsia-default-arguments-calls
fuchsia-default-arguments-declarations
fuchsia-header-anon-namespaces
fuchsia-multiple-inheritance
fuchsia-overloaded-operator
fuchsia-restrict-system-includes
fuchsia-statically-constructed-objects
fuchsia-trailing-return
fuchsia-virtual-inheritance
google-build-explicit-make-pair
google-build-namespaces
google-build-using-namespace
google-default-arguments
google-explicit-constructor
google-global-names-in-headers
google-objc-avoid-nsobject-new
google-objc-avoid-throwing-exception
google-objc-function-naming
google-objc-global-variable-declaration
google-readability-avoid-underscore-in-googletest-name
google-readability-braces-around-statements
google-readability-casting
google-readability-function-size
google-readability-namespace-comments
google-readability-todo
google-runtime-int
google-runtime-operator
google-runtime-references
google-upgrade-googletest-case
hicpp-avoid-c-arrays
hicpp-avoid-goto
hicpp-braces-around-statements
hicpp-deprecated-headers
hicpp-exception-baseclass
hicpp-explicit-conversions
hicpp-function-size
hicpp-invalid-access-moved
hicpp-member-init
hicpp-move-const-arg
hicpp-multiway-paths-covered
hicpp-named-parameter
hicpp-new-delete-operators
hicpp-no-array-decay
hicpp-no-assembler
hicpp-no-malloc
hicpp-noexcept-move
hicpp-signed-bitwise
hicpp-special-member-functions
hicpp-static-assert
hicpp-undelegated-constructor
hicpp-uppercase-literal-suffix
hicpp-use-auto
hicpp-use-emplace
hicpp-use-equals-default
hicpp-use-equals-delete
hicpp-use-noexcept
hicpp-use-nullptr
hicpp-use-override
hicpp-vararg
linuxkernel-must-check-errs
llvm-header-guard
llvm-include-order
llvm-namespace-comment
llvm-prefer-isa-or-dyn-cast-in-conditionals
llvm-prefer-register-over-unsigned
llvm-qualified-auto
llvm-twine-local
misc-definitions-in-headers
misc-misplaced-const
misc-new-delete-overloads
misc-non-copyable-objects
misc-non-private-member-variables-in-classes
misc-redundant-expression
misc-static-assert
misc-throw-by-value-catch-by-reference
misc-unconventional-assign-operator
misc-uniqueptr-reset-release
misc-unused-alias-decls
misc-unused-parameters
misc-unused-using-decls
modernize-avoid-bind
modernize-avoid-c-arrays
modernize-concat-nested-namespaces
modernize-deprecated-headers
modernize-deprecated-ios-base-aliases
modernize-loop-convert
modernize-make-shared
modernize-make-unique
modernize-pass-by-value
modernize-raw-string-literal
modernize-redundant-void-arg
modernize-replace-auto-ptr
modernize-replace-random-shuffle
modernize-return-braced-init-list
modernize-shrink-to-fit
modernize-unary-static-assert
modernize-use-auto
modernize-use-bool-literals
modernize-use-default-member-init
modernize-use-emplace
modernize-use-equals-default
modernize-use-equals-delete
modernize-use-nodiscard
modernize-use-noexcept
modernize-use-nullptr
modernize-use-override
modernize-use-trailing-return-type
modernize-use-transparent-functors
modernize-use-uncaught-exceptions
modernize-use-using
mpi-buffer-deref
mpi-type-mismatch
objc-avoid-nserror-init
objc-forbidden-subclassing
objc-missing-hash
objc-property-declaration
objc-super-self
openmp-exception-escape
openmp-use-default-none
performance-faster-string-find
performance-for-range-copy
performance-implicit-conversion-in-loop
performance-inefficient-algorithm
performance-inefficient-string-concatenation
performance-inefficient-vector-operation
performance-move-const-arg
performance-move-constructor-init
performance-no-automatic-move
performance-noexcept-move-constructor
performance-trivially-destructible
performance-type-promotion-in-math-fn
performance-unnecessary-copy-initialization
performance-unnecessary-value-param
portability-simd-intrinsics
readability-avoid-const-params-in-decls
readability-braces-around-statements
readability-const-return-type
readability-container-size-empty
readability-convert-member-functions-to-static
readability-delete-null-pointer
readability-deleted-default
readability-else-after-return
readability-function-size
readability-identifier-naming
readability-implicit-bool-conversion
readability-inconsistent-declaration-parameter-name
readability-isolate-declaration
readability-magic-numbers
readability-make-member-function-const
readability-misleading-indentation
readability-misplaced-array-index
readability-named-parameter
readability-non-const-parameter
readability-qualified-auto
readability-redundant-access-specifiers
readability-redundant-control-flow
readability-redundant-declaration
readability-redundant-function-ptr-dereference
readability-redundant-member-init
readability-redundant-preprocessor
readability-redundant-smartptr-get
readability-redundant-string-cstr
readability-redundant-string-init
readability-simplify-boolean-expr
readability-simplify-subscript-expr
readability-static-accessed-through-instance
readability-static-definition-in-anonymous-namespace
readability-string-compare
readability-uniqueptr-delete-release
readability-uppercase-literal-suffix
zircon-temporary-objects

I also prefer to write this list only on debug log level but we should discuss about it on a meeting.

@@ -240,6 +240,8 @@ def perform_analysis(args, skip_handler, context, actions, metadata_tool,
check_env = env.extend(context.path_env_extra,
context.ld_lib_path_extra)

enabled_checkers = []
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe @gyorb is right. It would be better to print enabled checker for each analyzers separately. Similar to this:

Enabled checker:
 - ClangSA: checker1, checker2
 - Clang Tidy: checker3, checker4

Copy link
Contributor

@csordasmarton csordasmarton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but we should discuss that it is enough to print this on debug log level.

@gyorb
Copy link
Contributor

gyorb commented Aug 28, 2020

After the discussion the checkers should be printed with the info log level so they are visible in the analysis jobs.

@bruntib
Copy link
Contributor Author

bruntib commented Aug 28, 2020

Done

@bruntib bruntib requested a review from csordasmarton August 28, 2020 15:42
Copy link
Contributor

@csordasmarton csordasmarton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Analyzer related test cases are failed on the Travis. Please check it.

@bruntib bruntib force-pushed the enabled_checkers branch 2 times, most recently from 67fb4c0 to fcfd0b8 Compare August 29, 2020 12:45
@bruntib bruntib requested a review from csordasmarton August 29, 2020 12:56
# analysis.
"[] - Enabled checkers:",
"clang-tidy:",
"clangsa"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not we need a : at the end of this string same as for clang-tidy:

Suggested change
"clangsa"]
"clangsa:"]

The list of applied checkers can be configured by -e, -d flags,
CodeChecker config files, etc. It is hard to see which checkers are
actually enabled during the analysis. Now the enabled checkers are
listed at the beginning of the analysis.
@gyorb
Copy link
Contributor

gyorb commented Aug 31, 2020

Codacy Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- analyzer/codechecker_analyzer/analyzer.py  1
         

See the complete overview on Codacy

@csordasmarton csordasmarton added the analyzer 📈 Related to the analyze commands (analysis driver) label Aug 31, 2020
@csordasmarton csordasmarton added this to the release 6.14.0 milestone Aug 31, 2020
Copy link
Contributor

@csordasmarton csordasmarton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@csordasmarton csordasmarton merged commit 1577240 into Ericsson:master Aug 31, 2020
@bruntib bruntib deleted the enabled_checkers branch September 2, 2020 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analyzer 📈 Related to the analyze commands (analysis driver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants