Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2020 15:54:28 +0200
From:      Joerg Sonnenberger <joerg@bec.de>
To:        svn-src-all@freebsd.org
Subject:   Re: svn commit: r362333 - in head: contrib/flex contrib/flex/src usr.bin/lex usr.bin/lex/lib
Message-ID:  <20200624135428.GA18022@bec.de>
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 12:09:03PM +0200, Dimitry Andric 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.

The warning is correct if you have a C++-aware string.h. It will provide
two overloads for strrchr, which return the constness of the argument.
So if you give it a const char *, it returns a const char *; if you give
it a char *, it returns a char *.

Joerg



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200624135428.GA18022>