From 5cd81a7848203d3df6959c148eb91f1a4ff32c1d Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 17 Jan 2023 11:44:04 -0800 Subject: Fix -Wimplicit-int-float-conversion warning We're intentionally losing precision in this case, so add a cast. googletest/googletest/include/gtest/gtest-printers.h:532:9: error: implicit conversion from 'int32_t' (aka 'int') to 'float' may lose precision [-Werror,-Wimplicit-int-float-conversion] if (static_cast(val * mulfor6 + 0.5) / mulfor6 == val) return 6; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ googletest/googletest/include/gtest/gtest-printers.h:544:9: error: implicit conversion from 'int32_t' (aka 'int') to 'float' may lose precision [-Werror,-Wimplicit-int-float-conversion] if (static_cast(val / divfor6 + 0.5) * divfor6 == val) return 6; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ PiperOrigin-RevId: 502646042 Change-Id: I05989ee42675b531a9907616c9582a5a7c77bed6 --- googletest/include/gtest/gtest-printers.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/googletest/include/gtest/gtest-printers.h b/googletest/include/gtest/gtest-printers.h index 0055e37..7d7e77c 100644 --- a/googletest/include/gtest/gtest-printers.h +++ b/googletest/include/gtest/gtest-printers.h @@ -529,7 +529,10 @@ int AppropriateResolution(FloatType val) { } else if (val >= 0.0001) { mulfor6 = 1e9; } - if (static_cast(val * mulfor6 + 0.5) / mulfor6 == val) return 6; + if (static_cast(static_cast(val * mulfor6 + 0.5)) / + mulfor6 == + val) + return 6; } else if (val < 1e10) { FloatType divfor6 = 1.0; if (val >= 1e9) { // 1,000,000,000 to 9,999,999,999 @@ -541,7 +544,10 @@ int AppropriateResolution(FloatType val) { } else if (val >= 1e6) { // 1,000,000 to 9,999,999 divfor6 = 10; } - if (static_cast(val / divfor6 + 0.5) * divfor6 == val) return 6; + if (static_cast(static_cast(val / divfor6 + 0.5)) * + divfor6 == + val) + return 6; } return full; } -- cgit v0.12