1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-18 10:16:51 +00:00

Avoid padding after union vectorlike_header

The PSEUDOVECTORSIZE macro requires that the first member after union
vectorlike_header has the same offset in all pseudo vector structures.

* src/lisp.h (GCALIGNMENT) [!USE_LSB_TAG]: Use alignment of
Lisp_Object.
This commit is contained in:
Andreas Schwab 2018-08-12 11:03:36 +02:00
parent 3fc948a36c
commit 3d0a0ca7ca

View File

@ -276,15 +276,17 @@ error !;
/* Minimum alignment requirement for Lisp objects, imposed by the
internal representation of tagged pointers. It is 2**GCTYPEBITS if
USE_LSB_TAG, 1 otherwise. It must be a literal integer constant,
for older versions of GCC (through at least 4.9). */
USE_LSB_TAG, otherwise the alignment of Lisp_Object to avoid
padding after union vectorlike_header. It must be a literal
integer constant, for older versions of GCC (through at least
4.9). */
#if USE_LSB_TAG
# define GCALIGNMENT 8
# if GCALIGNMENT != 1 << GCTYPEBITS
# error "GCALIGNMENT and GCTYPEBITS are inconsistent"
# endif
#else
# define GCALIGNMENT 1
# define GCALIGNMENT alignof (Lisp_Object)
#endif
#define GCALIGNED_UNION char alignas (GCALIGNMENT) gcaligned;