Messages in this thread | | | Subject | Re: [PATCH] Avoid truncating to 'long' in ALIGN() macro | From | Roland Dreier <> | Date | Sat, 25 Nov 2006 15:09:38 -0800 |
| |
> 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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |