changeset 105747:35e7b757c606

(FIXNUM_OVERFLOW_P): Fix last change to handle unsigned types again.
author Andreas Schwab <schwab@linux-m68k.org>
date Sat, 24 Oct 2009 16:32:06 +0000
parents 41169068dcab
children 87712af03fb7
files src/ChangeLog src/lisp.h
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Oct 24 14:01:03 2009 +0000
+++ b/src/ChangeLog	Sat Oct 24 16:32:06 2009 +0000
@@ -1,5 +1,8 @@
 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.
--- a/src/lisp.h	Sat Oct 24 14:01:03 2009 +0000
+++ b/src/lisp.h	Sat Oct 24 16:32:06 2009 +0000
@@ -486,11 +486,13 @@
    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.  */