From 9aebe8b466494805f2b15e6810d9485e3f21180a Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Wed, 11 Jul 2018 15:24:11 -0500 Subject: [PATCH] lib: json: Fix warning when building with newlib MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we use newlib the isdigit (and other similar functions) return an error as char can possibly be viewed as signed: usr/include/ctype.h:57:54: error: array subscript has type ‘char’ [-Werror=char-subscripts] #define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)]) Explicity cast to unsigned char so we deal with both this warning and possible warning when -Wpointer-sign is enabled. Signed-off-by: Kumar Gala --- lib/json/json.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/json/json.c b/lib/json/json.c index 98820b7d28d..830fa9dcd1f 100644 --- a/lib/json/json.c +++ b/lib/json/json.c @@ -77,7 +77,7 @@ static void emit(struct lexer *lexer, enum json_tokens token) lexer->start = lexer->pos; } -static char next(struct lexer *lexer) +static int next(struct lexer *lexer) { if (lexer->pos >= lexer->end) { lexer->pos = lexer->end + 1; @@ -98,9 +98,9 @@ static void backup(struct lexer *lexer) lexer->pos--; } -static char peek(struct lexer *lexer) +static int peek(struct lexer *lexer) { - char chr = next(lexer); + int chr = next(lexer); backup(lexer); @@ -112,7 +112,7 @@ static void *lexer_string(struct lexer *lexer) ignore(lexer); while (true) { - char chr = next(lexer); + int chr = next(lexer); if (chr == '\0') { emit(lexer, JSON_TOK_ERROR); @@ -217,7 +217,7 @@ static void *lexer_null(struct lexer *lexer) static void *lexer_number(struct lexer *lexer) { while (true) { - char chr = next(lexer); + int chr = next(lexer); if (isdigit(chr) || chr == '.') { continue; @@ -233,7 +233,7 @@ static void *lexer_number(struct lexer *lexer) static void *lexer_json(struct lexer *lexer) { while (true) { - char chr = next(lexer); + int chr = next(lexer); switch (chr) { case '\0':