Re: [PATCH] Avoid truncating to 'long' in ALIGN() macro

From: Roland Dreier
Date: Sat Nov 25 2006 - 18:09:56 EST


> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/