diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c6e63fb..f39060c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Version 155: * Fix memory leak in advanced server examples * Fix soft-mutex assert in websocket stream +* Fix fallthrough warnings -------------------------------------------------------------------------------- diff --git a/include/boost/beast/http/impl/serializer.ipp b/include/boost/beast/http/impl/serializer.ipp index 57b53a78..b3785656 100644 --- a/include/boost/beast/http/impl/serializer.ipp +++ b/include/boost/beast/http/impl/serializer.ipp @@ -216,6 +216,8 @@ next(error_code& ec, Visit&& visit) go_header_only_c: v_.template emplace<1>(fwr_->get()); s_ = do_header_only_c; + BOOST_FALLTHROUGH; + case do_header_only_c: do_visit<1>(ec, visit); break; diff --git a/include/boost/beast/websocket/detail/mask.hpp b/include/boost/beast/websocket/detail/mask.hpp index e071fbc7..6df37d58 100644 --- a/include/boost/beast/websocket/detail/mask.hpp +++ b/include/boost/beast/websocket/detail/mask.hpp @@ -186,12 +186,12 @@ mask_inplace_fast( std::uintptr_t>(p) & (sizeof(key)-1); switch(i) { - case 1: p[6] ^= static_cast(key >> 48); - case 2: p[5] ^= static_cast(key >> 40); - case 3: p[4] ^= static_cast(key >> 32); - case 4: p[3] ^= static_cast(key >> 24); - case 5: p[2] ^= static_cast(key >> 16); - case 6: p[1] ^= static_cast(key >> 8); + case 1: p[6] ^= static_cast(key >> 48); BOOST_FALLTHROUGH; + case 2: p[5] ^= static_cast(key >> 40); BOOST_FALLTHROUGH; + case 3: p[4] ^= static_cast(key >> 32); BOOST_FALLTHROUGH; + case 4: p[3] ^= static_cast(key >> 24); BOOST_FALLTHROUGH; + case 5: p[2] ^= static_cast(key >> 16); BOOST_FALLTHROUGH; + case 6: p[1] ^= static_cast(key >> 8); BOOST_FALLTHROUGH; case 7: p[0] ^= static_cast(key); { auto const d = static_cast< @@ -199,6 +199,7 @@ mask_inplace_fast( key = ror(key, 8*d); n -= d; p += d; + BOOST_FALLTHROUGH; } default: break; @@ -217,14 +218,15 @@ mask_inplace_fast( n &= sizeof(key)-1; switch(n) { - case 7: p[6] ^= static_cast(key >> 48); - case 6: p[5] ^= static_cast(key >> 40); - case 5: p[4] ^= static_cast(key >> 32); - case 4: p[3] ^= static_cast(key >> 24); - case 3: p[2] ^= static_cast(key >> 16); - case 2: p[1] ^= static_cast(key >> 8); + case 7: p[6] ^= static_cast(key >> 48); BOOST_FALLTHROUGH; + case 6: p[5] ^= static_cast(key >> 40); BOOST_FALLTHROUGH; + case 5: p[4] ^= static_cast(key >> 32); BOOST_FALLTHROUGH; + case 4: p[3] ^= static_cast(key >> 24); BOOST_FALLTHROUGH; + case 3: p[2] ^= static_cast(key >> 16); BOOST_FALLTHROUGH; + case 2: p[1] ^= static_cast(key >> 8); BOOST_FALLTHROUGH; case 1: p[0] ^= static_cast(key); key = ror(key, static_cast(8*n)); + BOOST_FALLTHROUGH; default: break; } diff --git a/include/boost/beast/websocket/impl/teardown.ipp b/include/boost/beast/websocket/impl/teardown.ipp index c8a552ed..d81c6064 100644 --- a/include/boost/beast/websocket/impl/teardown.ipp +++ b/include/boost/beast/websocket/impl/teardown.ipp @@ -110,7 +110,7 @@ operator()(error_code ec, std::size_t) break; case 2: - step_ = 3; + step_ = 3; BOOST_FALLTHROUGH; case 3: if(ec != boost::asio::error::would_block)