From 7027e8aab353adb10d21423ab59e292154400880 Mon Sep 17 00:00:00 2001 From: Eric Frias Date: Sun, 14 Jun 2015 18:53:25 -0400 Subject: [PATCH] Remove (direct) call to compiler intrinsic that had different behavior from portable code path #46 --- .../chain/include/graphene/chain/witness_scheduler_rng.hpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libraries/chain/include/graphene/chain/witness_scheduler_rng.hpp b/libraries/chain/include/graphene/chain/witness_scheduler_rng.hpp index 51e5f952..4c3e0509 100644 --- a/libraries/chain/include/graphene/chain/witness_scheduler_rng.hpp +++ b/libraries/chain/include/graphene/chain/witness_scheduler_rng.hpp @@ -86,11 +86,7 @@ class hash_ctr_rng { if( bound <= 1 ) return 0; -#ifdef __GNUC__ - uint8_t bitcount( 64 - __builtin_clzll( bound ) ); -#else - uint8_t bitcount( 64 - boost::multiprecision::detail::find_msb( bound ) ); -#endif + uint8_t bitcount = boost::multiprecision::detail::find_msb( bound ) + 1; // probability of loop exiting is >= 1/2, so probability of // running N times is bounded above by (1/2)^N