Add "-Wimplicit-fallthrough" to default flags (was Re: pgsql: Support FETCH FIRST WITH TIES)

Julien Rouhaud <rjuju123@gmail.com>

From: Julien Rouhaud <rjuju123@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2020-04-12T08:18:25Z
Lists: pgsql-hackers

Attachments

On Sat, Apr 11, 2020 at 02:47:34PM -0400, Tom Lane wrote:
> Julien Rouhaud <rjuju123@gmail.com> writes:
> > On Tue, Apr 7, 2020 at 10:28 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> >> Support FETCH FIRST WITH TIES
> 
> > FTR I now get the following when compiling with -Wimplicit-fallthrough -Werror:
> 
> Yeah, assorted buildfarm animals are mentioning that too.  I wonder
> if we should add that to the default warning options selected by
> configure?  I don't remember if that's been discussed before.
> 

I'm all for it.  It seems like a trap easy to catch up early, and we do want to
enforce it anyway.  I'm attaching a simple patch for that if needed, hopefully
with the correct autoconf version.

> > It seems that this fall-through comment:
> >                         /* fall-through */
> > Is not recognized by my compiler (gcc (Gentoo 9.3.0 p1) 9.3.0).    If
> > that's something we should fix, PFA a naive patch for that.
> 
> Hmm, I feel like this logic is baroque enough to need more of a rewrite
> than that :-(.  But not sure exactly what would be better, so your
> patch seems reasonable for now.  The comments could use some help too.

Yes I just checked the state machine to make sure that the fallthrough was
expected, but the comments are now way better, thanks!

Commits

  1. Dial back -Wimplicit-fallthrough to level 3

  2. Add -Wimplicit-fallthrough to CFLAGS and CXXFLAGS

  3. Suppress -Wimplicit-fallthrough warning in new LIMIT WITH TIES code.

  4. Support FETCH FIRST WITH TIES