Date: Sat, 21 Dec 2019 02:44:38 +0000 (UTC) From: Ryan Libby <rlibby@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r355975 - head/contrib/jemalloc/src Message-ID: <201912210244.xBL2icr2088604@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912210244.xBL2icr2088604>