Re: [PATCH] ptrdiff_t is not uintptr_t, damnit

Al Viro
2007-08-20T03:41:16Z

On Sun, Aug 19, 2007 at 08:26:24PM -0700, David Brownell wrote:

> ISTR the warning was the other way around: about "cast from integer
> to pointer of a different size". The __u64 came from userspace and
> the kernel pointer was only 32 bits. Not really truncation, but GCC
> could not know that directly ... ergo the extra non-pointer cast.

And? Cast to integer type with the size equal to that of pointer.
unsigned long is just that on all supported targets.

More interesting question is whether you want an error returned when
pointers are 32bit and value doesn't fit into that...