Re: buildworld fails with warning in usr.bin/diff/diffreg.c

From: Brooks Davis <brooks_at_freebsd.org>
Date: Mon, 24 Apr 2017 18:26:46 +0000
On Mon, Apr 24, 2017 at 10:04:15AM -0700, Hamza Sheikh wrote:
> The error is:
> 
> --- all_subdir_usr.bin ---
> cc1: warnings being treated as errors
> /home/vagrant/src/usr.bin/diff/diffreg.c: In function 'change':
> /home/vagrant/src/usr.bin/diff/diffreg.c:1085: warning: 'i' may be
> used uninitialized in this function

If I'm reading the code correctly, this is caused by this code at line
1217 and the analyzer being insufficiently smart (all prior uses include
initialization in for() loops):

        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) {

Adding "i = 0;" above this fixes the warning for me and appears to
preserve the intent.  This variable should be named something other than
i to avoid confusion.

-- Brooks

Received on Mon Apr 24 2017 - 16:26:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC