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


Reply via email to