From a426a1939f2a0d8158b8c0ba9679b8e372cd941b Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 20 Sep 2022 14:52:19 +0300 Subject: [PATCH] Honor __FLOAT_WORD_ORDER__ for 128 bit long double --- include/boost/container_hash/hash.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/boost/container_hash/hash.hpp b/include/boost/container_hash/hash.hpp index c0cc089..533de16 100644 --- a/include/boost/container_hash/hash.hpp +++ b/include/boost/container_hash/hash.hpp @@ -298,9 +298,17 @@ namespace boost std::size_t seed = 0; +#if defined(__FLOAT_WORD_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__ + + seed = hash_value( w[1] ) + hash_detail::hash_mix( seed ); + seed = hash_value( w[0] ) + hash_detail::hash_mix( seed ); + +#else + seed = hash_value( w[0] ) + hash_detail::hash_mix( seed ); seed = hash_value( w[1] ) + hash_detail::hash_mix( seed ); +#endif return seed; } };