From f23b729676559f539790580930b1ff3b0c05805b Mon Sep 17 00:00:00 2001 From: Ed Tanous Date: Thu, 15 Oct 2020 09:41:17 -0700 Subject: Turn on ALL perf checks 1st, alphabetize the tidy-list for good housekeeping. Next, enable all the clang-tidy performance checks, and resolve all the issues. most of the issues boil down to: 1. Using std::move on const variables. This does nothing. 2. Passing big variables (like std::string) by value. 3. Using double quotes on a find call, which constructs an intermediate string, rather than using the character overload. Tested Loaded on system, logged in successfully and pulled down webui-vue. No new errors. Walked the Redfish tree a bit, and observed no new problems. Ran redfish service validator. Got no new failures (although there are a lot of log service deprecation warnings that we should look at). Signed-off-by: Ed Tanous Change-Id: I2238958c4b22c1e554e09a0a1787c744bdbca43e --- .clang-tidy | 185 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 94 insertions(+), 91 deletions(-) (limited to '.clang-tidy') diff --git a/.clang-tidy b/.clang-tidy index 67c3f8a91f..989dd74582 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,84 @@ Checks: ' -*, -readability-identifier-naming, +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-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-pointer-arithmetic-in-alloc, +bugprone-misplaced-widening-cast, +bugprone-multiple-statement-macro, +bugprone-narrowing-conversions, +bugprone-no-escape, +bugprone-not-null-terminated-result, +bugprone-parent-virtual-call, +bugprone-posix-return, +bugprone-reserved-identifier, +bugprone-signed-char-misuse, +bugprone-sizeof-container, +bugprone-sizeof-expression, +bugprone-spuriously-wake-up-functions, +bugprone-string-constructor, +bugprone-string-integer-assignment, +bugprone-string-literal-with-embedded-nul, +bugprone-suspicious-enum-usage, +bugprone-suspicious-include, +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-con36-c, +cert-con54-cpp, +cert-dcl03-c, +cert-dcl16-c, +cert-dcl21-cpp, +cert-dcl37-c, +cert-dcl50-cpp, +cert-dcl51-cpp, +cert-dcl54-cpp, +cert-dcl58-cpp, +cert-dcl59-cpp, +cert-env33-c, +cert-err09-cpp, +cert-err34-c, +cert-err52-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-oop57-cpp, clang-analyzer-apiModeling.StdCLibraryFunctions, clang-analyzer-apiModeling.TrustNonnull, clang-analyzer-apiModeling.google.GTest, @@ -111,33 +189,14 @@ clang-analyzer-valist.Unterminated, clang-analyzer-valist.ValistBase, clang-analyzer-webkit.NoUncountedMemberChecker, clang-analyzer-webkit.RefCntblBaseVirtualDtor, -cert-con36-c, -cert-con54-cpp, -cert-dcl03-c, -cert-dcl16-c, -cert-dcl21-cpp, -cert-dcl37-c, -cert-dcl50-cpp, -cert-dcl51-cpp, -cert-dcl54-cpp, -cert-dcl58-cpp, -cert-dcl59-cpp, -cert-env33-c, -cert-err09-cpp, -cert-err34-c, -cert-err52-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-oop57-cpp, +misc-misplaced-const, +misc-no-recursion, +misc-redundant-expression, +misc-static-assert, +misc-throw-by-value-catch-by-reference, +misc-unconventional-assign-operator, +misc-uniqueptr-reset-release, +misc-unused-using-decls, modernize-avoid-bind, modernize-deprecated-headers, modernize-deprecated-ios-base-aliases, @@ -161,82 +220,26 @@ modernize-use-override, modernize-use-transparent-functors, modernize-use-uncaught-exceptions, modernize-use-using, -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-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-pointer-arithmetic-in-alloc, -bugprone-misplaced-widening-cast, -bugprone-multiple-statement-macro, -bugprone-narrowing-conversions, -bugprone-no-escape, -bugprone-not-null-terminated-result, -bugprone-parent-virtual-call, -bugprone-posix-return, -bugprone-reserved-identifier, -bugprone-signed-char-misuse, -bugprone-sizeof-container, -bugprone-sizeof-expression, -bugprone-spuriously-wake-up-functions, -bugprone-string-constructor, -bugprone-string-integer-assignment, -bugprone-string-literal-with-embedded-nul, -bugprone-suspicious-enum-usage, -bugprone-suspicious-include, -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, -misc-misplaced-const, -misc-no-recursion, -misc-redundant-expression, -misc-static-assert, -misc-throw-by-value-catch-by-reference, -misc-unconventional-assign-operator, -misc-uniqueptr-reset-release, -misc-unused-using-decls, +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, -readability-identifier-naming, +performance-unnecessary-value-param, readability-braces-around-statements, readability-const-return-type, readability-delete-null-pointer, readability-deleted-default, -readability-else-after-return' - +readability-else-after-return, +readability-identifier-naming, WarningsAsErrors: '*' HeaderFilterRegex: '.*' -- cgit v1.2.3