svn commit: r355975 - head/contrib/jemalloc/src
Ryan Libby
rlibby at FreeBSD.org
Sat Dec 21 02:44:38 UTC 2019
Author: rlibby
Date: Sat Dec 21 02:44:38 2019
New Revision: 355975
URL: https://svnweb.freebsd.org/changeset/base/355975
Log:
jemalloc: pick from upstream: Fix GCC-9.1 warning with macro GET_ARG_NUMERIC
Pick 2d6d099fed05b1509e81e54458516528bfbbf38d from upstream jemalloc:
Fix GCC-9.1 warning with macro GET_ARG_NUMERIC
GCC-9.1 reports following error when trying to compile file
src/malloc_io.c and with CFLAGS='-Werror' :
src/malloc_io.c: In function ‘malloc_vsnprintf’:
src/malloc_io.c:369:2: error: case label value exceeds maximum value for type [-Werror]
369 | case '?' | 0x80: \
| ^~~~
src/malloc_io.c:581:5: note: in expansion of macro ‘GET_ARG_NUMERIC’
581 | GET_ARG_NUMERIC(val, 'p');
| ^~~~~~~~~~~~~~~
...
<snip>
cc1: all warnings being treated as errors
make: *** [Makefile:388: src/malloc_io.sym.o] Error 1
The warning is reported as by default the type 'char' is 'signed char'
and or-ing 0x80 will turn the case label char negative which will be
beyond the printable ascii range (0 - 127).
The patch fixes this by explicitly casting the 'len' variable as
unsigned char' inside the 'switch' statement so that value of
expression " '?' | 0x80 " falls within the legal values of the
variable 'len'.
Discussed with: jasone (maintainer)
Sponsored by: Dell EMC Isilon
Modified:
head/contrib/jemalloc/src/malloc_io.c
Modified: head/contrib/jemalloc/src/malloc_io.c
==============================================================================
--- head/contrib/jemalloc/src/malloc_io.c Sat Dec 21 02:44:26 2019 (r355974)
+++ head/contrib/jemalloc/src/malloc_io.c Sat Dec 21 02:44:38 2019 (r355975)
@@ -376,7 +376,7 @@ malloc_vsnprintf(char *str, size_t size, const char *f
} \
} while (0)
#define GET_ARG_NUMERIC(val, len) do { \
- switch (len) { \
+ switch ((unsigned char)len) { \
case '?': \
val = va_arg(ap, int); \
break; \
More information about the svn-src-all
mailing list