diff mbox series

Fix regression in std::random_device default constructor

Message ID 20181016224240.GA30128@redhat.com
State New
Headers show
Series Fix regression in std::random_device default constructor | expand

Commit Message

Jonathan Wakely Oct. 16, 2018, 10:42 p.m. UTC
When the default constructor was split out into a separate function (in
r261522) I accidentally  made it call _M_init("mt19937") instead of
_M_init_pretr1("mt19937"). That means it will always throw an exception,
because "mt19937" isn't a valid token accepted by the _M_init function.
Restore the original behaviour by calling _M_init_pretr1("mt19937").

	* include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
	Fix default constructor to call correct function.

Tested x86_64-w64-ming32, committed to trunk.
commit 17aac41d36d894e96b816ae97f5942871e65b254
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Oct 16 23:34:23 2018 +0100

    Fix regression in std::random_device default constructor
    
    When the default constructor was split out into a separate function (in
    r261522) I accidentally  made it call _M_init("mt19937") instead of
    _M_init_pretr1("mt19937"). That means it will always throw an exception,
    because "mt19937" isn't a valid token accepted by the _M_init function.
    Restore the original behaviour by calling _M_init_pretr1("mt19937").
    
            * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
            Fix default constructor to call correct function.
diff mbox series

Patch

diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h
index 5e994aa8836..e02a185e3f0 100644
--- a/libstdc++-v3/include/bits/random.h
+++ b/libstdc++-v3/include/bits/random.h
@@ -1611,7 +1611,7 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
     ~random_device()
     { _M_fini(); }
 #else
-    random_device() { _M_init("mt19937"); }
+    random_device() { _M_init_pretr1("mt19937"); }
 
     explicit
     random_device(const std::string& __token)