[PATCH] Cast small-int values through intptr_t when they're passed as pointers.

Adam Jackson ajax at nwnk.net
Mon Oct 5 12:35:11 PDT 2009


On Sun, 2009-10-04 at 12:08 +1100, Daniel Stone wrote:
> On Fri, Oct 02, 2009 at 01:42:50PM -0700, Jamey Sharp wrote:
> > On 64-bit systems, int and pointers don't have the same size, so GCC gives
> > warnings about casts between int and pointer types. However, in the cases
> > covered by this patch, it's always a value that fits in int being stored
> > temporarily as a pointer and then converted back later, which is safe.
> > Casting through the pointer-sized integer type intptr_t convinces the
> > compiler that this is OK.
> > 
> > Signed-off-by: Jamey Sharp <jamey at minilop.net>
> 
> Alan, Matthieu -- is this portable enough?

intptr_t is part of stdint.h in C99, but seems to also be in unistd.h in
UNIX98, which is nearly universal by this point unlike C99.

I would love love love to see us move entirely to stdint types instead
of the mess we've got now.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : http://lists.x.org/archives/xorg-devel/attachments/20091005/00ba0723/attachment.pgp 


More information about the xorg-devel mailing list