[libc-commits] [libc] 80cf436 - [libc] Fix undefined behavior in BitsFxTest.h (#152347)
via libc-commits
libc-commits at lists.llvm.org
Wed Aug 6 12:01:31 PDT 2025
Author: lntue
Date: 2025-08-06T15:01:28-04:00
New Revision: 80cf436a27be535b93fa453faa11c983ea59d444
URL: https://github.com/llvm/llvm-project/commit/80cf436a27be535b93fa453faa11c983ea59d444
DIFF: https://github.com/llvm/llvm-project/commit/80cf436a27be535b93fa453faa11c983ea59d444.diff
LOG: [libc] Fix undefined behavior in BitsFxTest.h (#152347)
Added:
Modified:
libc/test/src/stdfix/BitsFxTest.h
Removed:
################################################################################
diff --git a/libc/test/src/stdfix/BitsFxTest.h b/libc/test/src/stdfix/BitsFxTest.h
index eca6ab1bb28ab..cdb363f07053b 100644
--- a/libc/test/src/stdfix/BitsFxTest.h
+++ b/libc/test/src/stdfix/BitsFxTest.h
@@ -54,7 +54,7 @@ class BitsFxTest : public LIBC_NAMESPACE::testing::Test {
if (max >= 11 && FXRep::FRACTION_LEN >= kMinFbits) {
// (10.71875)_10 = (1010.1011100)_2
- constexpr long long kExpected = 1372;
+ constexpr int64_t kExpected = 1372;
EXPECT_EQ(
static_cast<XType>(kExpected << (FXRep::FRACTION_LEN - kMinFbits)),
func(special_num_t));
@@ -63,9 +63,11 @@ class BitsFxTest : public LIBC_NAMESPACE::testing::Test {
if constexpr (FXRep::SIGN_LEN > 0) {
if (min <= -11 && FXRep::FRACTION_LEN >= kMinFbits) {
// (-10.71875)_10 = (-1010.1011100)_2
- constexpr long long kExpected = -1372;
- EXPECT_EQ(static_cast<XType>(kExpected
- << (FXRep::FRACTION_LEN - kMinFbits)),
+ constexpr int64_t kExpected =
+ static_cast<int64_t>(static_cast<uint64_t>(-1372)
+ << (FXRep::FRACTION_LEN - kMinFbits));
+
+ EXPECT_EQ(static_cast<XType>(kExpected),
func(negative_special_num_t));
}
}
More information about the libc-commits
mailing list