From 9b3e3e186594fb8b5e57c0c39852e8b74788685e Mon Sep 17 00:00:00 2001 From: Robin Getz Date: Sat, 25 Jul 2026 20:27:17 -0400 Subject: [PATCH] FT8/FT4: Remove uninitialized value warnings Fix cppcheck warnings about uninitialized mx variables in coarse strength and soft symbol conversion calculations. Replace the mxi sentinel logic with an explicit -infinity initial maximum value, allowing the maximum search to operate directly on the value being tracked. This removes reliance on short-circuit evaluation for initialization and simplifies the code. Signed-off-by: Robin Getz --- ft8/ft4.cpp | 13 +++++-------- ft8/ft8.cpp | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/ft8/ft4.cpp b/ft8/ft4.cpp index 74ec99b8a..4ed686670 100644 --- a/ft8/ft4.cpp +++ b/ft8/ft4.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -140,8 +141,7 @@ float FT4::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0) { for (int si = 0; si < 103; si++) { - float mx; - int mxi = -1; + float mx = -std::numeric_limits::infinity(); float sum = 0; for (int i = 0; i < 4; i++) @@ -149,9 +149,8 @@ float FT4::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0) float x = std::abs(bins[si0 + si][bi0 + i]); sum += x; - if (mxi < 0 || x > mx) + if (x > mx) { - mxi = i; mx = x; } } @@ -1452,8 +1451,7 @@ std::vector> FT4::soft_c2m(const FFTEngine::ffts_t &c103) con for (int si = 0; si < 103; si++) { m103[si].resize(4); - int mxi = -1; - float mx; + float mx = -std::numeric_limits::infinity(); float mx_phase; for (int bi = 0; bi < 4; bi++) @@ -1461,9 +1459,8 @@ std::vector> FT4::soft_c2m(const FFTEngine::ffts_t &c103) con float x = std::abs(c103[si][bi]); m103[si][bi] = x; - if (mxi < 0 || x > mx) + if (x > mx) { - mxi = bi; mx = x; mx_phase = std::arg(c103[si][bi]); // -pi .. pi } diff --git a/ft8/ft8.cpp b/ft8/ft8.cpp index e4f5fc7a6..d08d72696 100644 --- a/ft8/ft8.cpp +++ b/ft8/ft8.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -138,8 +139,7 @@ float FT8::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0) { for (int si = 0; si < 79; si++) { - float mx; - int mxi = -1; + float mx = -std::numeric_limits::infinity(); float sum = 0; for (int i = 0; i < 8; i++) @@ -147,9 +147,8 @@ float FT8::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0) float x = std::abs(bins[si0 + si][bi0 + i]); sum += x; - if (mxi < 0 || x > mx) + if (x > mx) { - mxi = i; mx = x; } } @@ -1562,8 +1561,7 @@ std::vector> FT8::soft_c2m(const FFTEngine::ffts_t &c79) cons for (int si = 0; si < 79; si++) { m79[si].resize(8); - int mxi = -1; - float mx; + float mx = -std::numeric_limits::infinity(); float mx_phase; for (int bi = 0; bi < 8; bi++) @@ -1571,9 +1569,8 @@ std::vector> FT8::soft_c2m(const FFTEngine::ffts_t &c79) cons float x = std::abs(c79[si][bi]); m79[si][bi] = x; - if (mxi < 0 || x > mx) + if (x > mx) { - mxi = bi; mx = x; mx_phase = std::arg(c79[si][bi]); // -pi .. pi }