This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Use max_align_t from <stddef.h>
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Wed, 28 Oct 2015 17:06:05 +0000
- Subject: Use max_align_t from <stddef.h>
- Authentication-results: sourceware.org; auth=none
Now that we build with -std=gnu11 and can rely on a compiler providing
max_align_t in <stddef.h>, 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).
2015-10-28 Joseph Myers <joseph@codesourcery.com>
* include/libc-internal.h (libc_max_align_t): Remove typedef.
* include/scratch_buffer.h: Include <stddef.h> instead of
<libc-internal.h>.
(struct scratch_buffer): Use max_align_t instead of
libc_max_align_t.
diff --git a/include/libc-internal.h b/include/libc-internal.h
index 65a2a56..7a185bb 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 6f92694..1a50cdf 100644
--- a/include/scratch_buffer.h
+++ b/include/scratch_buffer.h
@@ -58,17 +58,16 @@
*/
#include <stdbool.h>
+#include <stddef.h>
#include <stdlib.h>
-#include <libc-internal.h>
-
/* 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
--
Joseph S. Myers
joseph@codesourcery.com