1.0.8.43: Fix GCD on most-negative-fixnum on x86-64
[sbcl.git] / src / code / numbers.lisp
index fe0ff5c..3f02be2 100644 (file)
@@ -1360,7 +1360,7 @@ the first."
          (number-dispatch ((u integer) (v integer))
            ((fixnum fixnum)
             (locally
-              (declare (optimize (speed 3) (safety 0)))
+                (declare (optimize (speed 3) (safety 0)))
               (do ((k 0 (1+ k))
                    (u (abs u) (ash u -1))
                    (v (abs v) (ash v -1)))
@@ -1376,11 +1376,11 @@ the first."
                        (setq temp (- u v))
                        (when (zerop temp)
                          (let ((res (ash u k)))
-                           (declare (type (signed-byte 31) res)
+                           (declare (type sb!vm:signed-word res)
                                     (optimize (inhibit-warnings 3)))
                            (return res))))))
-                (declare (type (mod 30) k)
-                         (type (signed-byte 31) u v)))))
+                (declare (type (mod #.sb!vm:n-word-bits) k)
+                         (type sb!vm:signed-word u v)))))
            ((bignum bignum)
             (bignum-gcd u v))
            ((bignum fixnum)