From dbb7600658d8ea633083ee99572622b04ef23a3f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 29 Oct 2015 12:46:22 +0000 Subject: Use max_align_t from . Now that we build with -std=gnu11 and can rely on a compiler providing max_align_t in , we no longer need our own version libc_max_align_t. This patch removes it and replaces the single user with a use of max_align_t. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch for x86_64; for x86, I see some code reordering of no significance). * include/libc-internal.h (libc_max_align_t): Remove typedef. * include/scratch_buffer.h: Include instead of . (struct scratch_buffer): Use max_align_t instead of libc_max_align_t. --- ChangeLog | 8 ++++++++ include/libc-internal.h | 9 --------- include/scratch_buffer.h | 5 ++--- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9bab5e44bb..55c2a0d213 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2015-10-29 Joseph Myers + + * include/libc-internal.h (libc_max_align_t): Remove typedef. + * include/scratch_buffer.h: Include instead of + . + (struct scratch_buffer): Use max_align_t instead of + libc_max_align_t. + 2015-10-29 Florian Weimer * elf/dl-fini.c (_dl_fini): Rewrite to use variable-length array diff --git a/include/libc-internal.h b/include/libc-internal.h index 65a2a56cc7..7a185bbdc7 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -111,13 +111,4 @@ extern __typeof (__profile_frequency) __profile_frequency attribute_hidden; #define DIAG_IGNORE_NEEDS_COMMENT(version, option) \ _Pragma (_DIAG_STR (GCC diagnostic ignored option)) -/* This mirrors the C11 max_align_t type provided by GCC, but it is - also available in C99 mode. The aligned attributes are required - because some ABIs have reduced alignment requirements for struct - and union members. */ -typedef struct { - long long ll __attribute__ ((__aligned__ (__alignof__ (long long)))); - long double ld __attribute__ ((__aligned__ (__alignof__ (long double)))); -} libc_max_align_t; - #endif /* _LIBC_INTERNAL */ diff --git a/include/scratch_buffer.h b/include/scratch_buffer.h index 6f92694bb8..1a50cdf647 100644 --- a/include/scratch_buffer.h +++ b/include/scratch_buffer.h @@ -58,17 +58,16 @@ */ #include +#include #include -#include - /* Scratch buffer. Must be initialized with scratch_buffer_init before its use. */ struct scratch_buffer { void *data; /* Pointer to the beginning of the scratch area. */ size_t length; /* Allocated space at the data pointer, in bytes. */ char __space[1024] - __attribute__ ((aligned (__alignof__ (libc_max_align_t)))); + __attribute__ ((aligned (__alignof__ (max_align_t)))); }; /* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space -- cgit v1.2.3