Skip to content

Commit 55f3f57

Browse files
committed
Fix undefined behavior
1 parent 8a4e781 commit 55f3f57

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

libc/src/math/generic/expxf16.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,10 +240,10 @@ template <bool IsSinh> LIBC_INLINE float16 eval_sinh_or_cosh(float16 x) {
240240
int x_hi_mid_p = static_cast<int>(kf);
241241
int x_hi_mid_m = -x_hi_mid_p;
242242

243-
int x_hi_p = x_hi_mid_p >> 5;
244-
int x_hi_m = x_hi_mid_m >> 5;
245-
int x_mid_p = x_hi_mid_p & 0x1f;
246-
int x_mid_m = x_hi_mid_m & 0x1f;
243+
unsigned x_hi_p = static_cast<unsigned>(x_hi_mid_p) >> 5;
244+
unsigned x_hi_m = static_cast<unsigned>(x_hi_mid_m) >> 5;
245+
unsigned x_mid_p = static_cast<unsigned>(x_hi_mid_p) & 0x1f;
246+
unsigned x_mid_m = static_cast<unsigned>(x_hi_mid_m) & 0x1f;
247247

248248
uint32_t exp2_hi_mid_bits_p =
249249
EXP2_MID_5_BITS[x_mid_p] +

0 commit comments

Comments
 (0)