]> git.eshelyaron.com Git - emacs.git/commitdiff
Port new Lisp symbol init to x86 --with-wide-int
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 8 Jan 2015 08:41:17 +0000 (00:41 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 8 Jan 2015 08:44:18 +0000 (00:44 -0800)
* 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.

src/ChangeLog
src/lisp.h

index 33030cb86604343c2bd0ed1dfeb9398d5ce89131..d2ae02621719d4f1e39f09e4f196755a11e3b6cd 100644 (file)
@@ -1,5 +1,11 @@
 2015-01-08  Paul Eggert  <eggert@cs.ucla.edu>
 
+       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.
+
        * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
        This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
        Although clang doesn't need it, some other compiler might, and
index 97abaade1e145a0897ea725f7562669fb2f30703..5a4198ef6831c787f6c3daa39ba11a8a40a6574e 100644 (file)
@@ -734,12 +734,17 @@ struct Lisp_Symbol
 
 /* Declare extern constants for Lisp symbols.  These can be helpful
    when using a debugger like GDB, on older platforms where the debug
-   format does not represent C macros.  Athough these symbols are
-   useless on modern platforms, they don't hurt performance all that much.  */
-#define DEFINE_LISP_SYMBOL_BEGIN(name) \
-   DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name)
-#define DEFINE_LISP_SYMBOL_END(name) \
-   DEFINE_GDB_SYMBOL_END (LISP_INITIALLY (TAG_SYMPTR (name)))
+   format does not represent C macros.  However, they don't work with
+   GCC if INTPTR_MAX != EMACS_INT_MAX.  */
+#if EMACS_INT_MAX == INTPTR_MAX
+# define DEFINE_LISP_SYMBOL_BEGIN(name) \
+    DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name)
+# define DEFINE_LISP_SYMBOL_END(name) \
+    DEFINE_GDB_SYMBOL_END (LISP_INITIALLY (TAG_SYMPTR (name)))
+#else
+# define DEFINE_LISP_SYMBOL_BEGIN(name) /* empty */
+# define DEFINE_LISP_SYMBOL_END(name) /* empty */
+#endif
 
 #include "globals.h"