Dear cmucl developers,

There seems to be an error in the compilation of fixnum operations:

(defun hash2 (x y)
  (declare (type fixnum x y))
  (logand (the fixnum (+ x y)) 255))

If I compile this in 19a or the 2004-11 snapshot (in linux on an x86),
any calls where the sum is negative give an error.  For example:

* (hash2 -1 0)

Type-error in KERNEL::OBJECT-NOT-FIXNUM-ERROR-HANDLER:
   4294967295 is not of type FIXNUM
   [Condition of type TYPE-ERROR]

As far as I can tell, the optimization settings do not affect the outcome.

The disassembly of hash2 indicates that X86::+-MOD32 is called, so maybe
this has to do with the recent introduction of modular arithmetic.

Mark Saaltink

Reply via email to