[PATCH] Fix type inconsistencies in stdint.h

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Sat Apr 11 19:17:00 GMT 2009

On Sat, Apr 11, 2009 at 07:17:54PM +0100, Dave Korn wrote:
>Christopher Faylor wrote:
>> On Sat, Apr 11, 2009 at 10:07:36AM +0200, Corinna Vinschen wrote:
>>> On Apr 11 04:51, Dave Korn wrote:
>>>> Corinna Vinschen wrote:
>>>>> Good point, I guess.  So, if we all agree on that, I'd suggest to
>>>>> change Dave's patch to the one below.
>>>>   Two hunks went astray in the adjustment, the fixes for INTPTR_Mxx and
>>>> SIZE_MAX still apply because we didn't change their types.
>>>>   Also, Joseph just introduced a new testcase in GCC SVN, and it shows up a
>>>> problem with our definition of WINT_MAX.
>>> What problem exactly?  UINT_MAX not defined?
>>>> 	* include/stdint.h (INTPTR_MIN, INTPTR_MAX):  Add 'L' suffix.
>>>> 	(WINT_MAX):  Add 'U' suffix.
>>> Applied.
>> These are now different than linux.  Didn't we want to make them the same?
>  If linux doesn't have them matching the types they define, the linux headers
>are going to need patching upstream as well.  We have
>typedef long intptr_t;
>therefore the constants must be long as well.  What does Linux have?


/* Types for `void *' pointers.  */
#if __WORDSIZE == 64
# ifndef __intptr_t_defined
typedef long int		intptr_t;
#  define __intptr_t_defined
# endif
typedef unsigned long int	uintptr_t;
# ifndef __intptr_t_defined
typedef int			intptr_t;
#  define __intptr_t_defined
# endif
typedef unsigned int		uintptr_t;

So the answer is "int".


More information about the Cygwin-patches mailing list