GNU bug report logs - #25786
[PATCH] use of abs() in numbers.c: should be labs()

Previous Next

Package: guile;

Reported by: Matt Wette <matt.wette <at> gmail.com>

Date: Sat, 18 Feb 2017 17:47:02 UTC

Severity: normal

Tags: patch

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Andy Wingo <wingo <at> pobox.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#25786: closed ([PATCH] use of abs() in numbers.c: should be
 labs())
Date: Tue, 21 Feb 2017 21:14:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 21 Feb 2017 22:13:11 +0100
with message-id <87mvdfxn6g.fsf <at> pobox.com>
and subject line Re: bug#25786: [PATCH] use of abs() in numbers.c: should be labs()
has caused the debbugs.gnu.org bug report #25786,
regarding [PATCH] use of abs() in numbers.c: should be labs()
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
25786: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25786
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Matt Wette <matt.wette <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: [PATCH] use of abs() in numbers.c: should be labs()
Date: Sat, 18 Feb 2017 09:46:07 -0800
[Message part 3 (text/plain, inline)]
In libguile/numbers.c abs() is used for long argument where labs() should be used.  
A patch is included below for guile-2.1.7.

/* Returns log(n/d), for exact non-zero integers n and d */
static SCM
log_of_fraction (SCM n, SCM d)
{
  long n_size = scm_to_long (scm_integer_length (n));
  long d_size = scm_to_long (scm_integer_length (d));

  if (abs (n_size - d_size) > 1)
    return (scm_difference (log_of_exact_integer (n),
                            log_of_exact_integer (d)));


--- libguile/numbers.c.orig	2017-02-18 08:29:52.000000000 -0800
+++ libguile/numbers.c	2017-02-18 08:30:23.000000000 -0800
@@ -9951,7 +9951,7 @@
   long n_size = scm_to_long (scm_integer_length (n));
   long d_size = scm_to_long (scm_integer_length (d));
 
-  if (abs (n_size - d_size) > 1)
+  if (labs (n_size - d_size) > 1)
     return (scm_difference (log_of_exact_integer (n),
 			    log_of_exact_integer (d)));
   else if (scm_is_false (scm_negative_p (n)))

[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Andy Wingo <wingo <at> pobox.com>
To: Matt Wette <matt.wette <at> gmail.com>
Cc: 25786-done <at> debbugs.gnu.org
Subject: Re: bug#25786: [PATCH] use of abs() in numbers.c: should be labs()
Date: Tue, 21 Feb 2017 22:13:11 +0100
On Sat 18 Feb 2017 18:46, Matt Wette <matt.wette <at> gmail.com> writes:

> In libguile/numbers.c abs() is used for long argument where labs() should be used. 
> A patch is included below for guile-2.1.7.

Applied.  Thank you!

Andy


This bug report was last modified 8 years and 90 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.