svn commit: r317381 - head/usr.bin/diff

Dimitry Andric dim at FreeBSD.org
Mon Apr 24 20:34:58 UTC 2017


Author: dim
Date: Mon Apr 24 20:34:56 2017
New Revision: 317381
URL: https://svnweb.freebsd.org/changeset/base/317381

Log:
  Fix the following warning from gcc 4.2 in usr.bin/diff:
  
  usr.bin/diff/diffreg.c: In function 'change':
  usr.bin/diff/diffreg.c:1085: warning: 'i' may be used uninitialized in this function
  
  This version of gcc is not smart enough to see that 'i' cannot actually
  be used unitialized.  However, the variable is confusingly re-used, so
  it is better to give it another name, and clearly initialize it before
  attempting to use it.
  
  Reviewed by:	bapt
  Differential Revision: https://reviews.freebsd.org/D10484

Modified:
  head/usr.bin/diff/diffreg.c

Modified: head/usr.bin/diff/diffreg.c
==============================================================================
--- head/usr.bin/diff/diffreg.c	Mon Apr 24 18:35:25 2017	(r317380)
+++ head/usr.bin/diff/diffreg.c	Mon Apr 24 20:34:56 2017	(r317381)
@@ -1082,7 +1082,7 @@ change(char *file1, FILE *f1, char *file
 {
 	static size_t max_context = 64;
 	long curpos;
-	int i, nc;
+	int i, nc, f;
 	const char *walk;
 
 restart:
@@ -1214,9 +1214,10 @@ proceed:
 		if (a <= b && c <= d && diff_format == D_NORMAL)
 			diff_output("---\n");
 	}
+	f = 0;
 	if (diff_format != D_GFORMAT)
-		i = fetch(ixnew, c, d, f2, diff_format == D_NORMAL ? '>' : '\0', 0, *pflags);
-	if (i != 0 && diff_format == D_EDIT) {
+		f = fetch(ixnew, c, d, f2, diff_format == D_NORMAL ? '>' : '\0', 0, *pflags);
+	if (f != 0 && diff_format == D_EDIT) {
 		/*
 		 * A non-zero return value for D_EDIT indicates that the
 		 * last line printed was a bare dot (".") that has been
@@ -1225,10 +1226,10 @@ proceed:
 		 * back and restart where we left off.
 		 */
 		diff_output(".\n");
-		diff_output("%ds/.//\n", a + i - 1);
-		b = a + i - 1;
+		diff_output("%ds/.//\n", a + f - 1);
+		b = a + f - 1;
 		a = b + 1;
-		c += i;
+		c += f;
 		goto restart;
 	}
 	if ((diff_format == D_EDIT || diff_format == D_REVERSE) && c <= d)


More information about the svn-src-all mailing list