2009-10-24 Andreas Schwab <schwab@linux-m68k.org>
+ * lisp.h (FIXNUM_OVERFLOW_P): Fix last change to handle unsigned
+ types again.
+
* sysdep.c (procfs_ttyname): Fix sprintf format to match argument
type.
(system_process_attributes): Likewise.
I.e. (x & INTMASK) == XUINT (make_number (x)). */
#define INTMASK ((((EMACS_INT) 1) << VALBITS) - 1)
-/* Value is non-zero if I doesn't fit into a Lisp fixnum. */
+/* Value is non-zero if I doesn't fit into a Lisp fixnum. It is
+ written this way so that it also works if I is of unsigned
+ type. */
#define FIXNUM_OVERFLOW_P(i) \
((i) > MOST_POSITIVE_FIXNUM \
- || (i) < MOST_NEGATIVE_FIXNUM)
+ || ((i) < 0 && (i) < MOST_NEGATIVE_FIXNUM))
/* Extract a value or address from a Lisp_Object. */