Module Name:    xsrc
Committed By:   joerg
Date:           Sun Feb 28 22:16:10 UTC 2016

Modified Files:
        xsrc/external/mit/xedit/dist/lisp: internal.h

Log Message:
Avoid left shifts of negative values. Right shift is implementation
defined and consist on all architectures we care about, so no change for
the reverse direction.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r1.2 xsrc/external/mit/xedit/dist/lisp/internal.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xedit/dist/lisp/internal.h
diff -u xsrc/external/mit/xedit/dist/lisp/internal.h:1.1.1.3 xsrc/external/mit/xedit/dist/lisp/internal.h:1.2
--- xsrc/external/mit/xedit/dist/lisp/internal.h:1.1.1.3	Sun Jul 19 19:37:31 2015
+++ xsrc/external/mit/xedit/dist/lisp/internal.h	Sun Feb 28 22:16:10 2016
@@ -134,7 +134,7 @@ typedef struct _LispMac LispMac;
     (((unsigned long)(object) & NIL_BIT) == 0)
 
 #define MOST_POSITIVE_FIXNUM	((1L << (sizeof(long) * 8 - 5)) - 1)
-#define MOST_NEGATIVE_FIXNUM	(-1L << (sizeof(long) * 8 - 5))
+#define MOST_NEGATIVE_FIXNUM	(-(1L << (sizeof(long) * 8 - 5)))
 
 #define SCHAR(value)							\
     ((LispObj*)(((long)(value) << BIT_COUNT) | SCHAR_MASK))
@@ -179,7 +179,7 @@ typedef struct _LispMac LispMac;
 
 /* fixnum */
 #define FIXNUM(value)							\
-    ((LispObj*)(((long)(value) << BIT_COUNT) | FIXNUM_MASK))
+    ((LispObj*)(((long)(value) * (1 << BIT_COUNT)) | FIXNUM_MASK))
 #define FIXNUM_VALUE(object)	((long)(object) >> BIT_COUNT)
 #define FIXNUMP(object)							\
     (((unsigned long)(object) & BIT_MASK) == FIXNUM_MASK)

Reply via email to