Re: Add "-Wimplicit-fallthrough" to default flags

Поиск
Список
Период
Сортировка
От Andy Fan
Тема Re: Add "-Wimplicit-fallthrough" to default flags
Дата
Msg-id CAKU4AWopttFQzHFcz+aZk_2EOVMGa_-12j7RsakHHLJ5bRZdaQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Add "-Wimplicit-fallthrough" to default flags  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Ответы Re: Add "-Wimplicit-fallthrough" to default flags  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Re: Add "-Wimplicit-fallthrough" to default flags  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers


On Wed, May 13, 2020 at 4:13 PM Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote:
At Tue, 12 May 2020 17:12:51 -0400, Tom Lane <tgl@sss.pgh.pa.us> wrote in
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > Fixed one straggler in contrib, and while testing it I realized why
> > ccache doesn't pay attention to the changes I was doing in the file:
> > ccache compares the *preprocessed* version of the file and only if that
> > differs from the version that was cached last, ccache sends the new one
> > to the compiler; and of course these comments are not present in the
> > preprocessed version, so changing only the comment accomplishes nothing.
> > You have to touch one byte outside of any comments.
>
> Ugh.  So the only way ccache could avoid this is to drop the
> preprocessed-file comparison check if -Wimplicit-fallthrough is on.
> Doesn't really sound like something we'd want to ask them to do.
>
> > I bet this is going to bite someone ... maybe we'd be better off going
> > all the way to -Wimplicit-fallthrough=5 and use the
> > __attribute__((fallthrough)) stuff instead.
>
> I'm not really in favor of the __attribute__ solution --- seems too
> gcc-specific.  FALLTHROUGH-type comments are understood by other
> sorts of tools besides gcc.
>
> In practice, it doesn't seem like this'll be a huge problem once
> we're past the initial fixup stage.  We can revisit it later if
> that prediction proves wrong, of course.

FWIW, I got a warning for jsonpath_gram.c.

> jsonpath_gram.c:1026:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
>              if (*++yyp != '\\')
>                 ^
> jsonpath_gram.c:1029:11: note: here
>            default:
>            ^~~~~~~

jsonpath_gram.c:1025
>           case '\\':
>             if (*++yyp != '\\')
>               goto do_not_strip_quotes;
>             /* Fall through.  */
>           default:

It is generated code by bison.

$ bison --version
bison (GNU Bison) 3.0.4


I just found this just serval minutes ago.  Upgrading your bison to the latest 
version (3.6) is ok. I'd like we have a better way to share this knowledge through.
I spend ~30 minutes to troubleshooting this issue. 

Best Regards
Andy Fan

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: Add "-Wimplicit-fallthrough" to default flags
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: SLRU statistics