diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-11-24 13:44:43 +0900 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-12-09 18:22:51 +0000 |
commit | f8c9a663fb2beda731c7a8d2b7ae62c4514b5f62 (patch) | |
tree | d33fa3fc0f0685a217afab8b03895f6d1257d057 | |
parent | 72733c1063f3e5f36af2d1d608808718ae0fda0e (diff) |
Fix 'performance-move-const-arg' warnings
Also, treat that warning as error
In some places move is redundant (e.g. when moving int or enum), in
others it wasn't working as expected (i.e. not moving, but copying
instead), in some, const-ref was (uselessly) moved. Fix those places
Change-Id: I0b38667a71967fa35ca627990d3c12124fb62af0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | .clang-tidy | 2 | ||||
-rw-r--r-- | src/app/qbs/session.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/generators/xmlpropertygroup.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/executablefinder.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/tools/executablefinder.h | 2 | ||||
-rw-r--r-- | src/plugins/generator/iarew/iarewoptionpropertygroup.cpp | 6 | ||||
-rw-r--r-- | src/plugins/generator/iarew/iarewoptionpropertygroup.h | 3 | ||||
-rw-r--r-- | src/plugins/generator/iarew/iarewsettingspropertygroup.cpp | 7 | ||||
-rw-r--r-- | src/plugins/generator/iarew/iarewsettingspropertygroup.h | 2 |
9 files changed, 15 insertions, 15 deletions
diff --git a/.clang-tidy b/.clang-tidy index a261f4b59..5673befed 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,6 @@ --- Checks: '-*,bugprone-*,cppcoreguidelines-c-copy-assignment-signature,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-no-malloc,cppcoreguidelines-pro-bounds-constant-array-index,cppcoreguidelines-pro-type-const-cast,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-pro-type-union-access,cppcoreguidelines-slicing,cppcoreguidelines-special-member-functions,fuchsia-virtual-inheritance,google-build-explicit-make-pair,google-build-namespaces,google-global-names-in-headers,google-objc-*,google-readability-casting,google-readability-function-size,google-readability-namespace-comments,google-runtime-int,google-runtime-operator,misc-definitions-in-headers,misc-misplaced-const,misc-new-delete-overloads,misc-non-copyable-objects,misc-redundant-expression,misc-static-assert,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,misc-unused-*,modernize-avoid-bind,modernize-deprecated-headers,modernize-loop-convert,modernize-make-*,modernize-pass-by-value,modernize-redundant-void-arg,modernize-replace-*,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-*,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-using,performance-*,readability-avoid-const-params-in-decls,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-function-size,readability-identifier-naming,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-*,readability-simplify-boolean-expr,readability-static-definition-in-anonymous-namespace,readability-uniqueptr-delete-release' -WarningsAsErrors: 'bugprone-*,-bugprone-suspicious-enum-usage,-bugprone-macro-parentheses,-bugprone-narrowing-conversions,modernize-make-unique,modernize-use-emplace,modernize-use-equals-default,modernize-use-override' +WarningsAsErrors: 'bugprone-*,-bugprone-suspicious-enum-usage,-bugprone-macro-parentheses,-bugprone-narrowing-conversions,modernize-make-unique,modernize-use-emplace,modernize-use-equals-default,modernize-use-override,performance-move-const-arg' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false CheckOptions: diff --git a/src/app/qbs/session.cpp b/src/app/qbs/session.cpp index ee9ee4cb3..7e141b4a6 100644 --- a/src/app/qbs/session.cpp +++ b/src/app/qbs/session.cpp @@ -248,7 +248,7 @@ void Session::setupProject(const QJsonObject &request) if (m_currentJob) { if (qobject_cast<SetupProjectJob *>(m_currentJob) && m_currentJob->state() == AbstractJob::StateCanceling) { - m_resolveRequest = std::move(request); + m_resolveRequest = request; return; } sendErrorReply("project-resolved", diff --git a/src/lib/corelib/generators/xmlpropertygroup.cpp b/src/lib/corelib/generators/xmlpropertygroup.cpp index 398d68e77..1dc92e553 100644 --- a/src/lib/corelib/generators/xmlpropertygroup.cpp +++ b/src/lib/corelib/generators/xmlpropertygroup.cpp @@ -48,7 +48,7 @@ void PropertyGroup::appendProperty(QByteArray name, QVariant value) void PropertyGroup::appendMultiLineProperty( QByteArray key, QStringList values, QChar sep) { - const auto line = values.join(std::move(sep)); + const auto line = values.join(sep); appendProperty(std::move(key), QVariant::fromValue(line)); } diff --git a/src/lib/corelib/tools/executablefinder.cpp b/src/lib/corelib/tools/executablefinder.cpp index 4342c82f0..0dc06dd86 100644 --- a/src/lib/corelib/tools/executablefinder.cpp +++ b/src/lib/corelib/tools/executablefinder.cpp @@ -64,9 +64,9 @@ static QStringList populateExecutableSuffixes() QStringList ExecutableFinder::m_executableSuffixes = populateExecutableSuffixes(); -ExecutableFinder::ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env) +ExecutableFinder::ExecutableFinder(ResolvedProductPtr product, const QProcessEnvironment &env) : m_product(std::move(product)) - , m_environment(std::move(env)) + , m_environment(env) // QProcessEnvironment doesn't have move-ctor, copy here { } diff --git a/src/lib/corelib/tools/executablefinder.h b/src/lib/corelib/tools/executablefinder.h index 9467756fc..ae834d911 100644 --- a/src/lib/corelib/tools/executablefinder.h +++ b/src/lib/corelib/tools/executablefinder.h @@ -53,7 +53,7 @@ namespace Internal { class ExecutableFinder { public: - ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env); + ExecutableFinder(ResolvedProductPtr product, const QProcessEnvironment &env); QString findExecutable(const QString &path, const QString &workingDirPath); diff --git a/src/plugins/generator/iarew/iarewoptionpropertygroup.cpp b/src/plugins/generator/iarew/iarewoptionpropertygroup.cpp index 8b9f79f1c..bfe2c4548 100644 --- a/src/plugins/generator/iarew/iarewoptionpropertygroup.cpp +++ b/src/plugins/generator/iarew/iarewoptionpropertygroup.cpp @@ -33,7 +33,7 @@ namespace qbs { IarewOptionPropertyGroup::IarewOptionPropertyGroup( - QByteArray name, const QVariantList &states, int version) + QByteArray name, QVariantList states, int version) : gen::xml::PropertyGroup(QByteArrayLiteral("option")) { // Append name property item. @@ -43,10 +43,10 @@ IarewOptionPropertyGroup::IarewOptionPropertyGroup( // Append version property item. if (version >= 0) appendChild<gen::xml::Property>(QByteArrayLiteral("version"), - std::move(version)); + version); // Append state property items. - for (const auto &state : states) { + for (auto &state : states) { if (state.isNull()) continue; appendChild<gen::xml::Property>(QByteArrayLiteral("state"), diff --git a/src/plugins/generator/iarew/iarewoptionpropertygroup.h b/src/plugins/generator/iarew/iarewoptionpropertygroup.h index d24fe3a9d..8844537c3 100644 --- a/src/plugins/generator/iarew/iarewoptionpropertygroup.h +++ b/src/plugins/generator/iarew/iarewoptionpropertygroup.h @@ -41,8 +41,7 @@ class IarewOptionPropertyGroup final : public gen::xml::PropertyGroup { public: - explicit IarewOptionPropertyGroup( - QByteArray name, const QVariantList &states, + explicit IarewOptionPropertyGroup(QByteArray name, QVariantList states, int version = -1); }; diff --git a/src/plugins/generator/iarew/iarewsettingspropertygroup.cpp b/src/plugins/generator/iarew/iarewsettingspropertygroup.cpp index 3e7b6dae7..1f08783ae 100644 --- a/src/plugins/generator/iarew/iarewsettingspropertygroup.cpp +++ b/src/plugins/generator/iarew/iarewsettingspropertygroup.cpp @@ -65,7 +65,8 @@ IarewSettingsPropertyGroup::IarewSettingsPropertyGroup() void IarewSettingsPropertyGroup::setName(QByteArray name) { - m_nameProperty->setValue(std::move(name)); + // There is no way to move-construct a QVariant from T, thus name is shallow-copied + m_nameProperty->setValue(QVariant(name)); } QByteArray IarewSettingsPropertyGroup::name() const @@ -96,11 +97,11 @@ void IarewSettingsPropertyGroup::setDataDebugInfo(int debugInfo) void IarewSettingsPropertyGroup::addOptionsGroup( QByteArray name, - const QVariantList &states, + QVariantList states, int version) { m_dataPropertyGroup->appendChild<IarewOptionPropertyGroup>( - std::move(name), states, std::move(version)); + std::move(name), std::move(states), version); } } // namespace qbs diff --git a/src/plugins/generator/iarew/iarewsettingspropertygroup.h b/src/plugins/generator/iarew/iarewsettingspropertygroup.h index 4dea76f1a..5ef9ef75c 100644 --- a/src/plugins/generator/iarew/iarewsettingspropertygroup.h +++ b/src/plugins/generator/iarew/iarewsettingspropertygroup.h @@ -50,7 +50,7 @@ protected: void setDataVersion(int dataVersion); void setDataDebugInfo(int debugInfo); - void addOptionsGroup(QByteArray name, const QVariantList &states, + void addOptionsGroup(QByteArray name, QVariantList states, int version = -1); private: |