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_j2i_xor_sign.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'libj2_j2i_xor_sign.c') diff --git a/libj2_j2i_xor_sign.c b/libj2_j2i_xor_sign.c index 6826f02..707774c 100644 --- a/libj2_j2i_xor_sign.c +++ b/libj2_j2i_xor_sign.c @@ -23,6 +23,7 @@ static void check(struct libj2_j2i *a) { struct libj2_j2i r, saved, x; + struct libj2_j2u u; saved = *a; @@ -32,7 +33,8 @@ check(struct libj2_j2i *a) EXPECT(libj2_j2i_eq_j2i(&r, &saved)); r = (struct libj2_j2i){111, 222}; - libj2_j2i_xor_sign_to_j2u((const struct libj2_j2i *)a, (struct libj2_j2u *)&r); + libj2_j2i_xor_sign_to_j2u((const struct libj2_j2i *)a, &u); + libj2_j2u_to_j2i(&u, &r); EXPECT(libj2_j2i_eq_j2i(a, &saved)); EXPECT(libj2_j2i_eq_j2i(&r, &saved)); @@ -40,7 +42,9 @@ check(struct libj2_j2i *a) libj2_j2i_xor_sign(&r); EXPECT(libj2_j2i_eq_j2i(&r, &saved)); - libj2_not_j2u((void *)a); + libj2_j2i_to_j2u(a, &u); + libj2_not_j2u(&u); + libj2_j2u_to_j2i(&u, a); x = *a; r = (struct libj2_j2i){111, 222}; @@ -49,7 +53,8 @@ check(struct libj2_j2i *a) EXPECT(libj2_j2i_eq_j2i(&r, &saved)); r = (struct libj2_j2i){111, 222}; - libj2_j2i_xor_sign_to_j2u((const struct libj2_j2i *)a, (struct libj2_j2u *)&r); + libj2_j2i_xor_sign_to_j2u((const struct libj2_j2i *)a, &u); + libj2_j2u_to_j2i(&u, &r); EXPECT(libj2_j2i_eq_j2i(a, &x)); EXPECT(libj2_j2i_eq_j2i(&r, &saved)); -- cgit v1.2.3-70-g09d2