Commit c911b27a authored by Paul Eggert's avatar Paul Eggert

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).
parent a87ce5c4
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment