This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 23/05/17 17:15 +0100, Jonathan Wakely wrote:
On 22/05/17 22:28 +0800, Xi Ruoyao wrote:The new patch is attached. Just merged the patches you sent and fixed the ChangeLog of gnu.ver and testsuite_abi.cc. (For fun: I had mistakenly attached the Vim .swp file of the patch and almost sent it. :-p)Ha, that *definitely* wouldnt' have applied, but I think I'd have noticed the reason sooner ;-) I've committed the patch now - thanks.@@ -334,6 +335,7 @@ compatible. <listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem> <listitem><para>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</para></listitem> <listitem><para>GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11</para></listitem> + <listitem><para>GCC 8.0.0: GLIBCXX_3.4.24, CXXABI_1.3.10</para></listitem>Oops, this should have been CXXABI_1.3.11, I fixed that before committing it.+ if (static_cast<unsigned>(ent) > sizeof(result_type) * 8) + return static_cast<double>(sizeof(result_type) * 8);After committing it I realised this should use __CHAR_BIT__ instead of hardcoding 8, which I'll fix shortly.
Fixed with this patch. Tested powerpc64le-linux, committed to trunk.
commit 26e91f1858aa054c28b521d86065966df4ba7099 Author: Jonathan Wakely <jwakely@redhat.com> Date: Wed May 24 17:41:34 2017 +0100 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. 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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |