From 5133802c58ef432ab8b289418ee834ba480d74eb Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 23 Nov 2011 12:52:03 -0800 Subject: * lib.c (plus, minus): Fixed wrong assertion which would incorrectly fire for inputs that do not overflow. * match.c (search_form): Fixed incorrect loop test which could lead to nonterminating behavior. * RELNOTES: Updated. --- lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib.c') diff --git a/lib.c b/lib.c index c1d27c97..1076bb2c 100644 --- a/lib.c +++ b/lib.c @@ -733,7 +733,7 @@ val plus(val anum, val bnum) cnum b = c_num(bnum); numeric_assert (a <= 0 || b <= 0 || NUM_MAX - b >= a); - numeric_assert (a >= 0 || b >= 0 || NUM_MIN - b >= a); + numeric_assert (a >= 0 || b >= 0 || NUM_MIN - b <= a); return num(a + b); } @@ -745,7 +745,7 @@ val minus(val anum, val bnum) numeric_assert (b != NUM_MIN || NUM_MIN == -NUM_MAX); numeric_assert (a <= 0 || -b <= 0 || NUM_MAX + b >= a); - numeric_assert (a >= 0 || -b >= 0 || NUM_MIN + b >= a); + numeric_assert (a >= 0 || -b >= 0 || NUM_MIN + b <= a); return num(a - b); } -- cgit v1.2.3