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

Roland Dreier rdreier at cisco.com
Sat Nov 25 15:09:38 PST 2006


 > You would need to also cast the constants with typeof() to.

Why?  I'm not much of a C language lawyer, but I would have thought
that in something like

	(x) + _a - 1

the "1" will be promoted to the type of the rest of the expression
without any explicit cast.  I tested the unsigned long/unsigned int
and u64/int cases of ALIGN(), and my macro with typeof() works for
both of those cases at least.

 > But yes, given the array sizing case in the neighbour code,
 > perhaps we can use your original patch for now.  Feel free
 > to push that to Linus.

akpm is CC'ed on this thread.  Andrew, are you going to pick this up?

Thanks,
  Roland




More information about the general mailing list