[PATCH] PR libstdc++/85494 use rdseed and rand_s in std::random_device

Jonathan Wakely jwakely@redhat.com
Fri May 31 10:35:00 GMT 2019


On 31/05/19 10:47 +0100, Jonathan Wakely wrote:
>On 31/05/19 10:46 +0100, Jonathan Wakely wrote:
>>On 31/05/19 09:26 +0000, Szabolcs Nagy wrote:
>>>On 29/05/2019 23:03, Jonathan Wakely wrote:
>>>>This fixes a test that started to fail in mingw.
>>>>
>>>>Tested x86_64-linux, powerpc64le-linux and x86_64-w64-ming32.
>>>>
>>>>Committed to trunk.
>>>
>>>note that the updated test fails on baremetal
>>>
>>>FAIL: 26_numerics/random/random_device/cons/token.cc execution test
>>>
>>>26_numerics/random/random_device/cons/token.cc:67: void test03(): Assertion 'count != 0' failed.
>>>
>>>(if i add "default" to the token list in test03 then it passes)
>>
>>Hmm, then I messed something up. If the "default" token works then one
>>of the others should too (I would expect that to be "mt19937" for bare
>>metal).
>>
>>I'll take a look, thanks.
>
>
>Doh:
>
>--- a/libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
>+++ b/libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
>@@ -51,7 +51,7 @@ test03()
>{
>  // At least one of these tokens should be valid.
>  const std::string tokens[] = {
>-    "rdseed", "rdrand", "rand_s", "/dev/urandom", "/dev/random", "mt19337"
>+    "rdseed", "rdrand", "rand_s", "/dev/urandom", "/dev/random", "mt19937"
>  };
>  int count = 0;
>  for (const std::string& token : tokens)


Here's what I've committed to fix the COW string failures and the
baremetal failure. Tested powerpc64le-linux and x86_64-linux, old and
new ABIs.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 8718 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20190531/43d3f684/attachment.bin>


More information about the Libstdc++ mailing list