Fix -Werror=implicit-fallthrough (fixes gcc-7)

Fixes: #447
This commit is contained in:
Azat Khuzhin 2017-01-29 17:23:14 +03:00
parent e7ff4ef2b4
commit 94e7dcebc3
4 changed files with 18 additions and 3 deletions

View File

@ -612,9 +612,12 @@ be_filter_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op op,
bevf->underlying->be_ops->ctrl) {
return (bevf->underlying->be_ops->ctrl)(bevf->underlying, op, data);
}
EVUTIL_FALLTHROUGH;
case BEV_CTRL_GET_FD:
EVUTIL_FALLTHROUGH;
case BEV_CTRL_CANCEL_ALL:
EVUTIL_FALLTHROUGH;
default:
return -1;
}

View File

@ -2265,10 +2265,11 @@ evdns_request_transmit(struct request *req) {
nameserver_write_waiting(req->ns, 1);
return 1;
case 2:
/* failed to transmit the request entirely. */
/* failed to transmit the request entirely. we can fallthrough since
* we'll set a timeout, which will time out, and make us retransmit the
* request anyway. */
retcode = 1;
/* fall through: we'll set a timeout, which will time out,
* and make us retransmit the request anyway. */
EVUTIL_FALLTHROUGH;
default:
/* all ok */
log(EVDNS_LOG_DEBUG,

View File

@ -2960,6 +2960,7 @@ event_callback_activate_nolock_(struct event_base *base,
switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
default:
EVUTIL_ASSERT(0);
EVUTIL_FALLTHROUGH;
case EVLIST_ACTIVE_LATER:
event_queue_remove_active_later(base, evcb);
r = 0;

View File

@ -50,6 +50,10 @@
extern "C" {
#endif
#if !defined(__has_attribute)
#define __has_attribute(x) 0
#endif
/* If we need magic to say "inline", get it for free internally. */
#ifdef EVENT__inline
#define inline EVENT__inline
@ -308,6 +312,12 @@ ev_int32_t evutil_weakrand_range_(struct evutil_weakrand_state *seed, ev_int32_t
#define EVUTIL_UNLIKELY(p) (p)
#endif
#if __has_attribute(fallthrough)
#define EVUTIL_FALLTHROUGH __attribute__((fallthrough))
#else
#define EVUTIL_FALLTHROUGH /* fallthrough */
#endif
/* Replacement for assert() that calls event_errx on failure. */
#ifdef NDEBUG
#define EVUTIL_ASSERT(cond) EVUTIL_NIL_CONDITION_(cond)