Marc-André Lureau wrote: > +2012-01-24 Marc-André Lureau <[email protected]> > + > + * lib/malloca.c: Use uintptr_t to convert pointers to > + integers. Fix warnings with MinGW64 x64.
Thanks for the patch. However, use of uintptr_t requires inclusion of the header that defines this type. In POSIX, <stdint.h> or <unistd.h> can be included to define uintptr_t. Gnulib defines this type only in <stdint.h> (see tests/test-stdint.c and tests/test-unistd.c). I'm applying this combined patch: 2012-01-24 Marc-André Lureau <[email protected]> (tiny change) Bruno Haible <[email protected]> malloca: Avoid warnings on x86_64 mingw64. * lib/malloca.c: Include <stdint.h>. (mmalloca, freea): Use uintptr_t to convert pointers to integers. * modules/malloca (Depends-on): Add stdint. * modules/relocatable-prog-wrapper (Depends-on): Likewise. --- lib/malloca.c.orig Tue Jan 24 13:18:20 2012 +++ lib/malloca.c Tue Jan 24 13:14:45 2012 @@ -22,6 +22,8 @@ /* Specification. */ #include "malloca.h" +#include <stdint.h> + #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() @@ -85,7 +87,7 @@ ((int *) p)[-1] = MAGIC_NUMBER; /* Enter p into the hash table. */ - slot = (unsigned long) p % HASH_TABLE_SIZE; + slot = (uintptr_t) p % HASH_TABLE_SIZE; ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot]; mmalloca_results[slot] = p; @@ -118,7 +120,7 @@ { /* Looks like a mmalloca() result. To see whether it really is one, perform a lookup in the hash table. */ - size_t slot = (unsigned long) p % HASH_TABLE_SIZE; + size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; void **chain = &mmalloca_results[slot]; for (; *chain != NULL;) { --- modules/malloca.orig Tue Jan 24 13:18:20 2012 +++ modules/malloca Tue Jan 24 13:15:09 2012 @@ -11,6 +11,7 @@ Depends-on: alloca-opt +stdint verify configure.ac: --- modules/relocatable-prog-wrapper.orig Tue Jan 24 13:18:20 2012 +++ modules/relocatable-prog-wrapper Tue Jan 24 13:16:17 2012 @@ -39,6 +39,7 @@ pathmax ssize_t stdbool +stdint stdlib unistd environ
