gcc/libstdc++-v3
Jonathan Wakely f468786919 PR libstdc++/80316 make promise::set_value throw no_state error
Backport from mainline
2017-04-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/80316
	* include/std/future (_State_baseV2::_Setter::operator()): Remove
	_S_check calls that are done after the pointer to the shared state is
	already dereferenced.
	(_State_baseV2::_Setter<_Res, void>): Define specialization for void
	as partial specialization so it can be defined within the definition
	of _State_baseV2.
	(_State_baseV2::__setter): Call _S_check.
	(_State_baseV2::__setter(promise<void>*)): Add overload for use by
	promise<void>::set_value and promise<void>::set_value_at_thread_exit.
	(promise<T>, promise<T&>, promise<void>): Make _State a friend.
	(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
	(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
	Use new __setter overload.
	* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
	* testsuite/30_threads/promise/members/set_exception.cc: Test
	promise<T&> and promise<void> specializations.
	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
	Test for no_state error condition.
	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.

From-SVN: r250126
2017-07-11 12:52:14 +01:00
..
config baseline_symbols.txt: Update. 2017-06-21 17:17:28 +02:00
doc Backport libstdc++ doc improvements from mainline 2017-06-16 13:19:54 +01:00
include PR libstdc++/80316 make promise::set_value throw no_state error 2017-07-11 12:52:14 +01:00
libsupc++ * libsupc++/new: Update comment on #endif directive. 2017-04-19 16:18:24 +01:00
po re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
python Adjust optional's pretty printer for LWG 2900. 2017-03-29 15:05:50 +03:00
scripts Update copyright years. 2017-01-01 13:07:43 +01:00
src Fix alignment bugs in std::codecvt_utf16 2017-03-17 19:28:05 +00:00
testsuite PR libstdc++/80316 make promise::set_value throw no_state error 2017-07-11 12:52:14 +01:00
acinclude.m4 PR libstdc++/81092 add std::wstring symbols and bump library version 2017-06-16 13:18:53 +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++/80316 make promise::set_value throw no_state error 2017-07-11 12:52:14 +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-2013: Correct an old entry. 2014-05-26 23:49:19 +02:00
ChangeLog-2014 Rotate libstdc++-v3/ChangeLog 2015-01-02 16:50:36 +00:00
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
config.h.in Fix typo in config.h.in comment 2017-03-15 15:23:44 +00:00
configure PR libstdc++/81092 Regenerate configure for libtool_VERSION change 2017-06-21 09:55:52 +01:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.host Separate Solaris/SPARC and x86 baselines 2017-02-02 16:24:03 +00:00
crossconfig.m4 crossconfig.m4: Add fuchsia OS. 2017-01-17 23:36:12 +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. 2017-01-01 13:07:43 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +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.