From owner-svn-src-all@freebsd.org Thu May 24 06:36:43 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D388F59394; Thu, 24 May 2018 06:36:43 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from smtp.freebsd.org (unknown [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F2D0378A82; Thu, 24 May 2018 06:36:42 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: from mail-it0-f48.google.com (mail-it0-f48.google.com [209.85.214.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) (Authenticated sender: mmacy) by smtp.freebsd.org (Postfix) with ESMTPSA id B6384E7CE; Thu, 24 May 2018 06:36:42 +0000 (UTC) (envelope-from mmacy@freebsd.org) Received: by mail-it0-f48.google.com with SMTP id d10-v6so1010815itj.1; Wed, 23 May 2018 23:36:42 -0700 (PDT) X-Gm-Message-State: ALKqPwfY8CpUFbX2BR2OIJ9FPhK9moo2njfg5yiaCiZueTn3XeoYhLw8 Dhi5Ln9lsk6vRpOYht6cH6rzSI7WrrjxMT32U7Y= X-Google-Smtp-Source: AB8JxZqTkqBK5Bf+IGeihjlAe9m7Dp1sEGg/HpO9qDNmDMYcOBK1wZZvtLme9WLa/It/SQkYd9V7KNDhr5Qi5191XE0= X-Received: by 2002:a24:5b54:: with SMTP id g81-v6mr7865494itb.7.1527143802111; Wed, 23 May 2018 23:36:42 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:85ca:0:0:0:0:0 with HTTP; Wed, 23 May 2018 23:36:41 -0700 (PDT) In-Reply-To: <5B9EE208-384F-44AD-9B47-059D77FE9B34@macmic.franken.de> References: <201805190510.w4J5AqfS054367@repo.freebsd.org> <20180523222743.GU71675@FreeBSD.org> <20180523225729.GV71675@FreeBSD.org> <20180524044252.GW71675@FreeBSD.org> <5B9EE208-384F-44AD-9B47-059D77FE9B34@macmic.franken.de> From: Matthew Macy Date: Wed, 23 May 2018 23:36:41 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333860 - head/sys/kern To: Michael Tuexen Cc: Gleb Smirnoff , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 May 2018 06:36:43 -0000 On Wed, May 23, 2018 at 11:35 PM, Michael Tuexen wrote: >> On 24. May 2018, at 06:51, Matthew Macy wrote: >> >> Warnings find bugs PERIOD. Although most are not useful, I've found > Some warnings indicate bugs, some warnings are just wrong. If you > have a "may be used uninitialized" warning being a false positive, you > may silences the warning by just set it to zero in the declaration and > you silence it. Other compilers might then correctly report an > assignment without affect... I have yet to see a double assignment be flagged as assignment without effect. If it _does_ occur then we have to disable the warning on the compiler that we have less faith in. -M > > Best regards > Michael >> quite a number of real issues from compiling with gcc8. >> >> If you want to _actually_ be helpful fix these: >> https://people.freebsd.org/~mmacy/gcc8logs/GENERIC-NODEBUG.log >> >> https://people.freebsd.org/~mmacy/gcc8logs/GENERIC.log >> >> On Wed, May 23, 2018 at 9:42 PM, Gleb Smirnoff wrote: >>> Let me repeat again. The warning is a false positive, and thus assignment >>> isn't useful. I'm not worried about a single instruction, more about >>> polluting the code. >>> >>> If the warning was escalated to build error, and we did carry about >>> building with gcc8, in this case the assignment should be added with >>> a comment /* pacify gcc */. >>> >>> On Wed, May 23, 2018 at 03:59:33PM -0700, Matthew Macy wrote: >>> M> On Wed, May 23, 2018 at 3:57 PM, Gleb Smirnoff wrote: >>> M> > The initialization isn't useful. >>> M> >>> M> It silences a gcc warning. So yes it is. It's this exchange which is not useful. >>> M> >>> M> -M >>> M> >>> M> >>> M> > On Wed, May 23, 2018 at 03:52:42PM -0700, Matthew Macy wrote: >>> M> > M> Talk to the gcc devs. The warning is useful even if there are false positives. >>> M> > M> >>> M> > M> On Wed, May 23, 2018 at 3:27 PM, Gleb Smirnoff wrote: >>> M> > M> > Hi, >>> M> > M> > >>> M> > M> > On Sat, May 19, 2018 at 05:10:52AM +0000, Matt Macy wrote: >>> M> > M> > M> Author: mmacy >>> M> > M> > M> Date: Sat May 19 05:10:51 2018 >>> M> > M> > M> New Revision: 333860 >>> M> > M> > M> URL: https://svnweb.freebsd.org/changeset/base/333860 >>> M> > M> > M> >>> M> > M> > M> Log: >>> M> > M> > M> sendfile: annotate unused value and ensure that npages is actually initialized >>> M> > M> > M> >>> M> > M> > M> Modified: >>> M> > M> > M> head/sys/kern/kern_sendfile.c >>> M> > M> > M> >>> M> > M> > M> Modified: head/sys/kern/kern_sendfile.c >>> M> > M> > M> ============================================================================== >>> M> > M> > M> --- head/sys/kern/kern_sendfile.c Sat May 19 05:09:10 2018 (r333859) >>> M> > M> > M> +++ head/sys/kern/kern_sendfile.c Sat May 19 05:10:51 2018 (r333860) >>> M> > M> > M> @@ -341,7 +341,7 @@ sendfile_swapin(vm_object_t obj, struct sf_io *sfio, o >>> M> > M> > M> } >>> M> > M> > M> >>> M> > M> > M> for (int i = 0; i < npages;) { >>> M> > M> > M> - int j, a, count, rv; >>> M> > M> > M> + int j, a, count, rv __unused; >>> M> > M> > M> >>> M> > M> > M> /* Skip valid pages. */ >>> M> > M> > M> if (vm_page_is_valid(pa[i], vmoff(i, off) & PAGE_MASK, >>> M> > M> > M> @@ -688,6 +688,7 @@ retry_space: >>> M> > M> > M> if (space == 0) { >>> M> > M> > M> sfio = NULL; >>> M> > M> > M> nios = 0; >>> M> > M> > M> + npages = 0; >>> M> > M> > M> goto prepend_header; >>> M> > M> > M> } >>> M> > M> > M> hdr_uio = NULL; >>> M> > M> > >>> M> > M> > This initialization is redundant and a compiler warning if exists is wrong. >>> M> > M> > >>> M> > M> > If we jump down to prepend_header with nios == 0, we won't ever use npages. >>> M> > M> > >>> M> > M> > -- >>> M> > M> > Gleb Smirnoff >>> M> > >>> M> > -- >>> M> > Gleb Smirnoff >>> >>> -- >>> Gleb Smirnoff >> >