changeset 105840:0d3a156a5458

(XPNTR) [USE_LSB_TAG && USE_LISP_UNION_TYPE]: silence compiler.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 03 Nov 2009 21:12:15 +0000
parents e0a471c09d45
children 8f7be56920c0
files src/lisp.h
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lisp.h	Tue Nov 03 15:30:39 2009 +0000
+++ b/src/lisp.h	Tue Nov 03 21:12:15 2009 +0000
@@ -427,7 +427,10 @@
    (var).u.val = ((EMACS_UINT) (ptr)) >> GCTYPEBITS,			\
    (var).u.type = ((char) (vartype)))
 
-# define XPNTR(v) (((v).s.val) << GCTYPEBITS)
+/* Some versions of gcc seem to consider the bitfield width when issuing
+   the "cast to pointer from integer of different size" warning, so the
+   cast is here to widen the value back to its natural size.  */
+# define XPNTR(v) ((EMACS_INT)((v).s.val) << GCTYPEBITS)
 
 #else  /* !USE_LSB_TAG */