diff options
author | Giovanni Bajo <rasky@develer.com> | 2024-07-31 20:03:40 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2024-08-23 13:39:35 +0100 |
commit | 125bab23ad75449333983c9389898c5b92b3aa0d (patch) | |
tree | 8e23627fde174edc91c061007fa870c0d8dc9dd0 /.gitignore | |
parent | de1923f9f4d5344694c22ca883aeb15caf635734 (diff) | |
download | gcc-125bab23ad75449333983c9389898c5b92b3aa0d.zip gcc-125bab23ad75449333983c9389898c5b92b3aa0d.tar.gz gcc-125bab23ad75449333983c9389898c5b92b3aa0d.tar.bz2 |
libstdc++: Fix std::random_shuffle for low RAND_MAX [PR88935]
When RAND_MAX is small and the number of elements being shuffled is
close to it, we get very uneven distributions in std::random_shuffle.
This uses a simple xorshift generator seeded by std::rand if we can't
rely on std::rand itself.
libstdc++-v3/ChangeLog:
PR libstdc++/88935
* include/bits/stl_algo.h (random_shuffle) [RAND_MAX < INT_MAX]:
Use xorshift instead of rand().
* testsuite/25_algorithms/random_shuffle/88935.cc: New test.
Co-authored-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Giovanni Bajo <rasky@develer.com>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions