diff --git a/include/boost/unordered/detail/foa.hpp b/include/boost/unordered/detail/foa.hpp index 1bee7e9d..29af58bf 100644 --- a/include/boost/unordered/detail/foa.hpp +++ b/include/boost/unordered/detail/foa.hpp @@ -187,7 +187,11 @@ struct group15 inline void mark_overflow(std::size_t hash) { +#if BOOST_WORKAROUND(BOOST_GCC, >= 50000 && BOOST_GCC < 60000) + overflow() = static_cast( overflow() | static_cast(1<<(hash%8)) ); +#else overflow()|=static_cast(1<<(hash%8)); +#endif } static inline bool maybe_caused_overflow(unsigned char* pc)