diff options
author | Vaibhav Jain <vaibhav@linux.ibm.com> | 2019-05-21 06:36:16 (GMT) |
---|---|---|
committer | Qi Wang <interwq@gmail.com> | 2019-05-21 18:20:07 (GMT) |
commit | 2d6d099fed05b1509e81e54458516528bfbbf38d (patch) | |
tree | 25ad835e7b98e70b34409c66e26fcd16cacc1509 | |
parent | 07c44847c24634d0d11f9ceab7318400ffc1a16e (diff) | |
download | jemalloc-2d6d099fed05b1509e81e54458516528bfbbf38d.zip jemalloc-2d6d099fed05b1509e81e54458516528bfbbf38d.tar.gz jemalloc-2d6d099fed05b1509e81e54458516528bfbbf38d.tar.bz2 |
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'.
-rw-r--r-- | src/malloc_io.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/malloc_io.c b/src/malloc_io.c index 7bdc13f..dd88265 100644 --- a/src/malloc_io.c +++ b/src/malloc_io.c @@ -362,7 +362,7 @@ malloc_vsnprintf(char *str, size_t size, const char *format, va_list ap) { } \ } while (0) #define GET_ARG_NUMERIC(val, len) do { \ - switch (len) { \ + switch ((unsigned char)len) { \ case '?': \ val = va_arg(ap, int); \ break; \ |