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>