gcc/libstdc++-v3/include
Jonathan Wakely c9ce332b55 libstdc++: Use 128-bit arithmetic for std::linear_congruential_engine [PR87744]
For 32-bit targets without __int128 we need to implement the LCG
transition function by hand using 64-bit types.

We can also slightly simplify the __mod function by using if-constexpr
unconditionally, disabling -Wc++17-extensions warnings with diagnostic
pragmas.

libstdc++-v3/ChangeLog:

	PR libstdc++/87744
	* include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
	Define specialization for 64-bit generators with
	non-power-of-two modulus and large constants.
	(__mod): Use if constexpr unconditionally.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.
	* testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
	New test.
2024-02-15 11:43:21 +00:00
..
backward Update copyright years. 2024-01-03 12:19:35 +01:00
bits libstdc++: Use 128-bit arithmetic for std::linear_congruential_engine [PR87744] 2024-02-15 11:43:21 +00:00
c Update copyright years. 2024-01-03 12:19:35 +01:00
c_compatibility Update copyright years. 2024-01-03 12:19:35 +01:00
c_global Update copyright years. 2024-01-03 12:19:35 +01:00
c_std Update copyright years. 2024-01-03 12:19:35 +01:00
debug libstdc++/debug: Fix constexpr _Safe_iterator in C++20 mode [PR109536] 2024-01-18 10:36:07 -05:00
decimal Update copyright years. 2024-01-03 12:19:35 +01:00
experimental libstdc++: Implement some missing functions for net::ip::network_v6 2024-02-02 10:27:16 +00:00
ext Update copyright years. 2024-01-03 12:19:35 +01:00
parallel Update copyright years. 2024-01-03 12:19:35 +01:00
precompiled libstdc++: Add <print> and <text_encoding> to stdc++.h 2024-01-19 10:21:47 -05:00
pstl libstdc++: Enable OpenMP 5.0 pragmas in PSTL headers 2023-07-04 00:05:53 +01:00
std libstdc++: Use _GLIBCXX_USE_BUILTIN_TRAIT for is_same 2024-02-09 10:11:47 -08:00
tr1 Update copyright years. 2024-01-03 12:19:35 +01:00
tr2 libstdc++: Guard tr2::bases and tr2::direct_bases with __has_builtin 2024-02-08 15:58:14 +00:00
Makefile.am libstdc++: Implement C++26 std::text_encoding (P1885R12) [PR113318] 2024-01-17 11:49:11 +00:00
Makefile.in libstdc++: Implement C++26 std::text_encoding (P1885R12) [PR113318] 2024-01-17 11:49:11 +00:00