/* How much read-only Lisp storage a dumped Emacs needs.
- Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
{ if (PURE_P (obj)) \
pure_write_error (); }
-extern void pure_write_error P_ ((void)) NO_RETURN;
+extern void pure_write_error (void) NO_RETURN;
\f
/* Define PURE_P. */
-#ifdef VIRT_ADDR_VARIES
-/* For machines where text and data can go anywhere
- in virtual memory. */
-
extern EMACS_INT pure[];
#define PURE_P(obj) \
- ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \
- && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure)
-
-#else /* not VIRT_ADDR_VARIES */
-#ifdef PNTR_COMPARISON_TYPE
-/* When PNTR_COMPARISON_TYPE is not the default (unsigned int). */
-
-extern char my_edata[];
-
-#define PURE_P(obj) \
- ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata)
-
-#else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */
-
-extern char my_edata[];
-
-#define PURE_P(obj) \
- (XPNTR (obj) < (unsigned int) my_edata)
-
-#endif /* PNTR_COMPARISON_TYPE */
-#endif /* VIRT_ADDRESS_VARIES */
-
-/* arch-tag: fd9b0a91-a70e-4729-a75a-6bb4ca1ce14f
- (do not change this comment) */
+ ((uintptr_t) XPNTR (obj) - (uintptr_t) pure <= PURESIZE)