Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2020 08:12:27 -0500
From:      Kyle Evans <kevans@freebsd.org>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        Jung-uk Kim <jkim@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r362333 - in head: contrib/flex contrib/flex/src usr.bin/lex usr.bin/lex/lib
Message-ID:  <CACNAnaGVyF=Tsm8zmZsShZAN3=muOwZ9MVMZf=42Zd4UEJRwTw@mail.gmail.com>
In-Reply-To: <2FBF81D0-9EA3-4F46-9E3E-7EDE852962C1@FreeBSD.org>
References:  <202006181809.05II9G8p054025@repo.freebsd.org> <CACNAnaG4AsyQhXDW%2BOBOs7iC13_8n5FaqRRg3YZk57Sow0SBcA@mail.gmail.com> <2FBF81D0-9EA3-4F46-9E3E-7EDE852962C1@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 24, 2020 at 5:09 AM Dimitry Andric <dim@freebsd.org> wrote:
>
> On 24 Jun 2020, at 02:41, Kyle Evans <kevans@FreeBSD.org> wrote:
> >
> > On Thu, Jun 18, 2020 at 1:09 PM Jung-uk Kim <jkim@freebsd.org> wrote:
> >>
> >> Author: jkim
> >> Date: Thu Jun 18 18:09:16 2020
> >> New Revision: 362333
> >> URL: https://svnweb.freebsd.org/changeset/base/362333
> >>
> >> Log:
> >>  MFV:  r362286
> >>
> >>  Merge flex 2.6.4.
> >>
> >
> > Hi,
> >
> > I'm looking at getting amd64 world buildable again by gcc6; this seems
> > to give it some gas:
> >
> > /usr/src/contrib/flex/src/main.c: In function 'check_options':
> > /usr/src/contrib/flex/src/main.c:347:14: error: assignment discards
> > 'const' qualifier from pointer target type
> > [-Werror=discarded-qualifiers]
> >   if ((slash = strrchr(M4, '/')) != NULL) {
> >
> > The following trivial patch seems to make gcc6 happy again.
>
> This is a strange one. As gcc6 has been removed from ports, I had to
> resort to an older 12-STABLE box which still had it, but no matter what
> I try, I cannot get the warning that is being produced by the CI system.
> What does it do differently?
>
> Also, the warning is indeed bogus, as strrchr() returns a non-const char
> pointer. As I can't reproduce it, I also can't verify which gcc version
> fixes the bogus warning.
>

It's bogus, but it's also not-even-wrong given that strrchr doesn't do
anything to make it actually safe to mutate *strrchr() in a scenario
like this where the input is apparently a string literal. I consider
it an anti-footgun measure to make sure we've constified slash here.

Thanks,

Kyle Evans



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaGVyF=Tsm8zmZsShZAN3=muOwZ9MVMZf=42Zd4UEJRwTw>