Fix AO_SIZE_MAX definition (Linux/musl-gcc)
authorIvan Maidanski <ivmai@mail.ru>
Wed, 15 Mar 2017 08:27:48 +0000 (11:27 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 3 Apr 2017 21:12:08 +0000 (00:12 +0300)
(Cherry-pick commit 7a99c0f from 'master' branch.)

* src/atomic_ops_malloc.c [SIZE_MAX && !CPPCHECK] (AO_SIZE_MAX): Cast
SIZE_MAX to size_t explicitly (to workaround incorrect definition
of SIZE_MAX - e.g. it is defined as ~0ULL in musl-tools which is not
correct for a 32-bit target).

src/atomic_ops_malloc.c

index f8c18ec..937450a 100644 (file)
@@ -134,7 +134,8 @@ static char *get_mmaped(size_t sz)
 # include <limits.h>
 #endif
 #ifdef SIZE_MAX
-# define AO_SIZE_MAX SIZE_MAX
+# define AO_SIZE_MAX ((size_t)SIZE_MAX)
+            /* Extra cast to workaround some buggy SIZE_MAX definitions. */
 #else
 # define AO_SIZE_MAX (~(size_t)0)
 #endif