summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@raeburn.org>2006-02-05 12:21:40 +0000
committerKen Raeburn <raeburn@raeburn.org>2006-02-05 12:21:40 +0000
commit98950fd6ba7f1460ceb548002caa75a92d593af3 (patch)
tree3af8438af1d4919a0c1a6fab890e8105f071d1ef
parentd63b401895577d448ecee8c31ac20b6f693de14d (diff)
downloademacs-98950fd6ba7f1460ceb548002caa75a92d593af3.tar.gz
emacs-98950fd6ba7f1460ceb548002caa75a92d593af3.tar.bz2
emacs-98950fd6ba7f1460ceb548002caa75a92d593af3.zip
(XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]: Cast bitfield
value to EMACS_INT, to suppress gcc warning.
-rw-r--r--src/ChangeLog3
-rw-r--r--src/lisp.h6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index bffe8caf089..4f411f95444 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -2,6 +2,9 @@
* editfns.c (Fconstrain_to_field): Fix int/Lisp_Object mixup.
+ * lisp.h (XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]:
+ Cast bitfield value to EMACS_INT, to suppress gcc warning.
+
2006-02-03 Kim F. Storm <storm@cua.dk>
* xdisp.c: Cache last merged escape glyph face.
diff --git a/src/lisp.h b/src/lisp.h
index b8213c516cb..d930bd59a8d 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -484,7 +484,11 @@ extern size_t pure_size;
in a Lisp object whose data type says it points to something. */
#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
#else
-#define XPNTR(a) XUINT (a)
+/* 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(a) ((EMACS_INT) XUINT (a))
#endif
#endif /* not HAVE_SHM */
#endif /* no XPNTR */