emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3d0a0ca: Avoid padding after union vectorlike_heade


From: Andreas Schwab
Subject: [Emacs-diffs] master 3d0a0ca: Avoid padding after union vectorlike_header
Date: Sun, 12 Aug 2018 05:13:24 -0400 (EDT)

branch: master
commit 3d0a0ca7ca58cdb8f07be63df28ad30e4367167d
Author: Andreas Schwab <address@hidden>
Commit: Andreas Schwab <address@hidden>

    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.
---
 src/lisp.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lisp.h b/src/lisp.h
index dcc157e..9625638 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]