https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124540
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
/home/jwakely/src/gcc/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc:101:
void test01(RNG&, RNG&, int&) [with T = long double; RNG =
std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615,
11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]: Assertion
'false' failed.
We should probably just disable the long double tests for double-double,
something like this:
---
a/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
+++
b/libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
@@ -201,11 +201,13 @@ test00()
VERIFY(skips == 0);
}
{ // long double
+#if __LDBL_MANT_DIG__ != 106
int skips{};
auto rng2{rng};
auto rng3{rng};
test01<long double>(rng2, rng3, skips);
VERIFY(skips == 0);
+#endif
}
#ifndef _GLIBCXX_GENERATE_CANONICAL_STRICT
# ifdef __SIZEOF_FLOAT128__