This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 1/2 v4] libc-internal.h: add ALIGN helper macros
- From: Rasmus Villemoes <rv at rasmusvillemoes dot dk>
- To: libc-alpha at sourceware dot org
- Date: Wed, 19 Jun 2013 16:32:51 +0000
- Subject: Re: [PATCH 1/2 v4] libc-internal.h: add ALIGN helper macros
- References: <1369327649-906-1-git-send-email-vapier at gentoo dot org> <201306042137 dot 46393 dot vapier at gentoo dot org> <u0lppw021pr dot fsf at orc05 dot imf dot au dot dk> <201306191107 dot 39067 dot vapier at gentoo dot org>
Mike Frysinger <vapier@gentoo.org> writes:
> On Wednesday 05 June 2013 08:15:12 Rasmus Villemoes wrote:
>>
>> Is the extra expansion of size in ALIGN_UP a problem?
>
> if someone passes a value with side effects, then yes. that seems a
> bit unusual for these types of funcs (doing something like aligning
> to val++). i don't see a way past it short of not providing the
> macro.
I don't know if gcc does the appropriate optimizations in the,
presumably, common case where size is a literal, but something like
#define ALIGN_UP(base, size) ({ \
__typeof__((base)+(size)) ____mask = (size)-1; \
((base)+____mask) & ~____mask; })
should work. But it may very well be too ugly.
--
Rasmus Villemoes
<http://rasmusvillemoes.dk/>