Recent compilers have activated some additional
checks which let the build fail. (at least with cygwin)
(Normally it would be warnings but opensc compiles
with -Werror)
GCC 9.3:
In file included from profile.c:27:
profile.c: In function '__expr_get':
profile.c:2273:18: error: array subscript has type 'char' [-Werror=char-subscripts]
2273 | while (isspace(*s))
| ^~
clang 8.0.1:
compat_getopt_main.c:102:22: error: array subscript is of type 'char' [-Werror,-Wchar-subscripts]
rc = toupper(rc);
^~~~~~~~~~~
/usr/include/ctype.h:161:25: note: expanded from macro 'toupper'
(void) __CTYPE_PTR[__x]; (toupper) (__x);})
^~~~
Actually the code is correct as isspace and others
are used here with data type char, and are to be used
with data type int.
So either the compiler should have deactivated
this error, or the ctype.h macros have to be
written so the compiler no longer complains.
As there is also a simple workaround by casting
char to unsigned char, there is no need to wait for one
of the former options to be happen sometime.
Fix compiler warnings:
compat_getopt_main.c: In function ‘main’:
compat_getopt_main.c:145: warning: initialization discards qualifiers from pointer target type
compat_getopt_main.c:288: warning: assignment discards qualifiers from pointer target type
compat_getopt_main.c:336: warning: assignment discards qualifiers from pointer target type
compat_getopt_main.c:366: warning: passing argument 3 of ‘handle’ discards qualifiers from pointer target type
compat_getopt_main.c:76: note: expected ‘char *’ but argument is of type ‘const char *’
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4743 c6295689-39f2-0310-b995-f0e70906c6a9
compat_getopt_main.c: In function ‘handle’:
compat_getopt_main.c:123: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘long unsigned int’
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4742 c6295689-39f2-0310-b995-f0e70906c6a9