From b2dfc50f1c98417166d647538d7d5ecd6178dd4c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 16 Oct 2014 18:44:52 -0700 Subject: * arith.c (gcd, lognot): Bugfix: bignum results in fixnum range not normalized. --- ChangeLog | 5 +++++ arith.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 20896801..2aff9393 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-10-16 Kaz Kylheku + + * arith.c (gcd, lognot): Bugfix: bignum results + in fixnum range not normalized. + 2014-10-16 Kaz Kylheku * match.c (dest_bind): More detailed log message for variable diff --git a/arith.c b/arith.c index d107afbb..76066d63 100644 --- a/arith.c +++ b/arith.c @@ -1389,7 +1389,7 @@ val gcd(val anum, val bnum) if (mp_gcd(mp(anum), mp(bnum), mp(n)) != MP_OKAY) goto bad; - return n; + return normalize(n); inval: uw_throwf(error_s, lit("gcd: non-integral operands ~s ~s"), anum, bnum, nao); @@ -1753,7 +1753,7 @@ val lognot(val a, val bits) b = make_bignum(); if (mp_comp(mp(a), mp(b)) != MP_OKAY) goto bad; - return b; + return normalize(b); default: uw_throwf(error_s, lit("lognot: non-integral operand ~s"), a, nao); } -- cgit v1.2.3