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;                                                  \
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to