This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/2 v4] libc-internal.h: add ALIGN helper macros


On Tuesday 04 June 2013 06:49:00 Rasmus Villemoes wrote:
> Mike Frysinger writes:
> > On Monday 03 June 2013 15:12:05 Roland McGrath wrote:
> >> I think we should be using inlines rather than macros any time we don't
> >> have a strong reason to use macros.
> > 
> > generally we don't do caps inlines though ?  and using inlines means we
> > now have to deal with types.  the current one works with any size and
> > does the right thing.  if i wrote an inline, i'd have to pick a type
> > (size_t? int? long? uint64_t? uintmax_t?) and then there'd be ugliness
> > with signed vs unsigned, implicit casts, implicit truncation, overhead
> > with casting up to larger than natural types (like 64bit on a 32bit
> > system), etc...
> 
> I'm afraid one would have to deal with types anyway, as recently seen
> in the kernel http://lwn.net/Articles/548336/.

this is easily solved in the macro form:
	#define ALIGN_DOWN(base, size) ((base) & ~((__typeof__(base))(size) - 1))

which isn't easily achievable with inline funcs
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]