Date: Tue, 19 Jan 2021 21:38:21 GMT From: Alex Richardson <arichardson@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 0348c8fcfaa2 - main - getopt: Fix conversion from string-literal to non-const char * Message-ID: <202101192138.10JLcLPW078513@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by arichardson: URL: https://cgit.FreeBSD.org/src/commit/?id=0348c8fcfaa22d4f2bf548ad9c187c09ef90c533 commit 0348c8fcfaa22d4f2bf548ad9c187c09ef90c533 Author: Alex Richardson <arichardson@FreeBSD.org> AuthorDate: 2021-01-19 11:35:04 +0000 Commit: Alex Richardson <arichardson@FreeBSD.org> CommitDate: 2021-01-19 21:23:25 +0000 getopt: Fix conversion from string-literal to non-const char * Define a non-const static char EMSG[] = "" to avoid having to add __DECONST() to all uses of EMSG. Also make current_dash a const char * to fix this warning. --- lib/libc/stdlib/getopt.c | 3 +-- lib/libc/stdlib/getopt_long.c | 4 ++-- tools/build/mk/Makefile.boot | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/stdlib/getopt.c b/lib/libc/stdlib/getopt.c index b6bdf8a1eeaf..b7f2229a2f54 100644 --- a/lib/libc/stdlib/getopt.c +++ b/lib/libc/stdlib/getopt.c @@ -54,8 +54,7 @@ char *optarg; /* argument associated with option */ #define BADCH (int)'?' #define BADARG (int)':' -#define EMSG "" - +static char EMSG[] = ""; /* * getopt -- * Parse argc/argv argument vector. diff --git a/lib/libc/stdlib/getopt_long.c b/lib/libc/stdlib/getopt_long.c index 4d92fd0cd45d..1f3548bef9ad 100644 --- a/lib/libc/stdlib/getopt_long.c +++ b/lib/libc/stdlib/getopt_long.c @@ -88,7 +88,7 @@ char *optarg; /* argument associated with option */ #define BADARG ((*options == ':') ? (int)':' : (int)'?') #define INORDER (int)1 -#define EMSG "" +static char EMSG[] = ""; #ifdef GNU_COMPATIBLE #define NO_PREFIX (-1) @@ -194,7 +194,7 @@ parse_long_options(char * const *nargv, const char *options, { char *current_argv, *has_equal; #ifdef GNU_COMPATIBLE - char *current_dash; + const char *current_dash; #endif size_t current_argv_len; int i, match, exact_match, second_partial_match; diff --git a/tools/build/mk/Makefile.boot b/tools/build/mk/Makefile.boot index 38df8135e53b..7ebbf726e7f2 100644 --- a/tools/build/mk/Makefile.boot +++ b/tools/build/mk/Makefile.boot @@ -41,6 +41,7 @@ CWARNFLAGS+= -Wno-typedef-redefinition # bsd.sys.mk explicitly turns on -Wsystem-headers, but that's extremely # noisy when building on Linux. CWARNFLAGS+= -Wno-system-headers +CWARNFLAGS.clang+=-Werror=incompatible-pointer-types-discards-qualifiers # b64_pton and b64_ntop is in libresolv on MacOS and Linux: # TODO: only needed for uuencode and uudecode
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101192138.10JLcLPW078513>