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:
parent
3fc948a36c
commit
3d0a0ca7ca
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user