From f80ec8dbcb08e7b638b60ad42cd8b1b50926e13c Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 27 Dec 2025 16:56:35 +0100 Subject: Testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libj2_j2i_sub_j2i.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libj2_j2i_sub_j2i.c') diff --git a/libj2_j2i_sub_j2i.c b/libj2_j2i_sub_j2i.c index d26c290..92a344a 100644 --- a/libj2_j2i_sub_j2i.c +++ b/libj2_j2i_sub_j2i.c @@ -43,19 +43,31 @@ validate(uintmax_t a_high, uintmax_t a_low, uintmax_t b_high, uintmax_t b_low, u overflow = 0; libj2_minus_j2u(&a); libj2_j2u_add_j2u_to_j2u_overflow(&a, &b, (void *)&r); + EXPECT(libj2_j2i_gt_j2i(&r, (const void *)&a)); } else if (a_neg) { overflow = -libj2_j2u_add_j2u_to_j2u_overflow(&a, &b, (void *)&r); + EXPECT(overflow == 0 || overflow == -1); libj2_minus_j2i(&r); if (!libj2_j2i_is_negative(&r)) overflow = -1; + else if (overflow) + EXPECT(libj2_j2i_gt_j2i(&r, (const void *)&a)); + if (!overflow) + EXPECT(libj2_j2i_le_j2i(&r, (const void *)&a)); } else if (b_neg) { overflow = +libj2_j2u_add_j2u_to_j2u_overflow(&a, &b, (void *)&r); + EXPECT(overflow == 0 || overflow == +1); if (!libj2_j2i_is_positive(&r)) overflow = +1; + else if (overflow) + EXPECT(libj2_j2i_lt_j2i(&r, (const void *)&a)); + if (!overflow) + EXPECT(libj2_j2i_gt_j2i(&r, (const void *)&a)); } else { overflow = 0; libj2_minus_j2u(&b); libj2_j2u_add_j2u_to_j2u(&a, &b, (void *)&r); + EXPECT(libj2_j2i_le_j2u(&r, &a)); } EXPECT(r.high == r_high); -- cgit v1.2.3-70-g09d2