1c4ff014fe
2014-07-29 Ed Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/60037 - SIGFPE in std::generate_canonical<unsigned int...> * include/bits/random.h (_Adaptor): static_assert for non floating-point result type. * include/bits/random.tcc (generate_canonical): Ditto. * include/ext/random.tcc (hypergeometric_distribution::operator()): Use double as a rng result type. * testsuite/26_numerics/random/pr60037-neg.cc: New. * testsuite/ext/random/hypergeometric_distribution/pr60037.cc: New. From-SVN: r213207
16 lines
484 B
C++
16 lines
484 B
C++
// { dg-do compile }
|
|
// { dg-options "-std=gnu++11" }
|
|
|
|
#include <random>
|
|
|
|
std::mt19937 urng;
|
|
|
|
std::__detail::_Adaptor<std::mt19937, unsigned long> aurng(urng);
|
|
|
|
auto x = std::generate_canonical<std::size_t,
|
|
std::numeric_limits<std::size_t>::digits>(urng);
|
|
|
|
// { dg-error "static assertion failed: template argument not a floating point type" "" { target *-*-* } 167 }
|
|
|
|
// { dg-error "static assertion failed: template argument not a floating point type" "" { target *-*-* } 3466 }
|