Change GCALIGNMENT back to an integer literal
* src/lisp.h (GCALIGNMENT): Change it back to a macro that expands to a literal integer constant, for older GCC. I had mistakenly thought that only MSVC had the problem. Problem repored by Eli Zaretskii (Bug#29040#69).
This commit is contained in:
parent
a87ce5c4b4
commit
c911b27aff
1 changed files with 7 additions and 1 deletions
|
@ -233,7 +233,9 @@ extern bool suppress_checking EXTERNALLY_VISIBLE;
|
|||
|
||||
enum Lisp_Bits
|
||||
{
|
||||
GCALIGNMENT = 1 << GCTYPEBITS,
|
||||
/* 2**GCTYPEBITS. This must be a macro that expands to a literal
|
||||
integer constant, for older versions of GCC (through at least 4.9). */
|
||||
#define GCALIGNMENT 8
|
||||
|
||||
/* Number of bits in a Lisp_Object value, not counting the tag. */
|
||||
VALBITS = EMACS_INT_WIDTH - GCTYPEBITS,
|
||||
|
@ -245,6 +247,10 @@ enum Lisp_Bits
|
|||
FIXNUM_BITS = VALBITS + 1
|
||||
};
|
||||
|
||||
#if GCALIGNMENT != 1 << GCTYPEBITS
|
||||
# error "GCALIGNMENT and GCTYPEBITS are inconsistent"
|
||||
#endif
|
||||
|
||||
/* The maximum value that can be stored in a EMACS_INT, assuming all
|
||||
bits other than the type bits contribute to a nonnegative signed value.
|
||||
This can be used in #if, e.g., '#if USE_LSB_TAG' below expands to an
|
||||
|
|
Loading…
Add table
Reference in a new issue