|
@@ -1,36 +1,37 @@
|
|
|
-From b2bd82a0c0d3d5dda588d12cc1672a03a9630784 Mon Sep 17 00:00:00 2001
|
|
|
-From: Khem Raj <raj.khem@gmail.com>
|
|
|
-Date: Mon, 17 Dec 2018 17:27:43 -0800
|
|
|
-Subject: [PATCH] Remove redundant move
|
|
|
+From 7d7428fd09d1bcee281f7b678df8fb71e9365b17 Mon Sep 17 00:00:00 2001
|
|
|
+From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?=
|
|
|
+ <martin.horenovsky@gmail.com>
|
|
|
+Date: Thu, 27 Dec 2018 16:08:04 +0100
|
|
|
+Subject: [PATCH] A different approach
|
|
|
|
|
|
-fixes errors like below
|
|
|
-
|
|
|
-/mnt/a/yoe/build/tmp/work/aarch64-yoe-linux-musl/catch2/2.5.0-r0/git/include/internal/catch_session.cpp:52:29:
|
|
|
-error: redundant move in return statement [-Werror=redundant-move]
|
|
|
- 52 | return std::move(multi);
|
|
|
- | ~~~~~~~~~^~~~~~~
|
|
|
-/mnt/a/yoe/build/tmp/work/aarch64-yoe-linux-musl/catch2/2.5.0-r0/git/include/internal/catch_session.cpp:52:29:
|
|
|
-note: remove 'std::move' call
|
|
|
-
|
|
|
-Upstream-Status: Submitted [https://github.com/catchorg/Catch2/pull/1474]
|
|
|
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
---
|
|
|
- include/internal/catch_session.cpp | 2 +-
|
|
|
- 1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
+ include/internal/catch_session.cpp | 15 ++++++++++-----
|
|
|
+ 1 file changed, 10 insertions(+), 5 deletions(-)
|
|
|
|
|
|
-diff --git a/include/internal/catch_session.cpp b/include/internal/catch_session.cpp
|
|
|
-index 0920521c..b66d57ac 100644
|
|
|
--- a/include/internal/catch_session.cpp
|
|
|
+++ b/include/internal/catch_session.cpp
|
|
|
-@@ -49,7 +49,7 @@ namespace Catch {
|
|
|
- multi->addListener(listener->create(Catch::ReporterConfig(config)));
|
|
|
+@@ -42,14 +42,20 @@ namespace Catch {
|
|
|
+ return createReporter(config->getReporterName(), config);
|
|
|
+ }
|
|
|
+
|
|
|
+- auto multi = std::unique_ptr<ListeningReporter>(new ListeningReporter);
|
|
|
++ // On older platforms, returning std::unique_ptr<ListeningReporter>
|
|
|
++ // when the return type is std::unique_ptr<IStreamingReporter>
|
|
|
++ // doesn't compile without a std::move call. However, this causes
|
|
|
++ // a warning on newer platforms. Thus, we have to work around
|
|
|
++ // it a bit and downcast the pointer manually.
|
|
|
++ auto ret = std::unique_ptr<IStreamingReporter>(new ListeningReporter);
|
|
|
++ auto& multi = static_cast<ListeningReporter&>(*ret);
|
|
|
+
|
|
|
+ auto const& listeners = Catch::getRegistryHub().getReporterRegistry().getListeners();
|
|
|
+ for (auto const& listener : listeners) {
|
|
|
+- multi->addListener(listener->create(Catch::ReporterConfig(config)));
|
|
|
++ multi.addListener(listener->create(Catch::ReporterConfig(config)));
|
|
|
}
|
|
|
- multi->addReporter(createReporter(config->getReporterName(), config));
|
|
|
+- multi->addReporter(createReporter(config->getReporterName(), config));
|
|
|
- return std::move(multi);
|
|
|
-+ return multi;
|
|
|
++ multi.addReporter(createReporter(config->getReporterName(), config));
|
|
|
++ return ret;
|
|
|
}
|
|
|
|
|
|
|
|
|
---
|
|
|
-2.20.1
|
|
|
-
|