diff options
| author | Paul Eggert | 2015-01-08 00:41:17 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-01-08 00:44:18 -0800 |
| commit | 0002f31af9d3511b00eaa15590ba824acea99f25 (patch) | |
| tree | 0a1200e874c30e740751a6e5d872f8041cc45498 /src | |
| parent | 206333ee300408e24bca860287efba11326a990d (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | src/lisp.h | 17 |
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 @@ | |||
| 1 | 2015-01-08 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2015-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 | ||