]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid padding after union vectorlike_header
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 12 Aug 2018 09:03:36 +0000 (11:03 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Sun, 12 Aug 2018 09:12:27 +0000 (11:12 +0200)
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.

src/lisp.h

index dcc157e0b96aba149cf2cf07e1758cb9884f10ce..962563862180b0d86fb01c1b7ed6dbc37dcadc67 100644 (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;