On Wed, Jun 24, 2020 at 5:09 AM Dimitry Andric <d...@freebsd.org> wrote:
>
> On 24 Jun 2020, at 02:41, Kyle Evans <kev...@freebsd.org> wrote:
> >
> > On Thu, Jun 18, 2020 at 1:09 PM Jung-uk Kim <j...@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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to