aboutsummaryrefslogtreecommitdiff
path: root/posix/times.c
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-10-06 20:05:48 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-10-21 00:19:20 +0100
commit8a9a59311551e833ca064de44ac23b193e1b704d (patch)
tree1d91ec3b267277e45d849261406337c1c4fa5a3f /posix/times.c
parentaa783f9a7b774d67487daa9376095738aef5cf88 (diff)
downloadglibc-8a9a59311551e833ca064de44ac23b193e1b704d.tar
glibc-8a9a59311551e833ca064de44ac23b193e1b704d.tar.gz
glibc-8a9a59311551e833ca064de44ac23b193e1b704d.tar.bz2
glibc-8a9a59311551e833ca064de44ac23b193e1b704d.zip
Add alloc_align attribute to memalign et al
GCC 4.9.0 added the alloc_align attribute to say that a function argument specifies the alignment of the returned pointer. Clang supports the attribute too. Using the attribute can allow a compiler to generate better code if it knows the returned pointer has a minimum alignment. See https://gcc.gnu.org/PR60092 for more details. GCC implicitly knows the semantics of aligned_alloc and posix_memalign, but not the obsolete memalign. As a result, GCC generates worse code when memalign is used, compared to aligned_alloc. Clang knows about aligned_alloc and memalign, but not posix_memalign. This change adds a new __attribute_alloc_align__ macro to <sys/cdefs.h> and then uses it on memalign (where it helps GCC) and aligned_alloc (where GCC and Clang already know the semantics, but it doesn't hurt) and xposix_memalign. It can't be used on posix_memalign because that doesn't return a pointer (the allocated pointer is returned via a void** parameter instead). Unlike the alloc_size attribute, alloc_align only allows a single argument. That means the new __attribute_alloc_align__ macro doesn't really need to be used with double parentheses to protect a comma between its arguments. For consistency with __attribute_alloc_size__ this patch defines it the same way, so that double parentheses are required. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'posix/times.c')
0 files changed, 0 insertions, 0 deletions