Hi there,

These two patches re-enable some build warnings in the Makefile. The first one
only enables those that did not trigger for me at all.

The second one re-enables -Wimplicit-fallthrough. I could not adjust all
places, because I was not sure whether they work as intended.

I've Cc't Willy (stream_interface, pattern) and William (cli), because they
where the ones that wrote the switch statements. I've also added Ilya, because
applying the second patch will most likely fail the Travis build.

I'd say that the one in 'pattern' is a bug and that the other two just need a
/* fall through */ comment.

See the build log below for what I'm seeing within a debian:sid Docker
container:

root@0292bc6019cc:/pwd# make -j4 all TARGET=linux-glibc USE_OPENSSL=1 USE_LUA=1 
USE_ZLIB=1 USE_PCRE2=1 USE_PCRE2_JIT=1 USE_GETADDRINFO=1 
  CC      src/ev_poll.o
  CC      src/ev_epoll.o
  CC      src/ssl_sample.o
  CC      src/ssl_sock.o
  CC      src/ssl_crtlist.o
  CC      src/ssl_ckch.o
  CC      src/ssl_utils.o
  CC      src/cfgparse-ssl.o
  CC      src/hlua.o
  CC      src/hlua_fcn.o
  CC      src/namespace.o
  CC      src/mux_h2.o
  CC      src/stream.o
  CC      src/mux_fcgi.o
  CC      src/cfgparse-listen.o
  CC      src/http_ana.o
  CC      src/stats.o
  CC      src/mux_h1.o
  CC      src/flt_spoe.o
  CC      src/server.o
  CC      src/cfgparse.o
  CC      src/checks.o
  CC      src/backend.o
  CC      src/log.o
  CC      src/peers.o
  CC      src/cli.o
src/cli.c: In function 'cli_io_handler_show_cli_sock':
src/cli.c:1200:16: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
 1200 |    appctx->st2 = STAT_ST_LIST;
      |    ~~~~~~~~~~~~^~~~~~~~~~~~~~
src/cli.c:1202:3: note: here
 1202 |   case STAT_ST_LIST:
      |   ^~~~
src/cli.c:1203:7: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
 1203 |    if (global.stats_fe) {
      |       ^
src/cli.c:1277:3: note: here
 1277 |   default:
      |   ^~~~~~~
  CC      src/haproxy.o
  CC      src/stick_table.o
  CC      src/standard.o
  CC      src/sample.o
  CC      src/proxy.o
  CC      src/stream_interface.o
src/stream_interface.c: In function 'stream_int_shutw':
src/stream_interface.c:238:13: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
  238 |   si->state = SI_ST_DIS;
      |   ~~~~~~~~~~^~~~~~~~~~~
src/stream_interface.c:239:2: note: here
  239 |  default:
      |  ^~~~~~~
src/stream_interface.c: In function 'stream_int_shutw_applet':
src/stream_interface.c:1673:13: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
 1673 |   si->state = SI_ST_DIS;
      |   ~~~~~~~~~~^~~~~~~~~~~
src/stream_interface.c:1674:2: note: here
 1674 |  default:
      |  ^~~~~~~
  CC      src/pattern.o
  CC      src/dns.o
src/pattern.c: In function 'pattern_exec_match':
src/pattern.c:2563:68: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
 2563 |       static_sample_data.u.str.area[static_sample_data.u.str.data] = 0;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
src/pattern.c:2564:6: note: here
 2564 |      case SMP_T_IPV4:
      |      ^~~~
src/pattern.c:2567:7: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
 2567 |       memcpy(&static_sample_data, pat->data, sizeof(struct 
sample_data));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/pattern.c:2568:6: note: here
 2568 |      default:
      |      ^~~~~~~
  CC      src/proto_tcp.o
  CC      src/listener.o
  CC      src/cfgparse-global.o
  CC      src/h1.o
  CC      src/http_rules.o
  CC      src/http_fetch.o
  CC      src/cache.o
  CC      src/session.o
  CC      src/fcgi-app.o
  CC      src/connection.o
  CC      src/tcp_rules.o
  CC      src/filters.o
  CC      src/task.o
  CC      src/mworker.o
  CC      src/map.o
  CC      src/h1_htx.o
  CC      src/trace.o
  CC      src/flt_trace.o
  CC      src/acl.o
  CC      src/http_htx.o
  CC      src/flt_http_comp.o
  CC      src/payload.o
  CC      src/vars.o
  CC      src/debug.o
  CC      src/mux_pt.o
  CC      src/http_act.o
  CC      src/h2.o
  CC      src/queue.o
  CC      src/fd.o
  CC      src/proto_uxst.o
  CC      src/lb_chash.o
  CC      src/ring.o
  CC      src/frontend.o
  CC      src/raw_sock.o
  CC      src/xprt_handshake.o
  CC      src/htx.o
  CC      src/memory.o
  CC      src/applet.o
  CC      src/channel.o
  CC      src/signal.o
  CC      src/lb_fwrr.o
  CC      src/ev_select.o
  CC      src/sink.o
  CC      src/http_conv.o
  CC      src/proto_sockpair.o
  CC      src/mworker-prog.o
  CC      src/activity.o
  CC      src/lb_fwlc.o
  CC      src/http.o
  CC      src/lb_fas.o
  CC      src/uri_auth.o
  CC      src/hathreads.o
  CC      src/regex.o
  CC      src/auth.o
  CC      src/buffer.o
  CC      src/compression.o
  CC      src/proto_udp.o
  CC      src/lb_map.o
  CC      src/chunk.o
  CC      src/wdt.o
  CC      src/hpack-dec.o
  CC      src/action.o
  CC      src/xxhash.o
  CC      src/pipe.o
  CC      src/shctx.o
  CC      src/hpack-tbl.o
  CC      src/http_acl.o
  CC      src/sha1.o
  CC      src/time.o
  CC      src/hpack-enc.o
  CC      src/fcgi.o
  CC      src/arg.o
  CC      src/base64.o
  CC      src/protocol.o
  CC      src/freq_ctr.o
  CC      src/lru.o
  CC      src/hpack-huff.o
  CC      src/dict.o
  CC      src/hash.o
  CC      src/mailers.o
  CC      src/version.o
  CC      ebtree/ebtree.o
  CC      ebtree/eb32sctree.o
  CC      ebtree/eb32tree.o
  CC      ebtree/eb64tree.o
  CC      ebtree/ebmbtree.o
  CC      ebtree/ebsttree.o
  CC      ebtree/ebimtree.o
  CC      ebtree/ebistree.o
  LD      haproxy

Tim Düsterhus (2):
  BUILD: Remove nowarn for warnings that do not trigger
  BUILD: Re-enable -Wimplicit-fallthrough

 Makefile     | 3 ---
 src/acl.c    | 2 ++
 src/checks.c | 4 ++--
 src/hlua.c   | 2 ++
 src/peers.c  | 8 ++++----
 5 files changed, 10 insertions(+), 9 deletions(-)

-- 
2.26.2


Reply via email to