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

Brooks Davis brooks at freebsd.org
Mon Apr 24 18:26:48 UTC 2017


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20170424/0613826e/attachment.sig>


More information about the freebsd-current mailing list