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

Eric Anholt eric at anholt.net
Mon Oct 5 19:08:19 PDT 2009


On Mon, 2009-10-05 at 15:35 -0400, Adam Jackson wrote:
> 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.

Yes.  Yes yes yes.

-- 
Eric Anholt
eric at anholt.net                         eric.anholt at intel.com


-------------- 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/ce3f2fbd/attachment.pgp 


More information about the xorg-devel mailing list