Commit Graph

7218 Commits

Author SHA1 Message Date
Jonathan Wakely 2f1e8e7c47 Enable lightweight checks with _GLIBCXX_ASSERTIONS.
* doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document.
	* doc/html/manual/using_macros.html: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_ASSERTIONS when
	_GLIBCXX_DEBUG is defined. Disable std::string extern templates when
	(_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on
	_GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG.
	* include/debug/debug.h [!_GLIBCXX_DEBUG]: Define
	__glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty.
	* include/backward/auto_ptr.h (auto_ptr::operator*,
	auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with
	__glibcxx_assert.
	* include/bits/basic_string.h (basic_string::operator[],
	basic_string::front, basic_string::back, basic_string::pop_back):
	Likewise.
	* include/bits/random.h
	(uniform_int_distribution::param_type::param_type,
	uniform_real_distribution::param_type::param_type,
	normal_distribution::param_type::param_type,
	gamma_distribution::param_type::param_type,
	bernoulli_distribution::param_type::param_type,
	binomial_distribution::param_type::param_type,
	geometric_distribution::param_type::param_type,
	negative_binomial_distribution::param_type::param_type,
	poisson_distribution::param_type::param_type,
	exponential_distribution::param_type::param_type): Likewise.
	* include/bits/regex.h (match_results::operator[],
	match_results::prefix, match_results::suffix): Likewise.
	* include/bits/regex.tcc (format, regex_iterator::operator++):
	Likewise.
	* include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise.
	* include/bits/regex_compiler.tcc (_Compiler::_Compiler,
	_Compiler::_M_insert_character_class_matcher): Likewise.
	* include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise.
	* include/bits/regex_scanner.tcc (_Scanner::_M_advance,
	_Scanner::_M_scan_normal): Likewise.
	* include/bits/shared_ptr_base.h (__shared_ptr::_M_reset,
	__shared_ptr::operator*): Likewise.
	* include/bits/stl_iterator_base_funcs.h (__advance): Likewise.
	* include/bits/unique_ptr.h (unique_ptr::operator*,
	unique_ptr::operator[]): Likewise.
	* include/experimental/fs_path.h (path::path(string_type, _Type),
	path::iterator::operator++, path::iterator::operator--,
	path::iterator::operator*): Likewise.
	* include/experimental/string_view (basic_string_view::operator[],
	basic_string_view::front, basic_string_view::back,
	basic_string_view::remove_prefix): Likewise.
	* include/ext/random (beta_distribution::param_type::param_type,
	normal_mv_distribution::param_type::param_type,
	rice_distribution::param_type::param_type,
	pareto_distribution::param_type::param_type,
	k_distribution::param_type::param_type,
	arcsine_distribution::param_type::param_type,
	hoyt_distribution::param_type::param_type,
	triangular_distribution::param_type::param_type,
	von_mises_distribution::param_type::param_type,
	hypergeometric_distribution::param_type::param_type,
	logistic_distribution::param_type::param_type): Likewise.
	* include/ext/vstring.h (__versa_string::operator[]): Likewise.
	* include/std/complex (polar): Likewise.
	* include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK]
	(timed_mutex::~timed_mutex, timed_mutex::unlock,
	(recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock):
	Likewise.
	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
	(__shared_mutex_pthread::__shared_mutex_pthread,
	__shared_mutex_pthread::~__shared_mutex_pthread): Likewise.
	(__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock,
	__shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared,
	__shared_mutex_pthread::try_lock_shared): Likewise.
	(__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock,
	__shared_mutex_cv::unlock_shared): Likewise.
	(shared_timed_mutex::try_lock_until,
	shared_timed_mutex::try_lock_shared_until): Likewise.
	* include/std/valarray (valarray::valarray(const _Tp*, size_t),
	valarray::operator=, valarray::sum, valarray::min, valarray::max,
	_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR):
	Likewise.

From-SVN: r227595
2015-09-09 18:12:47 +01:00
Jonathan Wakely 93023f35f7 Relax Debug Mode assertions on operator-> for smart pointers.
* include/bits/shared_ptr_base.h (__shared_ptr::operator->): Change
	_GLIBCXX_DEBUG_ASSERT to _GLIBCXX_DEBUG_PEDASSERT.
	* include/bits/unique_ptr.h (unique_ptr::operator->): Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Test operator-> on
	empty shared_ptr.

From-SVN: r227524
2015-09-07 18:17:23 +01:00
Jonathan Wakely 12dee005f7 Avoid #ifdef _GLIBCXX_DEBUG in regex_compiler.h
* include/bits/regex_compiler.h (_BracketMatcher::_M_is_ready):
	Initialize using NSDMI and set using _GLIBCXX_DEBUG_ONLY.

From-SVN: r227521
2015-09-07 15:45:14 +01:00
Jonathan Wakely 2d5e3740fd Rename shadowed variable in libstdc++ test.
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Rename
	shadowed variable.

From-SVN: r227519
2015-09-07 12:33:20 +01:00
Jonathan Wakely d835619658 Enable timed mutex unlock tests on darwin.
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Run on
	darwin.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: Run on darwin.

From-SVN: r227518
2015-09-07 11:40:25 +01:00
Jonathan Wakely c79c59f024 fix darwin bootstrap errors due to <mutex>.
PR libstdc++/65704
	* include/std/mutex (recursive_timed_mutex): Fix uses of _Can_lock.

From-SVN: r227495
2015-09-04 17:09:05 +01:00
Jonathan Wakely f16081c2c6 Add portable timed_mutex and recursive_timed_mutex.
PR libstdc++/65704
	* include/Makefile.am: Add <bits/mutex.h>.
	* include/Makefile.in: Regenerate.
	* include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock):
	New file containing types moved from <mutex>.
	* include/std/condition_variable: Include <bits/mutex.h> instead of
	<mutex>.
	* include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock):
	Move to <bits/mutex.h>.
	*  testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove
	dg-require-gthreads-timed.
	*  testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/dest/
	destructor_locked.cc: Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
	Likewise.
	*  testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
	Likewise.
	*  testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/requirements/standard_layout.cc:
	Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
	*  testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
	*  testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
	*  testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
	*  testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	*  testsuite/30_threads/unique_lock/locking/4.cc: Likewise.

From-SVN: r227490
2015-09-04 12:23:44 +01:00
Edward Smith-Rowland 20b5f0b3e6 Add C++11 header <cuchar>.
2015-09-04  Edward Smith-Rowland  <3dw4rd@verizon.net>
	    Jonathan Wakely  <jwakely@redhat.com>

	* acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Check for <uchar.h>.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/c/cuchar: New.
	* include/c_compatibility/uchar.h: New.
	* include/c_global/cuchar: New.
	* include/c_std/cuchar: New.
	* include/precompiled/stdc++.h: Include <cuchar>.
	* testsuite/17_intro/headers/c++200x/stdc++.cc: Include <uchar.h>.
	* testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc:
	Include <uchar.h>.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r227488
2015-09-04 12:13:34 +01:00
Jonathan Wakely 57003677cf Make all <cxxx> headers include <bits/c++config.h>
PR libstdc++/65473
	* include/c/cassert: Include <bits/c++config.h>.
	* include/c/cerrno: Likewise.
	* include/c/cfloat: Likewise.
	* include/c/ciso646: Likewise.
	* include/c/climits: Likewise.
	* include/c_global/cassert: Likewise.
	* include/c_global/cerrno: Likewise.
	* include/c_global/cfloat: Likewise.
	* include/c_global/ciso646: Likewise.
	* include/c_global/climits: Likewise.
	* include/c_std/cassert: Likewise.
	* include/c_std/cerrno: Likewise.
	* include/c_std/cfloat: Likewise.
	* include/c_std/ciso646: Likewise.
	* include/c_std/climits: Likewise.

From-SVN: r227484
2015-09-04 10:16:29 +01:00
Jonathan Wakely c8c030589b Clean up libstdc++ includes slightly.
* include/bits/shared_ptr_base.h: Add required header.
	* include/std/condition_variable: Likewise.
	* include/std/mutex: Remove unused header.
	* include/std/shared_mutex: Remove redundant header.
	(shared_mutex::shared_mutex()): Replace throw with __throw_bad_alloc.

From-SVN: r227469
2015-09-03 21:40:03 +01:00
Jonathan Wakely 433f6725ca re PR libstdc++/66902 (_S_debug_messages is unneccessary public)
PR libstdc++/66902
	* src/c++11/debug.cc (_S_debug_messages): Make array const.

From-SVN: r227466
2015-09-03 20:05:15 +01:00
Jonathan Wakely eb8bf686b7 Make std::experimental::not_fn SFINAE-friendly.
PR libstdc++/66998
	* include/experimental/functional (_Not_fn): Add exception
	specifications and non-deduced return types.
	(not_fn): Add exception specification and wrap pointer-to-member.
	* testsuite/experimental/functional/not_fn.cc: Test in SFINAE context
	and test pointer-to-member.

From-SVN: r227448
2015-09-03 15:36:03 +01:00
Jonathan Wakely 500dc9a6c3 Add concept checks to std::next and std::prev.
PR libstdc++/62039
	* include/bits/stl_iterator_base_funcs.h (next, prev): Add concept
	checks.
	* testsuite/24_iterators/operations/prev_neg.cc: New.
	* testsuite/24_iterators/operations/next_neg.cc: New.

From-SVN: r227447
2015-09-03 15:35:43 +01:00
Sebastian Huber 37d13ae648 libstdc++: Run tests on RTEMS
libstdc++-v3/ChangeLog

	* testsuite/18_support/pthread_guard.cc: Add *-*-rtems* target
	selector to all lines which contain a *-*-cygwin target selector.
	* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread33394.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
	* testsuite/23_containers/list/pthread1.cc: Likewise.
	* testsuite/23_containers/list/pthread5.cc: Likewise.
	* testsuite/23_containers/map/pthread6.cc: Likewise.
	* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
	* testsuite/30_threads/async/42819.cc: Likewise.
	* testsuite/30_threads/async/49668.cc: Likewise.
	* testsuite/30_threads/async/54297.cc: Likewise.
	* testsuite/30_threads/async/any.cc: Likewise.
	* testsuite/30_threads/async/async.cc: Likewise.
	* testsuite/30_threads/async/launch.cc: Likewise.
	* testsuite/30_threads/async/lwg2021.cc: Likewise.
	* testsuite/30_threads/async/sync.cc: Likewise.
	* testsuite/30_threads/call_once/39909.cc: Likewise.
	* testsuite/30_threads/call_once/49668.cc: Likewise.
	* testsuite/30_threads/call_once/60497.cc: Likewise.
	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
	* testsuite/30_threads/future/cons/move.cc: Likewise.
	* testsuite/30_threads/future/members/45133.cc: Likewise.
	* testsuite/30_threads/future/members/get.cc: Likewise.
	* testsuite/30_threads/future/members/get2.cc: Likewise.
	* testsuite/30_threads/future/members/share.cc: Likewise.
	* testsuite/30_threads/future/members/valid.cc: Likewise.
	* testsuite/30_threads/future/members/wait.cc: Likewise.
	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/lock/1.cc: Likewise.
	* testsuite/30_threads/lock/2.cc: Likewise.
	* testsuite/30_threads/lock/3.cc: Likewise.
	* testsuite/30_threads/lock/4.cc: Likewise.
	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
	Likewise.
	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
	* testsuite/30_threads/promise/60966.cc: Likewise.
	* testsuite/30_threads/promise/cons/1.cc: Likewise.
	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
	* testsuite/30_threads/promise/cons/move.cc: Likewise.
	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
	* testsuite/30_threads/promise/members/swap.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
	Likewise.
	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/this_thread/1.cc: Likewise.
	* testsuite/30_threads/this_thread/2.cc: Likewise.
	* testsuite/30_threads/this_thread/3.cc: Likewise.
	* testsuite/30_threads/this_thread/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/1.cc: Likewise.
	* testsuite/30_threads/thread/cons/2.cc: Likewise.
	* testsuite/30_threads/thread/cons/3.cc: Likewise.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
	* testsuite/30_threads/thread/cons/5.cc: Likewise.
	* testsuite/30_threads/thread/cons/6.cc: Likewise.
	* testsuite/30_threads/thread/cons/7.cc: Likewise.
	* testsuite/30_threads/thread/cons/8.cc: Likewise.
	* testsuite/30_threads/thread/cons/9.cc: Likewise.
	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
	* testsuite/30_threads/thread/members/1.cc: Likewise.
	* testsuite/30_threads/thread/members/2.cc: Likewise.
	* testsuite/30_threads/thread/members/3.cc: Likewise.
	* testsuite/30_threads/thread/members/4.cc: Likewise.
	* testsuite/30_threads/thread/members/5.cc: Likewise.
	* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
	* testsuite/30_threads/thread/swap/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/try_lock/1.cc: Likewise.
	* testsuite/30_threads/try_lock/2.cc: Likewise.
	* testsuite/30_threads/try_lock/3.cc: Likewise.
	* testsuite/30_threads/try_lock/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
	* testsuite/ext/rope/pthread7-rope.cc: Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
	Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
	Likewise.

From-SVN: r227429
2015-09-03 05:45:33 +00:00
Dmitry Vyukov 710465235b libstdc++: fix data races in basic_string implementation
* include/bits/basic_string.h: Fix data races on _M_refcount.

From-SVN: r227403
2015-09-02 07:35:20 -07:00
Sebastian Huber d8e19f3114 re PR libstdc++/67408 (<mutex> assumes that __gthread_mutex_t and__gthread_recursive_mutex_t are the same types)
2015-09-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	PR libstdc++/67408
	* include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Use
	_Derived::_M_timedlock().
	(timed_mutex): Add _M_timedlock() and make base class a friend.
	(recursive_timed_mutex): Likewise.

From-SVN: r227400
2015-09-02 11:51:14 +01:00
Tim Shen cae4063cea re PR libstdc++/67362 (std::regex("((.)", std::regex_constants::basic) throws)
PR libstdc++/67362
	* include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal):
	Always returns ordinary char token if the char isn't
	considered a special char.
	* testsuite/28_regex/regression.cc: New test file for collecting
	regression testcases from, typically, bugzilla.

From-SVN: r227289
2015-08-28 02:35:21 +00:00
Jonathan Wakely e994d230f1 re PR libstdc++/67374 (std::cbegin can't call valarray range access functions)
PR libstdc++/67374
	* include/bits/range_access.h (valarray, begin, end): Declare.
	* testsuite/26_numerics/valarray/range_access.cc: Test const
	overloads.
	* testsuite/26_numerics/valarray/range_access2.cc: New.

From-SVN: r227274
2015-08-27 20:05:19 +01:00
John Marino a98e4e62c1 Provide nearly complete std::locale support for DragonFly
2015-08-27  John Marino  <gnugcc@marino.st>

	* acinclude.m4 (*-*-dragonfly*): Change 7 locale support files
	from generic to new DragonFly versions.
	* configure: Regenerate.
	* config/locale/dragonfly/c_locale.cc: Improve locale support.
	* config/locale/dragonfly/ctype_members.cc: Likewise.
	* config/os/bsd/dragonfly/ctype_configure_char.cc: Likewise.
	* config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99.
	* config/locale/dragonfly/c_locale.h: New.
	* config/locale/dragonfly/codecvt_members.cc: New.
	* config/locale/dragonfly/collate_members.cc: New.
	* config/locale/dragonfly/monetary_members.cc: New.
	* config/locale/dragonfly/numeric_members.cc: New.
	* config/locale/dragonfly/time_members.cc: New.
	* config/locale/dragonfly/time_members.h: New.

From-SVN: r227257
2015-08-27 13:12:41 +01:00
Jonathan Wakely a185c87663 * configure: Regenerate.
From-SVN: r227256
2015-08-27 13:12:31 +01:00
Edward Smith-Rowland 33df19a736 Ensure std::generate_canonical doesn't return 1.
2015-08-26  Edward Smith-Rowland  <3dw4rd@verizon.net>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/64351
	PR libstdc++/63176
	* include/bits/random.tcc (generate_canonical): Loop until we get a
	result less than one.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/
	64351.cc: New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r227233
2015-08-26 22:27:09 +01:00
Jonathan Wakely 6bc41b268e Only set std::enable_shared_from_this member once.
* include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use
	nullptr.
	* include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign
	if ownership is already shared with a shared_ptr object.
	(__enable_shared_from_this_helper): Use nullptr.
	* testsuite/20_util/enable_shared_from_this/members/const.cc: New.
	* testsuite/20_util/enable_shared_from_this/members/reinit.cc: New.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Instantiate with const and incomplete types.

From-SVN: r227232
2015-08-26 22:27:00 +01:00
Jonathan Wakely 66c182be12 try_emplace and insert_or_assign for Debug Mode.
* include/debug/map.h (map::try_emplace, map::insert_or_assign):
	Define.
	* include/debug/unordered_map (unordered_map::try_emplace,
	unordered_map::insert_or_assign): Define.

From-SVN: r227229
2015-08-26 21:58:14 +01:00
Jonathan Wakely e41fd1f067 libstdc++/66902 Make _S_debug_messages static.
PR libstdc++/66902
	* src/c++11/debug.cc (_S_debug_messages): Give internal linkage.

From-SVN: r227228
2015-08-26 21:22:58 +01:00
François Dumont 630a286ab6 re PR libstdc++/60519 (Debug mode should check comparators for irreflexivity)
2015-08-24  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/60519
	* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
	New enum entry.
	* include/debug/functions.h (_Irreflexive_checker): New.
	(__is_irreflexive, __is_irreflexive_pred): New.
	* include/debug/macros.h
	(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
	macros.
	(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
	macros limited to post-C++11 mode.
	* include/debug/debug.h
	(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
	New macros, use latter.
	(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
	Likewise.
	* include/bits/stl_algo.h
	(partial_sort_copy): Add irreflexive debug check.
	(partial_sort_copy): Likewise.
	(lower_bound): Likewise.
	(upper_bound): Likewise.
	(equal_range): Likewise.
	(binary_search): Likewise.
	(inplace_merge): Likewise.
	(includes): Likewise.
	(next_permutation): Likewise.
	(prev_permutation): Likewise.
	(is_sorted_until): Likewise.
	(minmax_element): Likewise.
	(partial_sort): Likewise.
	(nth_element): Likewise.
	(sort): Likewise.
	(merge): Likewise.
	(stable_sort): Likewise.
	(set_union): Likewise.
	(set_intersection): Likewise.
	(set_difference): Likewise.
	(set_symmetric_difference): Likewise.
	(min_element): Likewise.
	(max_element): Likewise.
	* include/bits/stl_algobase.h
	(lower_bound): Likewise.
	(lexicographical_compare): Likewise.
	* include/bits/stl_heap.h
	(push_heap): Likewise.
	(pop_heap): Likewise.
	(make_heap): Likewise.
	(sort_heap): Likewise.
	(is_heap_until): Likewise.
	* testsuite/25_algorithms/lexicographical_compare/debug/
	irreflexive_neg.cc: New.
	* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
	New.

From-SVN: r227189
2015-08-25 20:27:03 +00:00
François Dumont 25c65938c8 Revert my change to commit with PR reference again.
From-SVN: r227187
2015-08-25 20:22:47 +00:00
François Dumont 41e4e5edce formatter.h (_Debug_msg_id::__msg_irreflexive_ordering): New enum entry.
2015-08-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
	New enum entry.
	* include/debug/functions.h (_Irreflexive_checker): New.
	(__is_irreflexive, __is_irreflexive_pred): New.
	* include/debug/macros.h
	(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
	macros.
	(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
	macros limited to post-C++11 mode.
	* include/debug/debug.h
	(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
	New macros, use latter.
	(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
	Likewise.
	* include/bits/stl_algo.h
	(partial_sort_copy): Add irreflexive debug check.
	(partial_sort_copy): Likewise.
	(lower_bound): Likewise.
	(upper_bound): Likewise.
	(equal_range): Likewise.
	(binary_search): Likewise.
	(inplace_merge): Likewise.
	(includes): Likewise.
	(next_permutation): Likewise.
	(prev_permutation): Likewise.
	(is_sorted_until): Likewise.
	(minmax_element): Likewise.
	(partial_sort): Likewise.
	(nth_element): Likewise.
	(sort): Likewise.
	(merge): Likewise.
	(stable_sort): Likewise.
	(set_union): Likewise.
	(set_intersection): Likewise.
	(set_difference): Likewise.
	(set_symmetric_difference): Likewise.
	(min_element): Likewise.
	(max_element): Likewise.
	* include/bits/stl_algobase.h
	(lower_bound): Likewise.
	(lexicographical_compare): Likewise.
	* include/bits/stl_heap.h
	(push_heap): Likewise.
	(pop_heap): Likewise.
	(make_heap): Likewise.
	(sort_heap): Likewise.
	(is_heap_until): Likewise.
	* testsuite/25_algorithms/lexicographical_compare/debug/
	irreflexive_neg.cc: New.
	* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
	New.

From-SVN: r227147
2015-08-24 20:21:57 +00:00
Jonathan Wakely 4a88769c96 re PR libstdc++/65049 (Undefined behaviour with std::char_traits<char>)
PR libstdc++/65049
	* include/bits/char_traits.h (char_traits<char>::compare,
	char_traits<char>::find, char_traits<char>::move,
	char_traits<char>::copy, char_traits<char>::assign): Check for zero
	length.
	(char_traits<wchar_t>::compare, char_traits<wchar_t>::find,
	char_traits<wchar_t>::move, char_traits<wchar_t>::copy,
	char_traits<wchar_t>::assign): Likewise.
	(char_traits<char16_t>::move, char_traits<char16_t>::copy): Likewise.
	(char_traits<char32_t>::move, char_traits<char32_t>::copy): Likewise.
	* include/ext/pod_char_traits.h (char_traits<character<>>::move,
	char_traits<character<>>::copy): Likewise.
	* testsuite/21_strings/char_traits/requirements/char/65049.cc: New.
	* testsuite/21_strings/char_traits/requirements/char16_t/65049.cc:
	New.
	* testsuite/21_strings/char_traits/requirements/char32_t/65049.cc:
	New.
	* testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc:
	New.

From-SVN: r227127
2015-08-24 14:43:54 +01:00
Jonathan Wakely 3af7efb7d9 re PR libstdc++/67309 (Error compiling with -std=c++11 and -fsingle-precision-constant)
PR libstdc++/67309
	* include/bits/random.tcc
	(poisson_distribution::param_type::_M_initialize): Use max<double>.
	(binomial_distribution::param_type::_M_initialize): Likewise.
	* testsuite/17_intro/headers/c++200x/67309.cc: New.
	* testsuite/17_intro/headers/c++200x/all_attributes.cc: Remove
	redundant header.

From-SVN: r227126
2015-08-24 14:43:36 +01:00
Jonathan Wakely 4ba1fef27d libstdc++/67294 Don't run timed mutex tests on Darwin
PR libstdc++/67294
	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Do not run
	on Darwin.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.

From-SVN: r227043
2015-08-20 21:36:19 +01:00
Jonathan Wakely 89f0694859 any (__any_caster): Define at namespace scope so the name is visible to name lookup.
* include/experimental/any (__any_caster): Define at namespace scope
	so the name is visible to name lookup.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r227042
2015-08-20 21:19:58 +01:00
Jonathan Wakely f3f61ed2ab Makefile.am: Ensure gdb.py is installed for libstdc++ not libstdc++fs.
* python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
	libstdc++fs.
	* python/Makefile.in: Regenerate.

# Auto-generated commit message above this line, original below.
	* python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
	libstdc++fs.
	* python/Makefile.in: Regenerate.

From-SVN: r227030
2015-08-20 11:50:02 +01:00
Paolo Carlini dce573c43f cmath: Fix typo in comment.
2015-08-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cmath: Fix typo in comment.

From-SVN: r227007
2015-08-19 13:20:29 +00:00
Paolo Carlini 157177af99 cmath: Revert fix for libstdc++/58625...
2015-08-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cmath: Revert fix for libstdc++/58625, no
	longer necessary (__builtin_signbit is now type-generic).

From-SVN: r227006
2015-08-19 13:17:51 +00:00
Jonathan Wakely f641b2d6bb re PR c++/67216 (false is still a null pointer constant)
PR c++/67216
	* testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc:
	Fix use of safe-bool idiom that isn't valid in C++11.

From-SVN: r226986
2015-08-18 19:04:48 +01:00
Jonathan Wakely e92e7c15e1 * include/bits/ptr_traits.h: Include <bits/move.h> for addressof.
From-SVN: r226985
2015-08-18 19:04:42 +01:00
Jonathan Wakely 4c2b10d6a4 re PR libstdc++/67066 (libstdc++-v3/src/filesystem/dir.cc fails to compile with --enable-concept-checks)
PR libstdc++/67066
	* doc/xml/manual/configure.xml (manual.intro.setup.configure): Add
	caveats for --enable-concept-checks. Improve link text.
	* doc/xml/manual/diagnostics.xml (std.diagnostics.concept_checking):
	Clarify caveats.
	* doc/html/*: Regenerate.
	* include/bits/stl_deque.h (deque): Only use concept checks in C++03.
	* include/bits/stl_stack.h (stack): Likewise.
	* include/bits/stl_vector.h (vector): Likewise.

From-SVN: r226984
2015-08-18 19:04:32 +01:00
Jonathan Wakely 2548a4d6ba any (any::operator=(const any&)): Move check for self-assignment.
* include/experimental/any (any::operator=(const any&)): Move check
	for self-assignment.
	(any::operator=(any&&)): Add check for self-assignment.
	(any::operator=(_ValueType&&)): Constrain template argument.
	(any::swap(any&)): Add check for self-swap.
	* testsuite/experimental/any/assign/self.cc: Test move and swap.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error.

From-SVN: r226894
2015-08-14 12:51:18 +01:00
Jonathan Wakely 357c9f7edc array: Add feature-test macro.
* include/experimental/array: Add feature-test macro.
	* testsuite/experimental/array/neg.cc: Update dg-error.

From-SVN: r226893
2015-08-14 12:51:05 +01:00
Ville Voutilainen 708768eb18 neg.s: Remove.
2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>

        * testsuite/experimental/array/neg.s: Remove.
        * testsuite/experimental/array/neg.ii.gz: Remove.

From-SVN: r226866
2015-08-13 18:00:20 +03:00
Ville Voutilainen 9638eccd55 Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array.
2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement std::experimental::fundamentals_v2::make_array and
	std::experimental::fundamentals_v2::to_array.
	* include/Makefile.am: Add array.
	* include/Makefile.in: Add array.
	* include/experimental/array: New.
	* testsuite/experimental/array/make_array.cc: Likewise.
	* testsuite/experimental/array/neg.cc: Likewise.
	* doc/html/manual/status.html: Mark make_array as Y.
	* doc/xml/manual/status_cxx2017.xml: Likewise.

From-SVN: r226865
2015-08-13 17:55:46 +03:00
Jonathan Wakely db23e4c46f alloc_traits.h: Add feature-test macro.
* include/bits/alloc_traits.h: Add feature-test macro.
	* include/bits/allocator.h: Likewise.
	* include/bits/range_access.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/unordered_map.h: Likewise.

From-SVN: r226864
2015-08-13 14:57:41 +01:00
Jonathan Wakely 0072c9ac90 2.cc: New.
* testsuite/30_threads/mutex/unlock/2.cc: New.
	* testsuite/30_threads/recursive_mutex/unlock/2.cc: New.
	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: New.
	* testsuite/30_threads/shared_mutex/unlock/1.cc: New.
	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: New.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: New.

From-SVN: r226863
2015-08-13 14:57:35 +01:00
Eelis van der Weegen 4c80e54478 shared_mutex (shared_mutex::unlock()): Fix typo.
2015-08-13  Eelis van der Weegen  <eelis@eelis.net>

	* include/std/shared_mutex (shared_mutex::unlock()): Fix typo.

From-SVN: r226862
2015-08-13 14:57:28 +01:00
Caroline Tice 441fb2cdb7 Fix warnings when bootstrapping on darwin with vtable verification enabled.
libstdc++-v3/ChangeLog:

2015-08-11  Caroline Tice <cmtice@google.com>

        PR 66521, Contributed by Eric Gallager
        * acinclude.m4 (VTV_CXXLINKFLAGS): Make this variable OS-specific, and
        fix the rpath flag to work properly for darwin.
        * configure: Regenerated.

From-SVN: r226820
2015-08-12 08:40:11 -07:00
Jonathan Wakely 93666a7b00 appendix_contributing.xml: Update patch email policy.
* doc/xml/manual/appendix_contributing.xml: Update patch email policy.
	* doc/xml/manual/status_cxx2017.xml: Update status table.
	* doc/html/manual/*: Regenerate.

From-SVN: r226806
2015-08-12 11:47:30 +01:00
Ville Voutilainen b95170d380 Implement N4279, Improved insertion interface for unique-key maps.
2015-08-09  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4279, Improved insertion interface for unique-key maps.
	* include/bits/stl_map.h (try_emplace, insert_or_assign): New.
	* include/bits/stl_tree.h (_M_get_insert_unique_pos,
	_M_get_insert_equal_pos, _M_get_insert_hint_unique_pos,
	_M_get_insert_hint_equal_pos): Make public.
	* include/bits/unordered_map.h (try_emplace, insert_or_assign): New.
	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
	Likewise.

From-SVN: r226743
2015-08-09 01:57:13 +03:00
Ville Voutilainen f334456903 Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228...
2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
	and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
	templated assignment
	* include/bits/unique_ptr.h
	(__remove_cv, __is_derived_Tp): Remove.
	(default_delete::default_delete(const default_delete<_Up[]>)):
	Constrain with array convertibility.
	(default_delete::operator(_Up*)): Turn into a template,
	constrain with array convertibility.
	(__safe_conversion_up): New, single object version.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
	convertibility.
	(unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint.
	(__safe_conversion_up): Array version, renamed from __safe_conversion,
	updated to implement N4089.
	(__safe_conversion_raw): New.
	(unique_ptr(_Up)): Turn into a template, constrain with array
	convertibility.
	(unique_ptr(_Up,
        typename conditional<is_reference<deleter_type>::value,
        deleter_type, const deleter_type&>::type)): Likewise.
	(unique_ptr(_Up, typename
 	remove_reference<deleter_type>::type&&)): Likewise.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
	(operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint (array version).
	(reset(_Up)): Turn into a template, constrain with array
	convertibility.
	(reset(nullptr_t)): New.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/dr2228.cc: New.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.

From-SVN: r226733
2015-08-08 14:07:34 +03:00
Nikolai Bozhenov e1ed1bca36 constexpr.cc: Remove redundant -save-temps option.
2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>

	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
	redundant -save-temps option.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.

From-SVN: r226647
2015-08-05 21:57:03 +01:00
Jonathan Wakely 93411db8c7 re PR libstdc++/67078 (FAIL: 24_iterators/container_access.cc (test for excess errors) on aarch64-none-elf)
PR libstdc++/67078
	* include/bits/range_access.h (size, empty, data): Fix _N bad name.

From-SVN: r226515
2015-08-03 16:56:17 +01:00