> +#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. - R.