[openib-general] [PATCH] Avoid truncating to 'long' in ALIGN() macro

Jörn Engel joern at wohnheim.fh-wedel.de
Sun Nov 26 13:06:12 PST 2006


On Sun, 26 November 2006 12:26:08 -0800, Roland Dreier wrote:
> 
>  > +#define ALIGN(x,a)		__ALIGN_MASK(x,(typeof(x))(a)-1)
>  > +#define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask))
> 
> Fine by me, but it loses the extra (typeof(x)) cast that Al wanted to
> make sure that the result of ALIGN() is not wider than x.

Not a big deal, is it?

#define ALIGN(x,a)		(typeof(x))__ALIGN_MASK(x,(typeof(x))(a)-1)
#define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask))

Jörn

-- 
Don't worry about people stealing your ideas. If your ideas are any good,
you'll have to ram them down people's throats.
-- Howard Aiken quoted by Ken Iverson quoted by Jim Horning quoted by
   Raph Levien, 1979




More information about the general mailing list