diff options
author | John Salmon <john.salmon@deshaw.com> | 2011-09-24 18:28:36 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-09-24 18:28:36 +0000 |
commit | 9d1f3ce6ff16e0bba5e811bc66d0c7e4c7056f0f (patch) | |
tree | f1d692b56a9517a3135be1d8fbc044d249aff1e6 | |
parent | a271590a43eb22cee96e2c5c3b7a11816502033f (diff) | |
download | gcc-9d1f3ce6ff16e0bba5e811bc66d0c7e4c7056f0f.zip gcc-9d1f3ce6ff16e0bba5e811bc66d0c7e4c7056f0f.tar.gz gcc-9d1f3ce6ff16e0bba5e811bc66d0c7e4c7056f0f.tar.bz2 |
re PR libstdc++/50509 ([C++0x] incorrect code in std::seed_seq::generate)
2011-09-24 John Salmon <john.salmon@deshaw.com>
PR libstdc++/50509
* include/bits/random.tcc (seed_seq::generate): Fix computation.
From-SVN: r179144
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/random.tcc | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b0b433e..67643de 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-09-24 John Salmon <john.salmon@deshaw.com> + + PR libstdc++/50509 + * include/bits/random.tcc (seed_seq::generate): Fix computation. + 2011-09-21 Benjamin Kosnik <bkoz@redhat.com * doc/Makefile.am (stamp-epub-docbook): Fix image directory location. diff --git a/libstdc++-v3/include/bits/random.tcc b/libstdc++-v3/include/bits/random.tcc index 01ee582..d35f2f4 100644 --- a/libstdc++-v3/include/bits/random.tcc +++ b/libstdc++-v3/include/bits/random.tcc @@ -2768,7 +2768,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Type __arg = (__begin[__k % __n] ^ __begin[(__k + __p) % __n] ^ __begin[(__k - 1) % __n]); - _Type __r1 = __arg ^ (__arg << 27); + _Type __r1 = __arg ^ (__arg >> 27); __r1 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1664525u, 0u>(__r1); _Type __r2 = __r1; @@ -2790,7 +2790,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Type __arg = (__begin[__k % __n] + __begin[(__k + __p) % __n] + __begin[(__k - 1) % __n]); - _Type __r3 = __arg ^ (__arg << 27); + _Type __r3 = __arg ^ (__arg >> 27); __r3 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value, 1566083941u, 0u>(__r3); _Type __r4 = __r3 - __k % __n; |