Tested x86_64-linux, pushed to trunk. -- >8 --
This test uses std::log2 without including <cmath>, but it doesn't need to use it at all. Just get the number of digits from numeric_limits instead. libstdc++-v3/ChangeLog: * testsuite/26_numerics/random/random_device/entropy.cc: Use numeric_limits<unsigned>::digits. --- .../testsuite/26_numerics/random/random_device/entropy.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc b/libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc index 63b7043bf9b..9f529f5d814 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc @@ -1,6 +1,7 @@ // { dg-do run { target c++11 } } #include <random> +#include <limits> #include <testsuite_hooks.h> #include <testsuite_random.h> @@ -12,7 +13,7 @@ test01() VERIFY( std::random_device(token).entropy() == 0.0 ); using result_type = std::random_device::result_type; - const double max = std::log2(std::numeric_limits<result_type>::max() + 1.0); + const double max = std::numeric_limits<result_type>::digits; for (auto token : { "/dev/random", "/dev/urandom" }) if (__gnu_test::random_device_available(token)) -- 2.34.3