diff --git a/hash/doc/changes.qbk b/hash/doc/changes.qbk index f7ab411..ba870de 100644 --- a/hash/doc/changes.qbk +++ b/hash/doc/changes.qbk @@ -179,4 +179,8 @@ * Fixed strict aliasing violation ([@https://github.com/boostorg/functional/pull/3 GitHub #3]). +[h2 Boost 1.63.0] + +* Fixed some warnings. + [endsect] diff --git a/hash/test/Jamfile.v2 b/hash/test/Jamfile.v2 index ca4903b..1da2da8 100644 --- a/hash/test/Jamfile.v2 +++ b/hash/test/Jamfile.v2 @@ -12,7 +12,7 @@ project hash-tests #intel:-strict-ansi gcc:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion -Wfloat-equal -Wshadow" darwin:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion -Wfloat-equal -Wshadow" - clang:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion -Wfloat-equal -Wshadow" + clang:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wsign-conversion -Wconversion -Wfloat-equal -Wshadow" #msvc:on #gcc:on #darwin:on diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 0a8ceeb..2e21091 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -168,10 +168,10 @@ namespace boost template inline std::size_t hash_value_signed(T val) { - const int size_t_bits = std::numeric_limits::digits; + const unsigned int size_t_bits = std::numeric_limits::digits; // ceiling(std::numeric_limits::digits / size_t_bits) - 1 const int length = (std::numeric_limits::digits - 1) - / size_t_bits; + / static_cast(size_t_bits); std::size_t seed = 0; T positive = val < 0 ? -1 - val : val; @@ -189,10 +189,10 @@ namespace boost template inline std::size_t hash_value_unsigned(T val) { - const int size_t_bits = std::numeric_limits::digits; + const unsigned int size_t_bits = std::numeric_limits::digits; // ceiling(std::numeric_limits::digits / size_t_bits) - 1 const int length = (std::numeric_limits::digits - 1) - / size_t_bits; + / static_cast(size_t_bits); std::size_t seed = 0; @@ -236,7 +236,7 @@ namespace boost inline void hash_combine_impl(boost::uint64_t& h, boost::uint64_t k) { - const uint64_t m = UINT64_C(0xc6a4a7935bd1e995); + const boost::uint64_t m = UINT64_C(0xc6a4a7935bd1e995); const int r = 47; k *= m;