Re: [PATCH] utilities: add helper functions for safe 64-bit integer operations as 32-bit halves

Andrew Morton
2007-04-21T10:09:54Z

On Fri, 20 Apr 2007 20:55:49 -0400 (EDT) "John Anthony Kazos Jr." <jakj@j-a-k-j.com> wrote:

> +#define upper_32_bits(n) (sizeof(n) == 8 ? (u64)(n) >> 32 : 0)

It's very unclear what type this returns, in terms of both size and
signedness. Perhaps it always returns a u64, dunno. If it does, that will
cause the arithmetic which uses this macro to go 64-bit too. Casting the
whole return value to u32 would fix all those doubts up.

> +#define lower_32_bits(n) (sizeof(n) == 8 ? (u32)(n) : (n))

n&0xffffffff would be simpler.

Do we actually have any call for this?