diff options
| author | Mattias Andrée <m@maandree.se> | 2026-05-17 14:28:21 +0200 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-05-17 15:06:44 +0200 |
| commit | c77deb9313ee3c4ca9885191f5cb8e07d8d68ad3 (patch) | |
| tree | 1de53628d7bffdac84992d8ae1e36d4bf0265c90 /libj2_j2i_xor_sign.c | |
| parent | Fix usage of va_arg (diff) | |
| download | libj2-c77deb9313ee3c4ca9885191f5cb8e07d8d68ad3.tar.gz libj2-c77deb9313ee3c4ca9885191f5cb8e07d8d68ad3.tar.bz2 libj2-c77deb9313ee3c4ca9885191f5cb8e07d8d68ad3.tar.xz | |
Fix undefined behaviour
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'libj2_j2i_xor_sign.c')
| -rw-r--r-- | libj2_j2i_xor_sign.c | 11 |
1 files changed, 8 insertions, 3 deletions
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)); |
