Use __alignof__ instead of assuming int64_t to get the right

alignment.

Differential Revision: https://reviews.freebsd.org/D4708
This commit is contained in:
Warner Losh 2015-12-30 03:36:22 +00:00
parent eabf894627
commit 1cf827546a

View file

@ -99,16 +99,7 @@ moreglue(int n)
FILE *p;
size_t align;
/*
* FILE has a mbstate_t variable. This variable tries to be int64_t
* aligned through its definition. int64_t may be larger than void *,
* which is the size traditionally used for ALIGNBYTES. So, use our own
* rounding instead of the MI ALIGN macros. If for some reason
* ALIGNBYTES is larger than int64_t, respect that too. There appears to
* be no portable way to ask for FILE's alignment requirements other
* than just knowing here.
*/
align = MAX(ALIGNBYTES, sizeof(int64_t));
align = __alignof__(FILE);
g = (struct glue *)malloc(sizeof(*g) + align + n * sizeof(FILE));
if (g == NULL)
return (NULL);