gcc/libstdc++-v3
Jonathan Wakely 5a7960da41 PR libstdc++/85749 constrain seed sequences for random number engines
Constrain constructors and member functions of random number engines so
that functions taking seed sequences can only be called with types that
meet the seed sequence requirements.

	PR libstdc++/85749
	* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
	(linear_congruential_engine, mersenne_twister_engine)
	(subtract_with_carry_engine, discard_block_engine)
	(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
	constrain function templates taking seed sequences.
	* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
	(mersenne_twister_engine::seed(_Sseq&))
	(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
	match declarations.
	* include/ext/random (simd_fast_mersenne_twister_engine): Use
	__is_seed_seq to constrain function templates taking seed sequences.
	* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
	Change return type to match declaration.
	* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
	New.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
	New.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	seed_seq2.cc: New.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	seed_seq2.cc: New.

From-SVN: r260263
2018-05-15 16:36:46 +01:00
..
config PR libstdc++/83834 replace wildcard pattern in linker script 2018-01-16 12:43:08 +00:00
doc Document Dual ABI for std::ios_base::failure 2018-05-10 20:13:42 +01:00
include PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
libsupc++ Update copyright years. 2018-01-03 11:03:58 +01:00
po Update copyright years. 2018-01-03 11:03:58 +01:00
python printers.py (build_libstdcxx_dictionary): Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers registration. 2018-03-09 05:56:07 +00:00
scripts Update copyright years. 2018-01-03 11:03:58 +01:00
src safe_iterator.h (_Safe_iterator<>::_M_constant()): Rename in... 2018-05-09 20:04:46 +00:00
testsuite PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
acinclude.m4 PR libstdc++/84654 Disable __float128 specializations for -mno-float128 2018-05-01 23:47:33 +01:00
aclocal.m4 Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts] 2017-01-06 14:33:47 +00:00
ChangeLog PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015 Update copyright years. 2016-01-04 15:30:50 +01:00
ChangeLog-2016 Update copyright years. 2017-01-01 13:07:43 +01:00
ChangeLog-2017 Update copyright years. 2018-01-03 11:03:58 +01:00
config.h.in PR libstdc++/84654 Disable __float128 specializations for -mno-float128 2018-05-01 23:47:33 +01:00
configure PR libstdc++/84654 Disable __float128 specializations for -mno-float128 2018-05-01 23:47:33 +01:00
configure.ac PR libstdc++/81797 Add .NOTPARALLEL to include/Makefile for darwin 2018-02-15 20:56:41 +00:00
configure.host Separate Solaris/SPARC and x86 baselines 2017-02-02 16:24:03 +00:00
crossconfig.m4 PR libstdc++/84773 use aligned alloc functions for FreeBSD and MinGW cross-compilers 2018-03-12 22:52:16 +00:00
fragment.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
linkage.m4
Makefile.am Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.in Enable building libstdc++-v3 with Intel CET 2017-11-17 22:28:10 +01:00
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.