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)).
This commit is contained in:
Paul Eggert 2020-05-26 00:47:24 -07:00
parent c4faf78a98
commit 9f7bfb6cb0

View file

@ -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)