Fix build failure caused by GCC 15
Rewrite coroutine structured bindings to avoid triggering
-Wmaybe-uninitialized with GCC 15. This diagnostic is stricter
in GCC 15 and falsely detects uninitialized use in co_await
structured bindings.
Ensure compatibility with newer toolchains and maintain
successful builds.
Reference:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118634
Change-Id: Ie168db61695dfb5a401f2fc7c5d76c68e51b2ef2
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
diff --git a/src/EntityManagerInterface.cpp b/src/EntityManagerInterface.cpp
index 581cd1b..e83dea4 100644
--- a/src/EntityManagerInterface.cpp
+++ b/src/EntityManagerInterface.cpp
@@ -74,9 +74,9 @@
while (!ctx.stop_requested())
{
- auto [objectPath, inventoryData] =
- co_await addedMatch
- .next<sdbusplus::message::object_path, SensorData>();
+ auto result = co_await addedMatch
+ .next<sdbusplus::message::object_path, SensorData>();
+ auto& [objectPath, inventoryData] = result;
for (const auto& interfaceName : interfaceNames)
{
@@ -104,9 +104,10 @@
while (!ctx.stop_requested())
{
- auto [objectPath, interfaces] =
+ auto result =
co_await removedMatch
.next<sdbusplus::message::object_path, interface_list_t>();
+ auto& [objectPath, interfaces] = result;
for (const auto& interfaceName : interfaceNames)
{
diff --git a/src/NotifyWatch.cpp b/src/NotifyWatch.cpp
index d4d8faf..f795464 100644
--- a/src/NotifyWatch.cpp
+++ b/src/NotifyWatch.cpp
@@ -8,7 +8,6 @@
#include <array>
#include <cerrno>
#include <cstdint>
-#include <cstring>
#include <filesystem>
#include <memory>
#include <span>
diff --git a/src/NotifyWatch.hpp b/src/NotifyWatch.hpp
index 1e1b33e..b82a594 100644
--- a/src/NotifyWatch.hpp
+++ b/src/NotifyWatch.hpp
@@ -2,8 +2,6 @@
#include <sdbusplus/async.hpp>
-#include <cerrno>
-#include <cstring>
#include <functional>
#include <memory>
#include <string>
diff --git a/src/SensorPaths.hpp b/src/SensorPaths.hpp
index b776b50..dc0a49a 100644
--- a/src/SensorPaths.hpp
+++ b/src/SensorPaths.hpp
@@ -1,6 +1,5 @@
#pragma once
-#include <cstring>
#include <string>
namespace sensor_paths
diff --git a/src/mctp/MCTPReactor.cpp b/src/mctp/MCTPReactor.cpp
index 1f322a8..3c04241 100644
--- a/src/mctp/MCTPReactor.cpp
+++ b/src/mctp/MCTPReactor.cpp
@@ -7,7 +7,6 @@
#include <boost/system/detail/error_code.hpp>
#include <phosphor-logging/lg2.hpp>
-#include <cstdlib>
#include <memory>
#include <optional>
#include <string>
diff --git a/src/nvidia-gpu/NvidiaGpuMctpVdm.cpp b/src/nvidia-gpu/NvidiaGpuMctpVdm.cpp
index efde488..80f5bfe 100644
--- a/src/nvidia-gpu/NvidiaGpuMctpVdm.cpp
+++ b/src/nvidia-gpu/NvidiaGpuMctpVdm.cpp
@@ -12,7 +12,6 @@
#include <cerrno>
#include <cstdint>
-#include <cstring>
#include <span>
namespace gpu
diff --git a/src/nvidia-gpu/OcpMctpVdm.cpp b/src/nvidia-gpu/OcpMctpVdm.cpp
index 6497621..4eb6f02 100644
--- a/src/nvidia-gpu/OcpMctpVdm.cpp
+++ b/src/nvidia-gpu/OcpMctpVdm.cpp
@@ -10,7 +10,6 @@
#include <cerrno>
#include <cstdint>
-#include <cstring>
#include <span>
namespace ocp
diff --git a/src/smbpbi/SmbpbiSensor.cpp b/src/smbpbi/SmbpbiSensor.cpp
index 05b73ec..238cbcf 100644
--- a/src/smbpbi/SmbpbiSensor.cpp
+++ b/src/smbpbi/SmbpbiSensor.cpp
@@ -26,7 +26,6 @@
#include <array>
#include <chrono>
-#include <cmath>
#include <cstdint>
#include <cstring>
#include <functional>