unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Liu <sdl.web@gmail.com>
To: 17556@debbugs.gnu.org
Subject: bug#17556: 24.4.50; fix math-bignum
Date: Fri, 23 May 2014 12:46:05 +0800	[thread overview]
Message-ID: <m3a9a9gl0y.fsf@gmail.com> (raw)


Due to integer overflow (math-bignum most-negative-fixnum) is incorrect.
Any objection if I fix it like in this patch:

=== modified file 'lisp/calc/calc.el'
--- lisp/calc/calc.el	2014-01-01 07:43:34 +0000
+++ lisp/calc/calc.el	2014-05-23 04:42:18 +0000
@@ -2773,9 +2773,15 @@
 
 ;; Coerce integer A to be a bignum.  [B S]
 (defun math-bignum (a)
-  (if (>= a 0)
-      (cons 'bigpos (math-bignum-big a))
-    (cons 'bigneg (math-bignum-big (- a)))))
+  (cond
+   ((>= a 0)
+    (cons 'bigpos (math-bignum-big a)))
+   ((= a most-negative-fixnum)
+    ;; Note: (- most-negative-fixnum) is most-negative-fixnum
+    (math-sub (cons 'bigneg (math-bignum-big (- (1+ a))))
+	      1))
+   (t
+    (cons 'bigneg (math-bignum-big (- a))))))
 
 (defun math-bignum-big (a)   ; [L s]
   (if (= a 0)





             reply	other threads:[~2014-05-23  4:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-23  4:46 Leo Liu [this message]
2014-05-23  7:33 ` bug#17556: 24.4.50; fix math-bignum Andreas Schwab
2014-05-23  8:23   ` martin rudalics
2014-05-23  9:44   ` Leo Liu
2014-05-24 15:19 ` Leo Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3a9a9gl0y.fsf@gmail.com \
    --to=sdl.web@gmail.com \
    --cc=17556@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).