svn commit: r335024 - head/usr.bin/top

Eitan Adler eadler at FreeBSD.org
Wed Jun 13 00:45:40 UTC 2018


Author: eadler
Date: Wed Jun 13 00:45:38 2018
New Revision: 335024
URL: https://svnweb.freebsd.org/changeset/base/335024

Log:
  top(1): several small bugfixes and nits
  
  - initialize all maybe uninitialized vars with bogus values. This shuts
  up the compiler, and causes crashes if it changes later.
  - mark noreturn as noreturn
  - removed unused macro
  - handle x_procstate as runtime rather than pre-processor
  - avoid using void functions in condtionals
  
  Tested with clang, gcc 7, gcc 9

Modified:
  head/usr.bin/top/Makefile
  head/usr.bin/top/display.c
  head/usr.bin/top/machine.c
  head/usr.bin/top/top.c

Modified: head/usr.bin/top/Makefile
==============================================================================
--- head/usr.bin/top/Makefile	Wed Jun 13 00:45:35 2018	(r335023)
+++ head/usr.bin/top/Makefile	Wed Jun 13 00:45:38 2018	(r335024)
@@ -9,8 +9,7 @@ MAN=	top.1
 
 .if ${COMPILER_TYPE} == "gcc"
 .if ${COMPILER_VERSION} >= 50000
-CFLAGS.gcc=-Wno-error=cast-qual -Wno-error=discarded-qualifiers -Wno-error=incompatible-pointer-types \
-	-Wno-error=maybe-uninitialized
+CFLAGS.gcc=-Wno-error=cast-qual -Wno-error=discarded-qualifiers -Wno-error=incompatible-pointer-types
 .else #base gcc
 NO_WERROR=
 .endif

Modified: head/usr.bin/top/display.c
==============================================================================
--- head/usr.bin/top/display.c	Wed Jun 13 00:45:35 2018	(r335023)
+++ head/usr.bin/top/display.c	Wed Jun 13 00:45:38 2018	(r335024)
@@ -377,12 +377,13 @@ u_procstates(int total, int *brkdn)
     if (ltotal != total)
     {
 	/* move and overwrite */
-#if (x_procstate == 0)
+if (x_procstate == 0) {
 	Move_to(x_procstate, y_procstate);
-#else
+}
+else {
 	/* cursor is already there...no motion needed */
-	/* assert(lastline == 1); */
-#endif
+	assert(lastline == 1);
+}
 	printf("%d", total);
 
 	/* if number of digits differs, rewrite the label */
@@ -955,11 +956,14 @@ new_message(int type, const char *msgfmt, ...)
 	    i = strlen(next_msg);
 	    if ((type & MT_delayed) == 0)
 	    {
-		type & MT_standout ? top_standout(next_msg) :
-		                     fputs(next_msg, stdout);
-		(void) clear_eol(msglen - i);
-		msglen = i;
-		next_msg[0] = '\0';
+			if (type & MT_standout) {
+				top_standout(next_msg);
+			} else {
+				fputs(next_msg, stdout);
+			}
+			clear_eol(msglen - i);
+			msglen = i;
+			next_msg[0] = '\0';
 	    }
 	}
     }
@@ -967,7 +971,11 @@ new_message(int type, const char *msgfmt, ...)
     {
 	if ((type & MT_delayed) == 0)
 	{
-	    type & MT_standout ? top_standout(next_msg) : fputs(next_msg, stdout);
+		if (type & MT_standout) {
+			top_standout(next_msg);
+		} else {
+			fputs(next_msg, stdout);
+		}
 	    msglen = strlen(next_msg);
 	    next_msg[0] = '\0';
 	}

Modified: head/usr.bin/top/machine.c
==============================================================================
--- head/usr.bin/top/machine.c	Wed Jun 13 00:45:35 2018	(r335023)
+++ head/usr.bin/top/machine.c	Wed Jun 13 00:45:38 2018	(r335024)
@@ -79,8 +79,6 @@ struct handle {
 #define PROCSIZE(pp) ((pp)->ki_size / 1024)
 
 #define RU(pp)	(&(pp)->ki_rusage)
-#define RUTOT(pp) \
-	(RU(pp)->ru_inblock + RU(pp)->ru_oublock + RU(pp)->ru_majflt)
 
 #define	PCTCPU(pp) (pcpu[pp - pbase])
 

Modified: head/usr.bin/top/top.c
==============================================================================
--- head/usr.bin/top/top.c	Wed Jun 13 00:45:35 2018	(r335023)
+++ head/usr.bin/top/top.c	Wed Jun 13 00:45:38 2018	(r335024)
@@ -245,8 +245,8 @@ main(int argc, char *argv[])
     char *env_top;
     const char **preset_argv;
     int  preset_argc = 0;
-    const char **av;
-    int  ac;
+    const char **av = NULL;
+    int  ac = -1;
     bool dostates = false;
     bool do_unames = true;
     char interactive = 2;
@@ -1230,7 +1230,7 @@ top_winch(int i __unused)		/* SIGWINCH handler */
     winchflag = 1;
 }
 
-void
+void __dead2
 quit(int status)		/* exit under duress */
 {
     end_screen();


More information about the svn-src-all mailing list