From 5a811f25aacf5ec8126858f4ff4715fa17f0ed0b Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 5 Oct 2016 09:42:18 +0100 Subject: [PATCH 1/5] Add -Wsign-conversion to flags --- test/Jamfile.v2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ca4903b..928859f 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -10,9 +10,9 @@ project hash-tests all intel:on #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" + gcc:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wsign-conversion -Wconversion -Wfloat-equal -Wshadow" + darwin:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wsign-conversion -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 From c2764e22a71b34db0690f1c78d6f4889f7b6beb0 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 5 Oct 2016 09:49:27 +0100 Subject: [PATCH 2/5] Another signed conversion warning --- include/boost/functional/hash/hash.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 0a8ceeb..8590833 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -168,7 +168,7 @@ 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; @@ -189,7 +189,7 @@ 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; From 618fc6d074f6e2800aa3d846e6131b27d4cd9a85 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 5 Oct 2016 13:33:31 +0100 Subject: [PATCH 3/5] Remove -Wsign-conversion, old gcc doesn't support it. --- test/Jamfile.v2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 928859f..1da2da8 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -10,8 +10,8 @@ project hash-tests all intel:on #intel:-strict-ansi - gcc:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wsign-conversion -Wconversion -Wfloat-equal -Wshadow" - darwin:"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wsign-conversion -Wconversion -Wfloat-equal -Wshadow" + 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 -Wsign-conversion -Wconversion -Wfloat-equal -Wshadow" #msvc:on #gcc:on From 36545f62cf5ec067163789f3a98b91622f6dd672 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Tue, 11 Oct 2016 10:07:11 +0100 Subject: [PATCH 4/5] Try to avoid more warnings --- include/boost/functional/hash/hash.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 8590833..2e21091 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -171,7 +171,7 @@ namespace boost 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; @@ -192,7 +192,7 @@ namespace boost 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; From e2d7225f5717ad4b913a1cb1b0f751a4daa07a40 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Fri, 14 Oct 2016 09:24:13 +0100 Subject: [PATCH 5/5] Document warning fixes in 1.63.0 --- doc/changes.qbk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/changes.qbk b/doc/changes.qbk index f7ab411..ba870de 100644 --- a/doc/changes.qbk +++ b/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]