aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2017-05-24 20:27:28 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2017-05-24 20:27:28 +0100
commitb6784361760fc9d456b6deb8dcf8715b573bcb9e (patch)
tree95beafe26cca0c8bb49c273d0ede7a329b9b63b5
parent216bfadc5d4ef70af8010b420dc3318d45f3891f (diff)
downloadgcc-b6784361760fc9d456b6deb8dcf8715b573bcb9e.zip
gcc-b6784361760fc9d456b6deb8dcf8715b573bcb9e.tar.gz
gcc-b6784361760fc9d456b6deb8dcf8715b573bcb9e.tar.bz2
Use CHAR_BIT instead of assuming 8 bits
* src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__ instead of fixed number of bits. From-SVN: r248428
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/src/c++11/random.cc5
2 files changed, 8 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 24555d3..af0b472 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2017-05-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
+ instead of fixed number of bits.
+
2017-05-24 Andreas Schwab <schwab@suse.de>
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
diff --git a/libstdc++-v3/src/c++11/random.cc b/libstdc++-v3/src/c++11/random.cc
index 5011cf2..ef17223 100644
--- a/libstdc++-v3/src/c++11/random.cc
+++ b/libstdc++-v3/src/c++11/random.cc
@@ -187,8 +187,9 @@ namespace std _GLIBCXX_VISIBILITY(default)
if (ent < 0)
return 0.0;
- if (static_cast<unsigned>(ent) > sizeof(result_type) * 8)
- return static_cast<double>(sizeof(result_type) * 8);
+ const int max = sizeof(result_type) * __CHAR_BIT__;
+ if (ent > max)
+ ent = max;
return static_cast<double>(ent);
#else