aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2015-01-08 00:41:17 -0800
committerPaul Eggert2015-01-08 00:44:18 -0800
commit0002f31af9d3511b00eaa15590ba824acea99f25 (patch)
tree0a1200e874c30e740751a6e5d872f8041cc45498 /src
parent206333ee300408e24bca860287efba11326a990d (diff)
downloademacs-0002f31af9d3511b00eaa15590ba824acea99f25.tar.gz
emacs-0002f31af9d3511b00eaa15590ba824acea99f25.zip
Port new Lisp symbol init to x86 --with-wide-int
* lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END): Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as GCC (at least) does not allow a constant initializer to widen an address constant.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/lisp.h17
2 files changed, 17 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 33030cb8660..d2ae0262171 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,11 @@
12015-01-08 Paul Eggert <eggert@cs.ucla.edu> 12015-01-08 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Port new Lisp symbol init to x86 --with-wide-int
4 * lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
5 Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
6 GCC (at least) does not allow a constant initializer to widen an
7 address constant.
8
3 * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL. 9 * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
4 This is a followup to the "Port Qnil==0 XUNTAG to clang" patch. 10 This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
5 Although clang doesn't need it, some other compiler might, and 11 Although clang doesn't need it, some other compiler might, and
diff --git a/src/lisp.h b/src/lisp.h
index 97abaade1e1..5a4198ef683 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -734,12 +734,17 @@ struct Lisp_Symbol
734 734
735/* Declare extern constants for Lisp symbols. These can be helpful 735/* Declare extern constants for Lisp symbols. These can be helpful
736 when using a debugger like GDB, on older platforms where the debug 736 when using a debugger like GDB, on older platforms where the debug
737 format does not represent C macros. Athough these symbols are 737 format does not represent C macros. However, they don't work with
738 useless on modern platforms, they don't hurt performance all that much. */ 738 GCC if INTPTR_MAX != EMACS_INT_MAX. */
739#define DEFINE_LISP_SYMBOL_BEGIN(name) \ 739#if EMACS_INT_MAX == INTPTR_MAX
740 DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name) 740# define DEFINE_LISP_SYMBOL_BEGIN(name) \
741#define DEFINE_LISP_SYMBOL_END(name) \ 741 DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name)
742 DEFINE_GDB_SYMBOL_END (LISP_INITIALLY (TAG_SYMPTR (name))) 742# define DEFINE_LISP_SYMBOL_END(name) \
743 DEFINE_GDB_SYMBOL_END (LISP_INITIALLY (TAG_SYMPTR (name)))
744#else
745# define DEFINE_LISP_SYMBOL_BEGIN(name) /* empty */
746# define DEFINE_LISP_SYMBOL_END(name) /* empty */
747#endif
743 748
744#include "globals.h" 749#include "globals.h"
745 750