[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 3d0a0ca: Avoid padding after union vectorlike_header,
Andreas Schwab <=