[libc-commits] [libc] [libc] Fix undefined behavior in BitsFxTest.h (PR #152347)
via libc-commits
libc-commits at lists.llvm.org
Wed Aug 6 10:35:05 PDT 2025
https://github.com/lntue created https://github.com/llvm/llvm-project/pull/152347
None
>From 648d0621370e8fffa5843c7ac45911a1fe22f625 Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Wed, 6 Aug 2025 17:33:14 +0000
Subject: [PATCH] [libc] Fix undefined behavior in BitsFxTest.h
---
libc/test/src/stdfix/BitsFxTest.h | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/libc/test/src/stdfix/BitsFxTest.h b/libc/test/src/stdfix/BitsFxTest.h
index eca6ab1bb28ab..2dcb55f686ada 100644
--- a/libc/test/src/stdfix/BitsFxTest.h
+++ b/libc/test/src/stdfix/BitsFxTest.h
@@ -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 long long kExpected =
+ static_cast<long long>(static_cast<unsigned long long>(-1372)
+ << (FXRep::FRACTION_LEN - kMinFbits));
+
+ EXPECT_EQ(static_cast<XType>(kExpected),
func(negative_special_num_t));
}
}
More information about the libc-commits
mailing list