[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 9f7bfb6: Port struct Lisp_FLoat to oddball platforms
From: |
Paul Eggert |
Subject: |
master 9f7bfb6: Port struct Lisp_FLoat to oddball platforms |
Date: |
Tue, 26 May 2020 03:47:54 -0400 (EDT) |
branch: master
commit 9f7bfb6cb06f1480a0904184cabf187e03628e55
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Port struct Lisp_FLoat to oddball platforms
* src/lisp.h (struct Lisp_Float): Declare via
GCALIGNED_UNION_MEMBER, not via GCALIGNED_STRUCT, since alloc.c
creates these in arrays and GCALIGNED_STRUCT does not necessarily
suffice to align struct Lisp_Float when it’s used in an array.
This avoids undefined behavior on oddball machines where
sizeof (struct Lisp_Float) is not a multiple of 8 and the compiler
does not support __attribute__ ((aligned 8)).
---
src/lisp.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/lisp.h b/src/lisp.h
index 8bd83a8..f5d581a 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2801,8 +2801,10 @@ struct Lisp_Float
{
double data;
struct Lisp_Float *chain;
+ GCALIGNED_UNION_MEMBER
} u;
- } GCALIGNED_STRUCT;
+ };
+verify (GCALIGNED (struct Lisp_Float));
INLINE bool
(FLOATP) (Lisp_Object x)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 9f7bfb6: Port struct Lisp_FLoat to oddball platforms,
Paul Eggert <=