basic/json: silence gcc warning about limited range of data type

With gcc-7.1.1-3.fc26.aarch64:
../src/basic/json.c: In function ‘json_format’:
../src/basic/json.c:1409:40: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                                 if (*q >= 0 && *q < ' ')
                                        ^~
../src/basic/json.c: In function ‘inc_lines_columns’:
../src/basic/json.c:1762:31: warning: comparison is always true due to limited range of data type [-Wtype-limits]
                 } else if (*s >= 0 && *s < 127) /* Process ASCII chars quickly */
                               ^~

Cast to (signed char) silences the warning, but a cast to (int) for some reason
doesn't.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2018-11-15 14:50:07 +01:00 committed by Lennart Poettering
parent cd5a29ce98
commit df7f9e0b2c
1 changed files with 2 additions and 2 deletions

View File

@ -1406,7 +1406,7 @@ static int json_format(FILE *f, JsonVariant *v, unsigned flags, const char *pref
break;
default:
if (*q >= 0 && *q < ' ')
if ((signed char) *q >= 0 && *q < ' ')
fprintf(f, "\\u%04x", *q);
else
fputc(*q, f);
@ -1759,7 +1759,7 @@ static void inc_lines_columns(unsigned *line, unsigned *column, const char *s, s
if (*s == '\n') {
(*line)++;
*column = 1;
} else if (*s >= 0 && *s < 127) /* Process ASCII chars quickly */
} else if ((signed char) *s >= 0 && *s < 127) /* Process ASCII chars quickly */
(*column)++;
else {
int w;