From 24a0b90e2677ef7d187f4e11c0de330854e7542f Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 10 Feb 2019 13:31:08 +0000 Subject: [PATCH] Fix multiple warnings in usr.bin/top about discarded qualifiers from both clang and gcc, by either constifying variables, or when that is not possible, using __DECONST. MFC after: 1 week --- usr.bin/top/Makefile | 7 +------ usr.bin/top/display.c | 8 ++++---- usr.bin/top/display.h | 2 +- usr.bin/top/machine.c | 4 ++-- usr.bin/top/top.c | 4 ++-- usr.bin/top/utils.c | 2 +- usr.bin/top/utils.h | 2 +- 7 files changed, 12 insertions(+), 17 deletions(-) diff --git a/usr.bin/top/Makefile b/usr.bin/top/Makefile index d778e07c8c14..148fd96c1914 100644 --- a/usr.bin/top/Makefile +++ b/usr.bin/top/Makefile @@ -7,14 +7,9 @@ SRCS= commands.c display.c machine.c screen.c top.c \ username.c utils.c MAN= top.1 -.if ${COMPILER_TYPE} == "gcc" -.if ${COMPILER_VERSION} >= 50000 -CFLAGS.gcc=-Wno-error=discarded-qualifiers -Wno-error=incompatible-pointer-types -.else #base gcc +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 50000 NO_WERROR= .endif -.endif -CFLAGS.clang=-Wno-error=incompatible-pointer-types-discards-qualifiers LIBADD= ncursesw m kvm jail util sbuf .include diff --git a/usr.bin/top/display.c b/usr.bin/top/display.c index 862d2a944c89..03277ea86cf2 100644 --- a/usr.bin/top/display.c +++ b/usr.bin/top/display.c @@ -184,7 +184,7 @@ int display_init(struct statics * statics) { int lines; - char **pp; + const char * const *pp; int *ip; int i; @@ -516,8 +516,8 @@ void z_cpustates(void) { int i = 0; - const char **names; - char *thisname; + const char * const *names; + const char *thisname; int cpu, value; for (cpu = 0; cpu < num_cpus; cpu++) { @@ -751,7 +751,7 @@ static int header_length; * allocated area with the trimmed header. */ -const char * +char * trim_header(const char *text) { char *s; diff --git a/usr.bin/top/display.h b/usr.bin/top/display.h index 5b5aa32fe220..546f21ce34b0 100644 --- a/usr.bin/top/display.h +++ b/usr.bin/top/display.h @@ -27,7 +27,7 @@ void i_timeofday(time_t *tod); void i_uptime(struct timeval *bt, time_t *tod); void new_message(int type, const char *msgfmt, ...); int readline(char *buffer, int size, int numeric); -const char *trim_header(const char *text); +char *trim_header(const char *text); void u_arc(int *stats); void u_carc(int *stats); void u_cpustates(int *states); diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c index 374c9da0edf4..563efc624e24 100644 --- a/usr.bin/top/machine.c +++ b/usr.bin/top/machine.c @@ -618,7 +618,7 @@ get_old_proc(struct kinfo_proc *pp) pp->ki_udata = NOPROC; return (NULL); } - pp->ki_udata = oldp; + pp->ki_udata = __DECONST(void *, oldp); return (oldp); } @@ -634,7 +634,7 @@ get_io_stats(const struct kinfo_proc *pp, long *inp, long *oup, long *flp, static struct kinfo_proc dummy; long ret; - oldp = get_old_proc(pp); + oldp = get_old_proc(__DECONST(struct kinfo_proc *, pp)); if (oldp == NULL) { memset(&dummy, 0, sizeof(dummy)); oldp = &dummy; diff --git a/usr.bin/top/top.c b/usr.bin/top/top.c index 80fa446fc7b1..650789689b6b 100644 --- a/usr.bin/top/top.c +++ b/usr.bin/top/top.c @@ -219,7 +219,7 @@ handle_user(char *buf, size_t buflen) } int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i; int active_procs; @@ -306,7 +306,7 @@ main(int argc, char *argv[]) optind = 1; } - while ((i = getopt_long(ac, av, "CSIHPabijJ:nquvzs:d:U:m:o:p:Ttw", longopts, NULL)) != EOF) + while ((i = getopt_long(ac, __DECONST(char * const *, av), "CSIHPabijJ:nquvzs:d:U:m:o:p:Ttw", longopts, NULL)) != EOF) { switch(i) { diff --git a/usr.bin/top/utils.c b/usr.bin/top/utils.c index 93bbcad09dc4..1ac0d6ad1516 100644 --- a/usr.bin/top/utils.c +++ b/usr.bin/top/utils.c @@ -146,7 +146,7 @@ string_index(const char *string, const char * const *array) * squat about quotes. */ -const char * const * +const char ** argparse(char *line, int *cntp) { const char **ap; diff --git a/usr.bin/top/utils.h b/usr.bin/top/utils.h index 106e1da08963..2688f5518575 100644 --- a/usr.bin/top/utils.h +++ b/usr.bin/top/utils.h @@ -16,7 +16,7 @@ int atoiwi(const char *); char *itoa(unsigned int); char *itoa7(int); int digits(int); -const char * const *argparse(char *, int *); +const char **argparse(char *, int *); long percentages(int, int *, long *, long *, long *); const char *format_time(long); char *format_k(int64_t);