diff options
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lisp.h b/src/lisp.h index dcc157e0b96..96256386218 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -276,15 +276,17 @@ error !; | |||
| 276 | 276 | ||
| 277 | /* Minimum alignment requirement for Lisp objects, imposed by the | 277 | /* Minimum alignment requirement for Lisp objects, imposed by the |
| 278 | internal representation of tagged pointers. It is 2**GCTYPEBITS if | 278 | internal representation of tagged pointers. It is 2**GCTYPEBITS if |
| 279 | USE_LSB_TAG, 1 otherwise. It must be a literal integer constant, | 279 | USE_LSB_TAG, otherwise the alignment of Lisp_Object to avoid |
| 280 | for older versions of GCC (through at least 4.9). */ | 280 | padding after union vectorlike_header. It must be a literal |
| 281 | integer constant, for older versions of GCC (through at least | ||
| 282 | 4.9). */ | ||
| 281 | #if USE_LSB_TAG | 283 | #if USE_LSB_TAG |
| 282 | # define GCALIGNMENT 8 | 284 | # define GCALIGNMENT 8 |
| 283 | # if GCALIGNMENT != 1 << GCTYPEBITS | 285 | # if GCALIGNMENT != 1 << GCTYPEBITS |
| 284 | # error "GCALIGNMENT and GCTYPEBITS are inconsistent" | 286 | # error "GCALIGNMENT and GCTYPEBITS are inconsistent" |
| 285 | # endif | 287 | # endif |
| 286 | #else | 288 | #else |
| 287 | # define GCALIGNMENT 1 | 289 | # define GCALIGNMENT alignof (Lisp_Object) |
| 288 | #endif | 290 | #endif |
| 289 | 291 | ||
| 290 | #define GCALIGNED_UNION char alignas (GCALIGNMENT) gcaligned; | 292 | #define GCALIGNED_UNION char alignas (GCALIGNMENT) gcaligned; |