Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jun 2020 21:49:16 -0400
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        Kyle Evans <kevans@freebsd.org>
Cc:        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:  <9371c80b-1038-489b-6998-feb5013d6257@FreeBSD.org>
In-Reply-To: <CACNAnaF5MdORni5m2R7Dxn4VqQZLBxpXJzvDnG_PVc%2BNEqkbVw@mail.gmail.com>
References:  <202006181809.05II9G8p054025@repo.freebsd.org> <CACNAnaG4AsyQhXDW%2BOBOs7iC13_8n5FaqRRg3YZk57Sow0SBcA@mail.gmail.com> <a8f2b5c1-daed-57bf-d0a8-a9d117673d13@FreeBSD.org> <CACNAnaF5MdORni5m2R7Dxn4VqQZLBxpXJzvDnG_PVc%2BNEqkbVw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 20. 6. 23., Kyle Evans wrote:
> On Tue, Jun 23, 2020 at 8:07 PM Jung-uk Kim <jkim@freebsd.org> wrote:
>>
>> On 20. 6. 23., Kyle Evans 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.
>>>
>>> diff --git a/contrib/flex/src/main.c b/contrib/flex/src/main.c
>>> index 711e387b1b5..97e043c6275 100644
>>> --- a/contrib/flex/src/main.c
>>> +++ b/contrib/flex/src/main.c
>>> @@ -342,7 +342,7 @@ void check_options (void)
>>>      /* Setup the filter chain. */
>>>      output_chain = filter_create_int(NULL, filter_tee_header, headerfilename);
>>>      if ( !(m4 = getenv("M4"))) {
>>> -           char *slash;
>>> +           const char *slash;
>>>                 m4 = M4;
>>>                 if ((slash = strrchr(M4, '/')) != NULL) {
>>>                         m4 = slash+1;
>>
>> Hmm...  It looks like a false positive and I am little reluctant to
>> change the vendor code.
>>
>> Can you just add "-Wno-discarded-qualifiers" or something to
>> CWARNFLAGS.gcc in share/mk/bsd.sys.mk for some WARNS level?
>>
> 
> Do we not have a working relationship with an upstream on this one to
> sort it out?

Not really.  You may file an issue or a pull request but I don't see
much activity from the author recently.

https://github.com/westes/flex

Jung-uk Kim

> It's debatably correct; M4 is effectively a const string (string
> literal, as far as I can tell) and strrchr promises a little more than
> it should because we really shouldn't mutate the result in that kind
> of scenario. In this case, the result isn't mutated, but it certainly
> looks like it could be with the current declaration of slash.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9371c80b-1038-489b-6998-feb5013d6257>