From c77deb9313ee3c4ca9885191f5cb8e07d8d68ad3 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 17 May 2026 14:28:21 +0200 Subject: Fix undefined behaviour MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libj2_ji_sub_ji_to_j2i.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libj2_ji_sub_ji_to_j2i.c') diff --git a/libj2_ji_sub_ji_to_j2i.c b/libj2_ji_sub_ji_to_j2i.c index 1057db6..8bc5944 100644 --- a/libj2_ji_sub_ji_to_j2i.c +++ b/libj2_ji_sub_ji_to_j2i.c @@ -25,7 +25,7 @@ check(uintmax_t ua, uintmax_t ub) intmax_t a = ua >> (LIBJ2_JU_BIT - 1U) ? -(intmax_t)~ua - 1 : (intmax_t)ua; intmax_t b = ub >> (LIBJ2_JU_BIT - 1U) ? -(intmax_t)~ub - 1 : (intmax_t)ub; struct libj2_j2i r, expected; - struct libj2_j2u wa, wb; + struct libj2_j2u wa, wb, ue; #if INTMAX_MIN + 1 != -INTMAX_MAX if (ua == (UINTMAX >> 1) + 1U || ub == (UINTMAX >> 1) + 1U) @@ -39,7 +39,8 @@ check(uintmax_t ua, uintmax_t ub) wb.high = b < 0 ? UINTMAX_MAX : 0; libj2_minus_j2u(&wb); - libj2_j2u_add_j2u_to_j2u(&wa, &wb, (void *)&expected); + libj2_j2u_add_j2u_to_j2u(&wa, &wb, &ue); + libj2_j2u_to_j2i(&ue, &expected); libj2_ji_sub_ji_to_j2i(a, b, &r); EXPECT(libj2_j2i_eq_j2i(&r, &expected)); } -- cgit v1.2.3-70-g09d2