clang-tidy's focus is on c++. Disable all checks that do not apply to the
libVirt code base. Also disable all checks that are currently failing, to
prevent introduction of new issues, while we work down the list of existing
issues and / or decide on disabling some checks permanently.
Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
scripts/run-clang-tidy.py | 326 ++++++++++++++++++++++++++++++++++++++
1 file changed, 326 insertions(+)
diff --git a/scripts/run-clang-tidy.py b/scripts/run-clang-tidy.py
index 945a1f75d4..24bc034682 100755
--- a/scripts/run-clang-tidy.py
+++ b/scripts/run-clang-tidy.py
@@ -25,6 +25,331 @@ spam = [
]
+disabled_checks = [
+ # aliases for other checks
+ "bugprone-narrowing-conversions",
+ "cert-dcl03-c",
+ "cert-dcl16-c",
+ "cert-dcl54-cpp",
+ "cert-dcl59-cpp",
+ "cert-err61-cpp",
+ "cert-fio38-c",
+ "cert-msc30-c",
+ "cert-msc32-c",
+ "cert-oop11-cpp",
+ "cert-oop54-cpp",
+ "cert-pos44-c",
+ "cppcoreguidelines-avoid-c-arrays",
+ "cppcoreguidelines-avoid-magic-numbers",
+ "cppcoreguidelines-c-copy-assignment-signature",
+ "cppcoreguidelines-explicit-virtual-functions",
+ "cppcoreguidelines-non-private-member-variables-in-classes",
+ "fuchsia-header-anon-namespaces",
+ "google-readability-braces-around-statements",
+ "google-readability-function-size",
+ "google-readability-namespace-comments",
+ "hicpp-avoid-c-arrays",
+ "hicpp-avoid-goto",
+ "hicpp-braces-around-statements",
+ "hicpp-deprecated-headers",
+ "hicpp-explicit-conversions",
+ "hicpp-function-size",
+ "hicpp-invalid-access-moved",
+ "hicpp-member-init",
+ "hicpp-move-const-arg",
+ "hicpp-named-parameter",
+ "hicpp-new-delete-operators",
+ "hicpp-no-array-decay",
+ "hicpp-no-malloc",
+ "hicpp-special-member-functions",
+ "hicpp-static-assert",
+ "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",
+ "llvm-qualified-auto",
+
+ # only relevant for c++
+ "bugprone-copy-constructor-init",
+ "bugprone-dangling-handle",
+ "bugprone-exception-escape",
+ "bugprone-fold-init-type",
+ "bugprone-forward-declaration-namespace",
+ "bugprone-forwarding-reference-overload",
+ "bugprone-inaccurate-erase",
+ "bugprone-lambda-function-name",
+ "bugprone-move-forwarding-reference",
+ "bugprone-parent-virtual-call",
+ "bugprone-sizeof-container",
+ "bugprone-string-constructor",
+ "bugprone-string-integer-assignment",
+ "bugprone-swapped-arguments",
+ "bugprone-throw-keyword-missing",
+ "bugprone-undelegated-constructor",
+ "bugprone-unhandled-self-assignment",
+ "bugprone-unused-raii",
+ "bugprone-unused-return-value",
+ "bugprone-use-after-move",
+ "bugprone-virtual-near-miss",
+ "cert-dcl21-cpp",
+ "cert-dcl50-cpp",
+ "cert-dcl58-cpp",
+ "cert-err09-cpp",
+ "cert-err52-cpp",
+ "cert-err58-cpp",
+ "cert-err60-cpp",
+ "cert-mem57-cpp",
+ "cert-msc50-cpp",
+ "cert-msc51-cpp",
+ "cert-oop58-cpp",
+ "clang-analyzer-cplusplus.InnerPointer",
+ "clang-analyzer-cplusplus.Move",
+ "clang-analyzer-cplusplus.NewDelete",
+ "clang-analyzer-cplusplus.NewDeleteLeaks",
+ "clang-analyzer-cplusplus.PureVirtualCall",
+ "clang-analyzer-cplusplus.SelfAssignment",
+ "clang-analyzer-cplusplus.SmartPtr",
+ "clang-analyzer-cplusplus.VirtualCallModeling",
+ "clang-analyzer-optin.cplusplus.UninitializedObject",
+ "clang-analyzer-optin.cplusplus.VirtualCall",
+ "cppcoreguidelines-no-malloc",
+ "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",
+ "fuchsia-default-arguments-calls",
+ "fuchsia-default-arguments-declarations",
+ "fuchsia-multiple-inheritance",
+ "fuchsia-overloaded-operator",
+ "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-readability-casting",
+ "google-runtime-operator",
+ "google-runtime-references",
+ "hicpp-exception-baseclass",
+ "hicpp-noexcept-move",
+ "hicpp-undelegated-constructor",
+ "llvm-namespace-comment",
+ "llvm-prefer-isa-or-dyn-cast-in-conditionals",
+ "llvm-prefer-register-over-unsigned",
+ "llvm-twine-local",
+ "misc-new-delete-overloads",
+ "misc-non-private-member-variables-in-classes",
+ "misc-throw-by-value-catch-by-reference",
+ "misc-unconventional-assign-operator",
+ "misc-uniqueptr-reset-release",
+ "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",
+ "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-container-size-empty",
+ "readability-convert-member-functions-to-static",
+ "readability-deleted-default",
+ "readability-make-member-function-const",
+ "readability-qualified-auto",
+ "readability-redundant-access-specifiers",
+ "readability-redundant-member-init",
+ "readability-redundant-smartptr-get",
+ "readability-redundant-string-cstr",
+ "readability-redundant-string-init",
+ "readability-simplify-subscript-expr",
+ "readability-static-accessed-through-instance",
+ "readability-static-definition-in-anonymous-namespace",
+ "readability-string-compare",
+ "readability-uniqueptr-delete-release",
+ "zircon-temporary-objects",
+
+ # only relevant for objective c
+ "clang-analyzer-nullability.NullableDereferenced",
+ "clang-analyzer-nullability.NullablePassedToNonnull",
+ "clang-analyzer-nullability.NullableReturnedFromNonnull",
+ "clang-analyzer-nullability.NullPassedToNonnull",
+ "clang-analyzer-nullability.NullReturnedFromNonnull",
+ "clang-analyzer-optin.osx.cocoa.localizability." +
+ "EmptyLocalizationContextChecker",
+ "clang-analyzer-optin.osx.cocoa.localizability." +
+ "NonLocalizedStringChecker",
+ "clang-analyzer-optin.osx.OSObjectCStyleCast",
+ "clang-analyzer-optin.performance.GCDAntipattern",
+ "google-objc-avoid-nsobject-new",
+ "google-objc-avoid-throwing-exception",
+ "google-objc-function-naming",
+ "google-objc-global-variable-declaration",
+ "objc-avoid-nserror-init",
+ "objc-forbidden-subclassing",
+ "objc-missing-hash",
+ "objc-property-declaration",
+ "objc-super-self",
+
+ # only relevant for certain libraries
+ "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",
+ "boost-use-to-string",
+ "clang-analyzer-optin.mpi.MPI-Checker",
+ "google-readability-avoid-underscore-in-googletest-name",
+ "google-upgrade-googletest-case",
+ "mpi-buffer-deref",
+ "mpi-type-mismatch",
+ "openmp-exception-escape",
+ "openmp-use-default-none",
+
+ # only relevant for osx
+ "clang-analyzer-osx.API",
+ "clang-analyzer-osx.cocoa.AtSync",
+ "clang-analyzer-osx.cocoa.AutoreleaseWrite",
+ "clang-analyzer-osx.cocoa.ClassRelease",
+ "clang-analyzer-osx.cocoa.Dealloc",
+ "clang-analyzer-osx.cocoa.IncompatibleMethodTypes",
+ "clang-analyzer-osx.cocoa.Loops",
+ "clang-analyzer-osx.cocoa.MissingSuperCall",
+ "clang-analyzer-osx.cocoa.NilArg",
+ "clang-analyzer-osx.cocoa.NonNilReturnValue",
+ "clang-analyzer-osx.cocoa.NSAutoreleasePool",
+ "clang-analyzer-osx.cocoa.NSError",
+ "clang-analyzer-osx.cocoa.ObjCGenerics",
+ "clang-analyzer-osx.cocoa.RetainCount",
+ "clang-analyzer-osx.cocoa.RetainCountBase",
+ "clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak",
+ "clang-analyzer-osx.cocoa.SelfInit",
+ "clang-analyzer-osx.cocoa.SuperDealloc",
+ "clang-analyzer-osx.cocoa.UnusedIvars",
+ "clang-analyzer-osx.cocoa.VariadicMethodTypes",
+ "clang-analyzer-osx.coreFoundation.CFError",
+ "clang-analyzer-osx.coreFoundation.CFNumber",
+ "clang-analyzer-osx.coreFoundation.CFRetainRelease",
+ "clang-analyzer-osx.coreFoundation.containers.OutOfBounds",
+ "clang-analyzer-osx.coreFoundation.containers.PointerSizedValues",
+ "clang-analyzer-osx.MIG",
+ "clang-analyzer-osx.NSOrCFErrorDerefChecker",
+ "clang-analyzer-osx.NumberObjectConversion",
+ "clang-analyzer-osx.ObjCProperty",
+ "clang-analyzer-osx.OSObjectRetainCount",
+ "clang-analyzer-osx.SecKeychainAPI",
+ "darwin-avoid-spinlock",
+ "darwin-dispatch-once-nonstatic",
+
+ # failing checks
+ "android-cloexec-dup",
+ "android-cloexec-fopen",
+ "android-cloexec-open",
+ "android-cloexec-pipe",
+ "bugprone-branch-clone",
+ "bugprone-integer-division",
+ "bugprone-macro-parentheses",
+ "bugprone-signed-char-misuse",
+ "bugprone-sizeof-expression",
+ "bugprone-suspicious-missing-comma",
+ "bugprone-suspicious-string-compare",
+ "cert-err34-c",
+ "clang-analyzer-core.CallAndMessage",
+ "clang-analyzer-core.NonNullParamChecker",
+ "clang-analyzer-core.NullDereference",
+ "clang-analyzer-core.UndefinedBinaryOperatorResult",
+ "clang-analyzer-core.uninitialized.Branch",
+ "clang-analyzer-deadcode.DeadStores",
+ "clang-analyzer-optin.performance.Padding",
+ "clang-analyzer-security.insecureAPI.strcpy",
+ "clang-analyzer-unix.Malloc",
+ "cppcoreguidelines-init-variables",
+ "cppcoreguidelines-interfaces-global-init",
+ "cppcoreguidelines-narrowing-conversions",
+ "hicpp-multiway-paths-covered",
+ "hicpp-no-assembler",
+ "hicpp-signed-bitwise",
+ "llvm-include-order",
+ "readability-braces-around-statements",
+ "readability-else-after-return",
+ "readability-function-size",
+ "readability-inconsistent-declaration-parameter-name",
+ "readability-isolate-declaration",
+ "readability-magic-numbers",
+ "readability-misleading-indentation",
+ "readability-named-parameter",
+ "readability-non-const-parameter",
+ "readability-redundant-control-flow",
+ "readability-redundant-declaration",
+ "readability-uppercase-literal-suffix",
+]
+
+
def remove_spam(output):
retval = list()
for line in output.split("\n"):
@@ -185,6 +510,7 @@ def list_checks():
universal_newlines=True).split("\n")[1:]
output = [line.strip() for line in output]
+ output = [line for line in output if line not in disabled_checks]
return output
--
2.26.2