diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2017-05-24 20:27:28 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2017-05-24 20:27:28 +0100 |
commit | b6784361760fc9d456b6deb8dcf8715b573bcb9e (patch) | |
tree | 95beafe26cca0c8bb49c273d0ede7a329b9b63b5 | |
parent | 216bfadc5d4ef70af8010b420dc3318d45f3891f (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/src/c++11/random.cc | 5 |
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 |