From 6e7763405ee8e9134a68a05716fdd6db873880b8 Mon Sep 17 00:00:00 2001 From: Ed Hennis Date: Wed, 8 Jul 2026 18:10:23 -0400 Subject: [PATCH] Address some clang-tidy / UB issues --- include/xrpl/basics/Number.h | 2 +- src/libxrpl/basics/Number.cpp | 7 +++---- src/tests/libxrpl/basics/Number.cpp | 1 - 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/xrpl/basics/Number.h b/include/xrpl/basics/Number.h index f8258110f2..ca600dcf4a 100644 --- a/include/xrpl/basics/Number.h +++ b/include/xrpl/basics/Number.h @@ -698,7 +698,7 @@ private: internalrep const& maxMantissa, MantissaRange::CuspRoundingFix cuspRoundingFixEnabled); - template + template friend void doNormalize( bool& negative, diff --git a/src/libxrpl/basics/Number.cpp b/src/libxrpl/basics/Number.cpp index 77c4c6a034..17eb200288 100644 --- a/src/libxrpl/basics/Number.cpp +++ b/src/libxrpl/basics/Number.cpp @@ -472,8 +472,7 @@ Number::Guard::doRound(internalrep& drops, std::string_view location) const auto r = round(); if (r == 1 || (r == 0 && (drops & 1) == 1)) { - auto const& range = kRange.get(); - if (drops >= range.max) + if (drops > kLargestMantissa) { static_assert(sizeof(internalrep) == sizeof(rep)); // This should be impossible, because it's impossible to represent @@ -640,7 +639,7 @@ Number::one() return one(kRange); } -template +template void doNormalize( bool& negative, @@ -681,7 +680,7 @@ doNormalize( throw std::overflow_error("Number::normalize 1"); g.doDropDigit(m, exponent); } - if ((exponent < kMinExponent) || (m == 0)) + if ((exponent < kMinExponent) || (m < minMantissa) || (m == 0)) { std::tie(negative, mantissa, exponent) = kZero.toInternal(range); return; diff --git a/src/tests/libxrpl/basics/Number.cpp b/src/tests/libxrpl/basics/Number.cpp index 2b4d7be347..993d2a37ad 100644 --- a/src/tests/libxrpl/basics/Number.cpp +++ b/src/tests/libxrpl/basics/Number.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include