aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-10-16 23:42:39 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-10-16 23:42:39 +0100
commitec2e0ad5ea14eba33a120ce38b2ae25b3c7b7996 (patch)
treeccec25b0ccab9c0b05c1ebdab9fd536b2784805b /libstdc++-v3
parent01982cfbe7e15384db6f9580bd9d05ea867b2adc (diff)
downloadgcc-ec2e0ad5ea14eba33a120ce38b2ae25b3c7b7996.zip
gcc-ec2e0ad5ea14eba33a120ce38b2ae25b3c7b7996.tar.gz
gcc-ec2e0ad5ea14eba33a120ce38b2ae25b3c7b7996.tar.bz2
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. From-SVN: r265218
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/include/bits/random.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index bfc9f73..57a35f0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2018-10-16 Jonathan Wakely <jwakely@redhat.com>
+ * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
+ Fix default constructor to call correct function.
+
* testsuite/experimental/net/internet/address/v4/creation.cc: Do not
declare ip in global namespace, to avoid collision with struct ip
defined in <netinet/ip.h>.
diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h
index 5e994aa..e02a185 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)