From dc69989b99dcac59440a1234953782fcc4f440f7 Mon Sep 17 00:00:00 2001 From: PetersSharp Date: Mon, 14 May 2018 02:32:02 +0300 Subject: [PATCH] update warnings about differ in signedness - tiny-json.c: In function 'parseString': - tiny-json.c:124:13: warning: pointer targets in return differ in signedness [-Wpointer-sign] - tiny-json.c:128:17: warning: pointer targets in passing argument 1 of 'getCharFromUnicode' differ in signedness [-Wpointer-sign] - tiny-json.c:105:13: note: expected 'const char *' but argument is of type 'unsigned char *' --- README-FIX.md | 8 ++++++++ tiny-json.c | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 README-FIX.md diff --git a/README-FIX.md b/README-FIX.md new file mode 100644 index 0000000..cc97e58 --- /dev/null +++ b/README-FIX.md @@ -0,0 +1,8 @@ +# tiny-json update + +## update warnings: + +- tiny-json.c: In function 'parseString': +- tiny-json.c:124:13: warning: pointer targets in return differ in signedness [-Wpointer-sign] +- tiny-json.c:128:17: warning: pointer targets in passing argument 1 of 'getCharFromUnicode' differ in signedness [-Wpointer-sign] +- tiny-json.c:105:13: note: expected 'const char *' but argument is of type 'unsigned char *' diff --git a/tiny-json.c b/tiny-json.c index 03d5acc..7522afa 100644 --- a/tiny-json.c +++ b/tiny-json.c @@ -102,7 +102,7 @@ static bool isHexaDigit( unsigned char nibble ) { * @Param str Pointer to first digit. * @retval '?' If the four characters are hexadecimal digits. * @retcal '\0' In other cases. */ -static char getCharFromUnicode( char const* str ) { +static unsigned char getCharFromUnicode( unsigned char const* str ) { unsigned int i; for( i = 0; i < 4; ++i ) if ( !isHexaDigit( str[i] ) ) @@ -116,12 +116,12 @@ static char getCharFromUnicode( char const* str ) { * @retval Pointer to first non white space after the string. If success. * @retval Null pointer if any error occur. */ static char* parseString( char* str ) { - char* head = str; - char* tail = str; + unsigned char* head = (unsigned char*)str; + unsigned char* tail = (unsigned char*)str; for( ; *head >= ' '; ++head, ++tail ) { if ( *head == '\"' ) { *tail = '\0'; - return ++head; + return (char*)++head; } if ( *head == '\\' ) { if ( *++head == 'u' ) {