Hi,

On 01/12/21 22:21, Thomas Goirand wrote:
Hi there!

When building Ceph (current version in Experimental), since a few days/weeks,
I get this:

In file included from /root/ceph/ceph/src/seastar/src/core/file.cc:28:
/usr/include/boost/container/detail/copy_move_algo.hpp: In function ‘typename 
boost::move_detail::enable_if_c<(boost::container::dtl::is_memtransfer_copy_assignable<F, 
G>::value && true), void>::type boost::container::deep_swap_alloc_n(A
llocator&, F, typename boost::container::allocator_traits<Allocator>::size_type, G, 
typename boost::container::allocator_traits<Allocator>::size_type)’:
/usr/include/boost/container/detail/copy_move_algo.hpp:1083:10: error: 
‘__fallthrough__’ was not declared in this scope; did you mean ‘fallthrough’?
  1083 |          BOOST_FALLTHROUGH;
       |          ^~~~~~~~~~~~~~~~~

Uhm, that's strange. For gcc that macro should resolve to __attribute__((fallthrough)), which should just work[1].

[1] https://sources.debian.org/src/boost1.74/1.74.0-13/libs/config/include/boost/config/compiler/gcc.hpp/#L323

I don't like the idea of using the new [[...]] syntax, because that would break all the code that is not compiling at least with C++17.

Could you try running that compilation command with g++ -E, so you can see what BOOST_FALLTHROUGH is actually begin replaced with?

Giovanni.
--
Giovanni Mascellani <g.mascell...@gmail.com>

Reply via email to