Commit Graph

9142 Commits

Author SHA1 Message Date
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
Jonathan Wakely 155bfacbbe current_path.cc: Use canonical paths for comparisons.
* testsuite/experimental/filesystem/operations/current_path.cc: Use
	canonical paths for comparisons.

From-SVN: r226402
2015-07-30 13:41:33 +01:00
Tim Shen 81b7ff079a regex_automaton.h (_State_base, _State<>): Remove _TraitsT dependency from _State<>...
* include/bits/regex_automaton.h (_State_base, _State<>):
	Remove _TraitsT dependency from _State<>; Make matcher member
	into the union to reduce struct size.
	* include/bits/regex_automaton.tcc (_State_base<>::_M_print,
	_State_base<>::_M_dot, _StateSeq<>::_M_clone):
	Adjust to fit the interface. Factor out common parts in
	_M_clone as _State<>::_M_has_alt.
	* include/bits/regex_executor.h (_Executer<>::_M_lookahead):
	Only pass state id instead of the whole state.
	* include/bits/regex_executor.tcc (_Executer<>::_M_dfs,
	_Executer<>::_M_lookahead): Adjust to fit the interface.
	* include/std/regex: Include <ext/aligned_buffer.h>

From-SVN: r226395
2015-07-30 10:35:45 +00:00
Jonathan Wakely 2e3f48dc43 any (any::operator=(const any&)): Check for self-assignment.
* include/experimental/any (any::operator=(const any&)): Check for
	self-assignment.
	* testsuite/experimental/any/assign/self.cc: New.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r226393
2015-07-30 11:00:39 +01:00
Jonathan Wakely 626b8d8a48 re PR libstdc++/66829 (FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc)
PR libstdc++/66829
	* testsuite/lib/libstdc++.exp (v3-build_support): Compile
	testsuite_shared.cc with -std=gnu++98.

From-SVN: r226354
2015-07-29 15:56:11 +01:00
Jonathan Wakely ef20ab5e01 * testsuite/24_iterators/container_access.cc: New.
From-SVN: r226349
2015-07-29 13:55:58 +01:00
Ville Voutilainen a460d06d16 range_access.h: Change class to typename in every template.
2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* include/bits/range_access.h: Change class to typename in every
	template.
	(size, empty, data): New functions from N4280.
	* testsuite/24_iterators/container_access.cc: New.

From-SVN: r226348
2015-07-29 13:41:32 +01:00
Ville Voutilainen 1fa9ba224e re PR libstdc++/60970 (Support std::hash with enum types (LWG 2148))
2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/60970
	* include/bits/functional_hash.h (__hash_enum): New.
	(hash): Derive from __hash_enum.
	* testsuite/20_util/hash/60970.cc: New.

From-SVN: r226347
2015-07-29 13:41:23 +01:00
Tim Shen f9ce3c1639 re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
PR libstdc++/67015
	* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
	_BracketMatcher<>::_M_add_collating_element): Change signature
	to make checking the and of bracket expression easier.
	* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
	Treat '-' as a valid literal if it's at the end of bracket expression.
	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
	New testcases.

From-SVN: r226336
2015-07-29 03:45:35 +00:00
Jonathan Wakely fa0ed2b062 * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
(_M_load_and_test_until): Whitespace.
	(_M_load_and_test): Value-initialize the unused durations.
	(_M_load_when_equal): Add missing return value.

From-SVN: r226174
2015-07-24 17:30:04 +01:00
Michael Haubenwallner 74b7ec8c45 libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS
2015-07-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* src/filesystem/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r226138
2015-07-24 07:05:19 +00:00
DJ Delorie 8161e0c343 functional_hash.h: Add specializations for __intN types.
* include/bits/functional_hash.h: Add specializations for __intN
types.

* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
Guard against values that might exceed size_t's precision.

From-SVN: r226117
2015-07-23 13:57:34 -04:00
Jason Merrill 3a353ff584 * include/bits/c++config: Fix abi_tag in special modes.
From-SVN: r226022
2015-07-20 18:39:54 -04:00
Jonathan Wakely 5a7dbecc2e status_cxx2017.xml: Fix URL for N4279.
* doc/xml/manual/status_cxx2017.xml: Fix URL for N4279.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r225988
2015-07-19 19:32:35 +01:00
Jonathan Wakely 9298e25f6c status_cxx2011.xml: Add caveats for native_handle.
* doc/xml/manual/status_cxx2011.xml: Add caveats for native_handle.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r225939
2015-07-17 17:08:14 +01:00
François Dumont 5bc1c07c4a stl_algobase.h (__miter_base): Move...
2015-07-16  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_algobase.h (__miter_base): Move...
	* include/bits/cpp_type_traits.h: ...here.
	* include/debug/functions.h (__foreign_iterator_aux): Use latter.
	* testsuite/23_containers/vector/debug/insert7_neg.cc: New.

From-SVN: r225902
2015-07-16 19:17:26 +00:00
Jonathan Wakely 795038b722 re PR libstdc++/66855 (codecvt wrong endianness in UTF-16 conversions)
PR libstdc++/66855
	* src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override
	endianness bit in mode.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New.

From-SVN: r225748
2015-07-13 21:07:48 +01:00
Jonathan Wakely c5d9ec5670 c++config (_GLIBCXX_NOEXCEPT_IF): Define.
* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
	* include/bits/forward_list.h (forward_list::swap): Make noexcept
	unconditional.
	* include/bits/hashtable.h (_Hashtable::swap): Do not use
	_S_nothrow_swap().
	* include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
	unconditional.
	* include/bits/stl_deque.h (deque::swap): Likewise.
	(swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
	* include/bits/stl_list.h (list::swap): Make noexcept unconditional.
	(swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
	* include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
	_GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
	* include/bits/stl_multimap.h (multimap::swap,
	swap(multimap&, multimap&)): Likewise.
	* include/bits/stl_multiset.h (multiset::swap,
	swap(multiset&, multiset&)): Likewise.
	* include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
	* include/bits/stl_tree.h (_Rb_tree::swap,
	swap(_Rb_tree&, _Rb_tree&)): Likewise.
	* include/bits/stl_vector.h (vector::swap): Make noexcept
	unconditional.
	(swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
	* include/debug/deque (deque::swap, swap): Likewise.
	* include/debug/forward_list (swap): Add noexcept.
	* include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
	* include/debug/map.h (map::swap, swap): Likewise.
	* include/debug/multimap.h (multimap::swap, swap): Likewise.
	* include/debug/multiset.h (multiset::Swap, swap): Likewise.
	* include/debug/set.h (set::swap, swap): Likewise.
	* include/debug/unordered_map (unordered_map::swap,
	unordered_multimap::swap, swap): Likewise.
	* include/debug/unordered_set (unordered_set::swap,
	unordered_multiset::swap, swap): Likewise.
	* include/debug/vector (vector::swap, swap): Likewise.
	* include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
	Remove.
	* include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
	* include/profile/forward_list (swap): Add noexcept.
	* include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
	* include/profile/map.h (map::swap, swap): Likewise.
	* include/profile/multimap.h (multimap::swap, swap): Likewise.
	* include/profile/multiset.h (multiset::swap, swap): Likewise.
	* include/profile/set.h (set::swap, swap): Likewise.
	* include/profile/unordered_map (swap): Likewise.
	* include/profile/unordered_set (swap): Likewise.
	* include/profile/vector (vector::swap, swap): Likewise. Remove
	overloads for swapping rvalues.
	* testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
	for noexcept on swap.
	* testsuite/23_containers/forward_list/allocator/noexcept.cc:
	Likewise.
	* testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/allocator/noexcept.cc:
	Likewise.
	* testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
	number.

From-SVN: r225744
2015-07-13 18:15:48 +01:00
John Marino 66a2f247e8 os_defines.h (_GLIBCXX_USE_C99_CHECK, [...]): Define.
2015-07-13  John Marino  <gnugcc@marino.st>

	* config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_CHECK,
	_GLIBCXX_USE_C99_DYNAMIC, _GLIBCXX_USE_C99_LONG_LONG_CHECK,
	_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Define.

From-SVN: r225737
2015-07-13 15:53:08 +01:00
François Dumont 291e91daa7 hashtable.h (_Hashtable<>::__rehash_policy): Do not rehash container.
2015-07-05  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not
	rehash container.
	* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
	Adapt.

From-SVN: r225436
2015-07-05 21:16:07 +00:00
Jonathan Wakely ed3caa8c2a status_cxx2017.xml: Update status table.
* doc/xml/manual/status_cxx2017.xml: Update status table.
	* doc/html/manual/*: Regenerate.

From-SVN: r225380
2015-07-03 15:08:48 +01:00
Ville Voutilainen e37e6813d5 Implement std::experimental::fundamentals_v2::propagate_const.
2015-07-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement std::experimental::fundamentals_v2::propagate_const.
	* include/Makefile.am: Add propagate_const.
	* include/Makefile.in: Regenerate.
	* include/experimental/propagate_const: New.
	* testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
	* testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
	Likewise.
	* testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
	* testsuite/experimental/propagate_const/cons/default.cc: Likewise.
	* testsuite/experimental/propagate_const/cons/move.cc: Likewise.
	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/hash/1.cc: Likewise.
	* testsuite/experimental/propagate_const/observers/1.cc: Likewise.
	* testsuite/experimental/propagate_const/relops/1.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements1.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
	* testsuite/experimental/propagate_const/swap/1.cc: Likewise.
	* testsuite/experimental/propagate_const/typedefs.cc: Likewise.

From-SVN: r225379
2015-07-03 15:08:37 +01:00
Jonathan Wakely 10d712eb7d acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi
* acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
	--with-default-libstdcxx-abi
	* configure: Regenerate.
	* doc/xml/manual/configure.xml: Document valid arguments.

From-SVN: r225356
2015-07-02 22:52:38 +01:00
Uros Bizjak 53ac92c3e0 guard.cc (__test_and_acquire): Use __p after __atomic_load to avoid unused variable warning.
* libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
	to avoid unused variable warning.
	(__set_and_release): Use __p after __atomic_store to avoid unused
	variable warning.

From-SVN: r225298
2015-07-02 07:58:12 +02:00
Jonathan Wakely 7946683835 alloc_traits.h (__alloctr_rebind): Remove.
* include/bits/alloc_traits.h (__alloctr_rebind): Remove.
	(__allocator_traits_base): New base class.
	(__alloc_rebind): Reimplement in terms of detection idiom.
	(allocator_traits): Derive from __allocator_traits_base. Reimplement
	nested types in terms of detection idiom. Simplify SFINAE constraints
	on overloaded static member functions.
	* include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
	of __alloctr_rebind.
	* testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
	dg-error line number.

From-SVN: r225244
2015-07-01 13:24:09 +01:00
Jonathan Wakely 4f44c5556f ptr_traits.h (__ptrtr_elt_type, [...]): Remove
* include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
	__ptrtr_rebind, __ptrtr_not_void): Remove
	(__get_first_arg, __replace_first_arg, __make_not_void): Define new
	transformations.
	(__detected_or_): New detection trait.
	(pointer_traits): Use new traits.
	* testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
	* testsuite/20_util/pointer_traits/requirements/
	explicit_instantiation.cc: Use valid arguments to pointer_traits.

From-SVN: r225243
2015-07-01 13:24:03 +01:00
Jonathan Wakely 6af6bef4ac Implement N4502, the C++ Detection Idiom.
* doc/xml/manual/status_cxx2017.xml: Update status table.
	* include/experimental/type_traits (void_t, is_detected,
	is_detected_v, detected_t, detected_or, detected_or_t,
	is_detected_exact, is_detected_exact_v, is_detected_convertible,
	is_detected_convertible_v): Define.
	* include/std/type_traits (__detector, __detected_or, __detected_or_t,
	__detected_or_t_): Define.
	* testsuite/experimental/type_traits/detection.cc: New.

From-SVN: r225242
2015-07-01 13:23:54 +01:00
Jonathan Wakely 5ea37bcaba Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
* doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
	* doc/Makefile.in: Regenerate.

From-SVN: r225191
2015-06-30 15:22:14 +01:00
Jonathan Wakely 6f86467975 * include/bits/stl_pair.h: Replace class keyword with typename.
From-SVN: r225190
2015-06-30 14:35:36 +01:00
Ville Voutilainen bf7818bfb0 Implement N4387, "Improving pair and tuple", and LWG 2367.
2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4387, "Improving pair and tuple", and LWG 2367.

	* include/bits/stl_pair.h (_ConstructiblePair,
	_ImplicitlyConvertiblePair, _MoveConstructiblePair,
	_ImplicitlyMoveConvertiblePair): New.
	(pair()): Constrain it.
	(pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
	pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
	pair(pair<_U1, _U2>&&)): Make conditionally explicit.
	* include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
	(tuple()): Constrain it.
	(tuple(const _UElements&...), tuple(_UElements&&...),
	tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
	tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
	tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
	tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
	tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
	tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
	tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
	tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
	conditionally explicit.
	* include/experimental/functional (__boyer_moore_array_base): Name
	array type explicitly instead of using an empty braced-init-list.
	* testsuite/20_util/pair/cons/explicit_construct.cc: New.
	* testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
	* testsuite/20_util/pair/requirements/dr2367.cc: New.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: New.
	* testsuite/20_util/tuple/requirements/dr2367.cc: New.

From-SVN: r225189
2015-06-30 14:26:49 +01:00
Jonathan Wakely d62808554d * configure: Regenerate.
From-SVN: r225183
2015-06-30 13:53:14 +01:00
François Dumont 24167c42e6 stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
	to pre-C++11 mode.
	* include/debug/functions.h
	(__gnu_debug::__valid_range, __gnu_debug::__base): Move...
	* include/debug/safe_iterator.h
	(__gnu_debug::_Sequence_traits): New.
	(__gnu_debug::__get_distance_from_begin): New.
	(__gnu_debug::__get_distance_to_end): New.
	(__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
	distance information. Add optional check_dereferenceable parameter,
	default true.
	(__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
	default definition...
	(__gnu_debug::__get_distance): New overload for _Safe_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/helper_functions.h: ...here. New.
	(__gnu_debug::__unsafe): New helper function to remove safe iterator
	layer.
	* include/debug/stl_iterator.h: New. Include latter.
	* include/bits/stl_iterator.h: Include latter in debug mode.
	* include/debug/stl_iterator.tcc: Adapt.
	* include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
	overload for _Safe_local_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/macros.h (__glibcxx_check_valid_range2): New.
	(__glibcxx_check_insert_range): Add _Dist parameter.
	(__glibcxx_check_insert_range_after): Likewise.
	(__glibcxx_check_string, __glibcxx_check_string_len): Implement using
	_GLIBCXX_DEBUG_PEDASSERT.
	* include/debug/deque (deque<>::assign): Remove iterator debug layer
	when possible.
	(deque<>::insert): Likewise.
	* include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
	(forward_list<>::splice_after): Use latter.
	(forward_list<>::assign): Remove iterator debug layer when possible.
	(forward_list<>::insert_after): Likewise.
	(__gnu_debug::_Sequence_traits<>): Partial specialization.
	* include/debug/list (list<>::assign): Remove iterator debug layer when
	possible.
	(list<>::insert): Likewise.
	[__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
	* include/debug/map.h (map<>::insert): Remove iterator debug layer when
	possible.
	* include/debug/multimap.h (multimap<>::insert): Likewise.
	* include/debug/set.h (set<>::insert): Likewise.
	* include/debug/multiset.h (multiset<>::insert): Likewise.
	* include/debug/string (basic_string<>::append, basic_string<>::assign,
	basic_string<>::insert, basic_string<>::replace): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::insert, unordered_multiset<>insert): Likewise.
	* include/debug/vector
	(vector<>::assign, vector<>::insert): Likewise.
	* include/Makefile.am: Add new debug headers.
	* include/Makefile.in: Regenerate.

From-SVN: r225143
2015-06-29 20:17:56 +00:00
Jonathan Wakely a2b5fdcbdb Implement N4258 (Cleaning-up noexcept in the Library rev 3)
* doc/xml/manual/intro.xml: Document LWG 2108 status.
	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Define.
	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
	* include/bits/forward_list.h
	(forward_list::operator=(forward_list&&)): Use __bool_constant.
	(forward_list::swap(forward_list&)): Add noexcept.
	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
	Likewise.
	(_Hashtable::swap(_Hashtable&)): Likewise.
	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
	Use _Alloc_traits::is_always_equal.
	(deque::operator=(deque&&)): Likewise.
	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
	__bool_constant.
	(swap(deque&, deque&)): Add noexcept.
	* include/bits/stl_list.h (list::operator=(list&&)): Use
	__bool_constant.
	(swap(list&, list&)): Add noexcept.
	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
	noexcept.
	(swap(map&, map&)): Add noexcept.
	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
	_Compare in noexcept.
	(swap(multimap&, multimap&)): Add noexcept.
	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
	_Compare in noexcept.
	(swap(multiset&, multiset&)): Add noexcept.
	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
	noexcept.
	(swap(set&, set&)): Add noexcept.
	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
	_Compare in noexcept.
	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
	is_always_equal.
	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
	__bool_constant.
	(swap(vector&, vector&)): Add noexcept.
	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Remove.
	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
	__allocator_always_compares_equal.
	* include/ext/array_allocator.h (array_allocator::is_always_equal):
	Define.
	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
	__propagate_on_move, __propagate_on_swap): Remove.
	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
	scoped_allocator_adaptor::propagate_on_container_move_assignment,
	scoped_allocator_adaptor::propagate_on_container_swap): Define with
	__and_ instead of __any_of.
	(scoped_allocator_adaptor::is_always_equal): Define.
	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
	derive from true_type or false_type.
	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
	is_always_equal member and remove the trait specialization.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r225081
2015-06-26 21:10:24 +01:00
Jonathan Wakely 504a5fe6fd stl_bvector.h (vector<bool>::vector()): Add noexcept.
* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
	* include/bits/stl_map.h (map::map()): Likewise.
	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
	* include/bits/stl_set.h (set::set()): Likewise.

From-SVN: r225024
2015-06-26 18:26:38 +01:00
Jonathan Wakely 67b0404e12 * include/bits/locale_conv.h (__do_str_codecvt): Set __count.
From-SVN: r224985
2015-06-25 19:23:41 +01:00
François Dumont e25d2617ac basic_string.h (basic_string<>::front()): Add !empty debug check.
2015-06-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/basic_string.h (basic_string<>::front()): Add !empty
	debug check.
	(basic_string<>::back()): Likewise.
	(basic_string<>::pop_back()): Likewise.

From-SVN: r224919
2015-06-24 20:12:05 +00:00
Paolo Carlini a2055cc9e5 get_neg.cc: Adjust dg-error line numbers.
2015-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Likewise.

From-SVN: r224897
2015-06-24 12:18:29 +00:00
François Dumont 7d17de7f73 array: Include <array>.
2015-06-23  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/array: Include <array>. Add version namespace when
	specializing tuple interface to array. Add specialization for
	__is_tuple_like_impl.
	* include/profile/array: Likewise.
	* include/std/array: Include <utility>. Add specialization for
	__is_tuple_like_impl.
	* include/std/tuple
	(__is_tuple_like_impl<>, __is_tuple_like_impl<pair>): Move...
	* include/std/utility: ... here. Include <type_traits>.
	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
	dg-error line number.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element_debug_neg.cc: Likewise.

From-SVN: r224857
2015-06-23 19:51:02 +00:00
Jonathan Wakely e39c4966c7 1.cc: Use non-negative rho argument.
* testsuite/26_numerics/complex/value_operations/1.cc: Use
	non-negative rho argument.

From-SVN: r224739
2015-06-22 16:09:32 +01:00
Jonathan Wakely e51d877098 list (__gnu_debug::list): Use allocator-aware _Safe_container base.
* include/debug/list (__gnu_debug::list): Use allocator-aware
	_Safe_container base.
	* include/debug/string (__gnu_debug::basic_string): Use
	allocator-aware _Safe_container base for cxx11 ABI.

From-SVN: r224738
2015-06-22 16:09:27 +01:00
Jonathan Wakely 9eb659e003 locale_conv.h (__do_str_codecvt): Handle empty range.
* include/bits/locale_conv.h (__do_str_codecvt): Handle empty range.
	(wstring_convert): Move into __cxx11 namespace.
	(wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception
	message.

From-SVN: r224737
2015-06-22 16:09:22 +01:00
Jonathan Wakely 4db6c2f585 re PR libstdc++/64657 (Support iterators with overloaded operator-comma)
PR libstdc++/64657
	* include/bits/stl_uninitialized.h
	(__uninitialized_copy::__uninit_copy): Cast expression to void.

From-SVN: r224736
2015-06-22 16:09:14 +01:00
Jonathan Wakely cc7f3d0eee C++11 allocator support for std::list.
PR libstdc++/55409
	* include/bits/list.tcc (_List_base::_M_clear()): Use allocator traits.
	(list::list(const list&)): Use allocator propagation trait. Use
	_M_assign_dispatch to copy elements.
	* include/bits/stl_list.h (_List_node): Use __aligned_membuf in C++11.
	(_List_node::_M_valptr()): Add accessor for stored value.
	(_List_iterator, _List_const_iterator, _List_base): Use _M_valptr().
	(_List_base, list): Use allocator traits.
	(_List_base::_M_get_Tp_allocator, _List_base::get_allocator): Remove.
	(_List_base::_M_move_nodes): New function.
	(_List_base(_List_base&&)): Use _M_move_nodes.
	(_List_base(_List_base&&, _Node_alloc_type&&)): New constructor.
	(list::_M_create_node, list::_M_erase, list::max_size): Use allocator
	traits.
	(list(size_type)): Add allocator parameter.
	(list(const list&)): Use allocator propagation trait.
	(list(const list&, const allocator_type&)): New constructor.
	(list(list&&, const allocator_type&)): Likewise.
	(list::operator=(list&&), list::swap(list&)): Use allocator
	propagation traits.
	(list::_M_move_assign): New functions.
	* include/debug/list: Add allocator-extended constructors.
	* include/profile/list: Likewise.
	* python/libstdcxx/v6/printers.py (get_value_from_list_node): New
	function to get value from _List_node.
	(StdListPrinter): Use get_value_from_list_node.
	* testsuite/23_containers/list/allocator/copy.cc: New.
	* testsuite/23_containers/list/allocator/copy_assign.cc: New.
	* testsuite/23_containers/list/allocator/minimal.cc: New.
	* testsuite/23_containers/list/allocator/move.cc: New.
	* testsuite/23_containers/list/allocator/move_assign.cc: New.
	* testsuite/23_containers/list/allocator/noexcept.cc: New.
	* testsuite/23_containers/list/allocator/swap.cc: New.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-prune-output line number.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r224580
2015-06-17 21:36:42 +01:00
Jonathan Wakely 21bdef94b1 forward_list.h (_Fwd_list_base(const _Node_alloc_type&)): Change parameter to rvalue-reference.
* include/bits/forward_list.h
	(_Fwd_list_base(const _Node_alloc_type&)): Change parameter to
	rvalue-reference.
	(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Likewise.
	(forward_list(const _Alloc&)): Split default constructor out to
	separate function.
	(forward_list(forward_list&&, const _Alloc&)): Move elements if base
	class didn't do so.
	(forward_list::_M_move_assign(forward_list&&, true_type)): Replace
	swap call with two assignments.
	* include/bits/forward_list.tcc
	(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Don't
	move elements when allocators are not equal.
	* include/debug/forward_list (forward_list(const allocator_type&)):
	Split default constructor out to separate function.
	* include/profile/forward_list (forward_list(const _Alloc&)):
	Likewise.

From-SVN: r224566
2015-06-17 18:45:45 +01:00
Jonathan Wakely 9649e5b62e forward_list.h (forward_list::_M_get_Node_allocator): Remove unnecessary uses of operator& and static_cast.
* include/bits/forward_list.h (forward_list::_M_get_Node_allocator):
	Remove unnecessary uses of operator& and static_cast.
	* include/bits/forward_list.tcc
	(forward_list::operator=(const forward_list&)): Use __addressof
	instead of operator&.
	(forward_list::remove(const _Tp&), forward_list::remove(_Pred)):
	Remove invalid static_casts.
	* include/debug/forward_list: Use __addressof instead of operator&.
	* testsuite/23_containers/forward_list/modifiers/addressof.cc: New.

From-SVN: r224553
2015-06-17 12:33:31 +01:00
Jonathan Wakely c92334d4c5 alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use __is_nothrow_swappable.
* include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use
	__is_nothrow_swappable.

From-SVN: r224552
2015-06-17 11:51:46 +01:00
Jonathan Wakely 91b142ffc3 * include/bits/allocated_ptr.h (__allocated_ptr): Use __addressof.
From-SVN: r224540
2015-06-16 23:33:06 +01:00
Jonathan Wakely 200fcd3398 list.tcc (list::operator=(const list&), [...]): Use __addressof instead of operator&.
* include/bits/list.tcc (list::operator=(const list&), list::merge):
	Use __addressof instead of operator&.
	(list::sort): Use array-to-pointer decay instead of operator&.
	* include/bits/stl_list.h (list::splice): Use __addressof instead of
	operator&.
	* include/debug/formatter.h (_Error_formatter::_Parameter::_Parameter):
	Likewise.
	* include/debug/functions.h (__check_singular): Likewise.
	* include/debug/list (list::splice, list::merge): Likewise.
	* testsuite/23_containers/list/modifiers/addressof.cc: New.

From-SVN: r224539
2015-06-16 22:04:53 +01:00
Jonathan Wakely 0dc3cba1bd re PR libstdc++/65393 (std::thread shared_ptr inefficiency)
PR libstdc++/65393
	* src/c++11/thread.cc (thread::_M_make_thread): Replace shared_ptr
	copies with moves.

From-SVN: r224530
2015-06-16 18:53:52 +01:00
Jonathan Wakely 7388ee9e9b * include/precompiled/stdc++.h: Include <codecvt> and <shared_mutex>.
From-SVN: r224425
2015-06-12 13:27:06 +01:00
Jonathan Wakely f0b587aa84 Fix whitespace in changelog.
From-SVN: r224416
2015-06-12 11:26:10 +01:00
Jonathan Wakely 6a3d0bb327 re PR libstdc++/66464 (codecvt_utf16 max_length returning incorrect value)
PR libstdc++/66464
	* src/c++11/codecvt.cc (codecvt_utf16_base<char32_t>::do_max_length):
	Return 4 not 3.

From-SVN: r224415
2015-06-12 11:26:05 +01:00
Ramana Radhakrishnan 1c6682fa9f Use atomics in guard.cc / remove special casing in targets.
The PowerPC, AIX, Alpha, IA64  implementations of atomic_word.h are in no
way different from what can be achieved with the generic rewrite in
Patch 1 of this series - delete these.

2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/cpu/alpha/atomic_word.h: Remove.
        * config/cpu/ia64/atomic_word.h: Remove.
        * config/cpu/powerpc/atomic_word.h: Remove.
        * config/os/aix/atomic_word.h: Remove.
        * configure.host (atomic_word_dir) [ia64, aix*, powerpc, alpha]:
        Use generic definition.

From-SVN: r224413
2015-06-12 09:55:38 +00:00
Ramana Radhakrishnan dd38693ee5 Use atomics in guard.cc / remove special casing in targets.
The PowerPC, AIX, Alpha, IA64  implementations of atomic_word.h are in no
way different from what can be achieved with the generic rewrite in
Patch 1 of this series - delete these.

2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/cpu/alpha/atomic_word.h: Remove.
        * config/cpu/ia64/atomic_word.h: Remove.
        * config/cpu/powerpc/atomic_word.h: Remove.
        * config/os/aix/atomic_word.h: Remove.
        * configure.host (atomic_word_dir) [ia64, aix*, powerpc, alpha]:
        Use generic definition.

From-SVN: r224412
2015-06-12 09:53:24 +00:00
Ramana Radhakrishnan 57e6d9be77 Use atomics in guard.cc.
This provides proper definitions for _GLIBCXX_READ_MEM_BARRIER and
_GLIBCXX_WRITE_MEM_BARRIER, rewrites the guards in terms of proper
atomic extensions and removes internal uses of
_GLIBCXX_READ_MEM_BARRIER and _GLIBCXX_WRITE_MEM_BARRIER and replaces
them with equivalent atomics.

2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	PR c++/66192
	* * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define
        (_GLIBCXX_WRITE_MEM_BARRIER): Likewise
        * include/bits/shared_ptr_base.h: Use ACQ_REL barrier.
        * include/ext/atomicity.h: Likewise.
        * include/tr1/shared_ptr.h: Likewise.
        * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics.
        Update comment.
        (__set_and_release): Likewise.
        * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for
	line numbers.
        * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
        * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
	Likewise.

From-SVN: r224411
2015-06-12 09:49:41 +00:00
Jonathan Wakely 7672ab25db tuple (__is_tuple_like_impl): Disambiguate array in debug and profile modes.
* include/std/tuple (__is_tuple_like_impl): Disambiguate array in
	debug and profile modes.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust tests
	for swap in C++11 and later.

From-SVN: r224397
2015-06-12 00:22:19 +01:00
Jonathan Wakely 8602ca0a2d re PR libstdc++/66030 ([5.1.0] std::codecvt_byname missing from libstdc++ DLL)
PR libstdc++/66030
	* config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols
	for mingw32.

From-SVN: r224273
2015-06-09 09:50:00 +01:00
Jonathan Wakely c00f4f5fb3 re PR libstdc++/66441 (wstring_convert not working correctly)
PR libstdc++/66441
	* testsuite/22_locale/conversions/string/66441.cc: New.
	* include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space
	in the output string for BOM and complete result.

From-SVN: r224222
2015-06-08 14:03:45 +01:00
Jonathan Wakely aa4e0c43bc re PR libstdc++/66417 (std::codecvt_utf16<char32_t, 0x10FFFF, std::codecvt_mode::generate_header> generates incorrect output)
PR libstdc++/66417
	* src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order
	for single UTF-16 units.
	* testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New.

From-SVN: r224217
2015-06-08 12:09:17 +01:00
François Dumont d7b35f22be stl_tree.h (_Rb_tree<>::__is_transparent<>): Move to outer scope and rename to ...
2015-06-07  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_tree.h (_Rb_tree<>::__is_transparent<>): Move to
	outer scope and rename to ...
	(std::__hash_is_transparent<>): ... this.
	* include/debug/stl_map.h (map::find<>,
	map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
	member function templates to perform heterogeneous lookup.
	* include/debug/stl_multimap.h (multimap::find<>,
	multimap::lower_bound<>, multimap::upper_bound<>,
	multimap::equal_range<>): Likewise.
	* include/debug/stl_multiset.h (multiset::find<>,
	multiset::lower_bound<>, multiset::upper_bound<>,
	multiset::equal_range<>): Likewise.
	* include/debug/stl_set.h (set::find<>,
	set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
	* include/profile/stl_map.h (map::find<>, map::count<>,
	map::lower_bound<>, map::upper_bound<>, map::equal_range<>): Likewise.
	* include/profile/stl_multimap.h (multimap::find<>, multimap::count<>,
	multimap::lower_bound<>, multimap::upper_bound<>,
	multimap::equal_range<>): Likewise.
	* include/profile/stl_multiset.h (multiset::find<>, multiset::count<>,
	multiset::lower_bound<>, multiset::upper_bound<>,
	multiset::equal_range<>): Likewise.
	* include/profile/stl_set.h (set::find<>, set::count<>,
	set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
	* testsuite/23_containers/map/operations/1.cc: Check const variants.
	* testsuite/23_containers/multimap/operations/1.cc: Likewise.
	* testsuite/23_containers/multiset/operations/1.cc: Likewise.
	* testsuite/23_containers/set/operations/1.cc: Likewise.

From-SVN: r224200
2015-06-07 20:45:57 +00:00
Jonathan Wakely 46ba128114 status_cxx2017.xml: Update status tables.
* doc/xml/manual/status_cxx2017.xml: Update status tables.
	* doc/html/manual/*: Regenerate.
	* include/std/type_traits (bool_constant): Define.
	* testsuite/20_util/bool_constant/requirements.cc: New.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r224160
2015-06-05 18:17:53 +01:00
Jonathan Wakely 712266515f shared_mutex (__shared_mutex_pthread, [...]): New helper types implementing the shared mutex requirements.
* include/std/shared_mutex (__shared_mutex_pthread,
	__shared_mutex_cv): New helper types implementing the shared mutex
	requirements.
	(shared_mutex): New type for C++17.
	(shared_timed_mutex): Derive from one of the new helper types.
	* testsuite/30_threads/shared_mutex/cons/1.cc: New.
	* testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New.
	* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New.
	* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
	New.
	* testsuite/30_threads/shared_mutex/try_lock/1.cc: New.
	* testsuite/30_threads/shared_mutex/try_lock/2.cc: New.

From-SVN: r224158
2015-06-05 17:31:05 +01:00
Jonathan Wakely 9bbcf8b85b Fix date of ChangeLog entry.
From-SVN: r224155
2015-06-05 17:00:04 +01:00
Ville Voutilainen ddb63209a8 Add __is_nothrow_swappable and take it into use.
2015-06-04  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Add __is_nothrow_swappable and take it into use.
	* include/bits/algorithmfwd.h (swap): Only declare for C++98 mode.
	* include/bits/move.h (swap): Add constraints in C++11 and later.
	* include/bits/stl_pair.h (swap): Use __is_nothrow_swappable
	for the free swap function for pair.
	* include/bits/stl_queue.h (swap): Use __is_nothrow_swappable
	for the free swap functions for queue and priority_queue.
	* include/bits/stl_stack.h (swap): Use __is_nothrow_swappable
	for the free swap function for stack.
	* include/debug/array (swap): Use __is_nothrow_swappable
	for the free swap function for array.
	* include/profile/array (swap): Likewise.
	* include/std/array (swap): Likewise.
	* include/std/tuple (_Tuple_impl::_M_swap): Use __is_nothrow_swappable.
	* include/std/type_traits (__is_swappable_impl::__is_swappable,
	__is_nothrow_swappable_impl, __is_nothrow_swappable): New.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable/value.cc: New.

From-SVN: r224153
2015-06-05 15:44:26 +01:00
François Dumont 82b544ad25 2015-06-03 François Dumont fdumont@gcc.gnu.org>
* testsuite/23_containers/list/61347.cc: Add dg-require-normal-mode.

From-SVN: r224100
2015-06-03 20:15:35 +00:00
Jonathan Wakely 5211a52d57 abi.xml: Document versioning for 5.1.0 release.
* doc/xml/manual/abi.xml: Document versioning for 5.1.0 release.
	* doc/html/manual/*: Regenerate.

From-SVN: r224025
2015-06-02 12:17:43 +01:00
Jonathan Wakely 5d65efd4df lwg-active.html: Update to R93.
* doc/html/ext/lwg-active.html: Update to R93.
	* doc/html/ext/lwg-closed.html: Likewise.
	* doc/html/ext/lwg-defects.html: Likewise.
	* doc/html/manual/*: Regenerate.
	* doc/xml/manual/intro.xml: Document status of several DRs.

From-SVN: r224023
2015-06-02 12:07:30 +01:00
Renlin Li fc7e20fd7a [libstdc++-v3]Add _GLIBCXX_HAVE_LIMIT_FSIZE to guard 27_io/fpos/14775.cc.
libstdc++-v3/

2015-06-02  Renlin Li  <renlin.li@arm.com>

	* testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check.

From-SVN: r224015
2015-06-02 08:54:25 +00:00
Jonathan Wakely 77d0ed47e8 libstdc++.exp (libstdc++_init): Unset LANGUAGE environment variable.
* testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE
	environment variable.

From-SVN: r223937
2015-06-01 12:57:33 +01:00
Jonathan Wakely 5d946f4228 re PR libstdc++/66354 ([UBSAN] stl_algobase.h:708:7: runtime error: null pointer passed as argument)
PR libstdc++/66354
	* include/bits/stl_algobase.h (__fill_a): Check length before calling
	memset.

From-SVN: r223906
2015-05-31 23:42:17 +01:00
Jonathan Wakely 12fc64ac3a stl_algobase.h (__equal<true>::equal): Check length instead of checking for null pointers.
* include/bits/stl_algobase.h (__equal<true>::equal): Check length
	instead of checking for null pointers.
	(__lexicographical_compare<true>::__lc): Only check shorter length.

From-SVN: r223886
2015-05-30 12:44:02 +01:00
François Dumont adad2a7d90 2015-05-29 François Dumont fdumont@gcc.gnu.org>
* include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT,
	_GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition...
	* include/debug/assertions.h: ...here, new.
	* include/debug/formatter.h
	(_Error_formatter::_Is_iterator_value_type): New.
	(_Error_formatter::_Is_instance): New.
	(_Error_formatter::_Parameter): Make public and not friend anymore.
	(_Error_formatter::_Parameter::__instance): New _M_kind enum entry.
	(_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum
	entry.
	(_Error_formatter::_Parameter::_Type): New.
	(_Error_formatter::_Parameter::_Instance): New, inherit from
	latter.
	(union _Error_formatter::_Parameter::_M_variant): Reorganize.
	(_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all
	overloads take iterator through a const reference.
	(_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)):
	New.
	(_Parameter(const _Type&, const char*, _Is_instance)): New.
	(_Error_formatter::_M_print_type): Delete.
	(_Error_formatter::_M_iterator_value_type): New.
	(_Error_formatter::_M_instance): New.
	* include/Makefile.am: Add new above debug file.
	* include/Makefile.in: Regenerate.
	* include/debug/functions.h
	(__check_dereferenceable(const _Safe_iterator<>&),
	__valid_range(const _Safe_iterator<>&),
	__is_safe_random_iterator<_Safe_iterator<>>): Move...
	* include/debug/safe_iterator.h: ... here.
	Replace debug.h include with assertions.h.
	(__check_singular_aux): Move...
	* include/debug/safe_base.h: ... here.
	* include/debug/functions.h
	(__check_dereferenceable(const _Safe_local_iterator<>&),
	__valid_range(const _Safe_local_iterator<>&): Move...
	* include/debug/safe_local_iterator.h: ...here.
	* include/debug/safe_sequence.h: Replace debug.h with assertions.h.
	Remove _Safe_iterator declaration.
	* include/debug/safe_unordered_container.h: Replace debug.h with
	assertions.h.
	* include/debug/array: Replace safe_sequence.h include with
	formatter.h and macros.h.
	* include/debug/deque: Include functions.tcc.
	* include/debug/forward_list: Likewise.
	* include/debug/list: Likewise.
	* include/debug/string: Likewise.
	* include/debug/vector: Likewise.
	* include/bits/unique_ptr.h: Replace debug.h include with new
	assertions.h.
	* include/bits/stl_iterator_base_funcs.h: Likewise.
	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element_debug_neg.cc: Likewise.
	* src/c++11/debug.cc: Adapt.

From-SVN: r223877
2015-05-29 21:29:07 +00:00
Jonathan Wakely cfba236af0 status_cxx2017.xml: Fix duplicate ID attribute.
* doc/xml/manual/status_cxx2017.xml: Fix duplicate ID attribute.
	* doc/html/manual/*: Regenerate.

From-SVN: r223868
2015-05-29 16:18:05 +01:00
Jonathan Wakely 75eb64433e future (__async_result_of): New alias template.
* include/std/future (__async_result_of): New alias template.
	(async): Use __async_result_of to pass decayed types to result_of.
	* testsuite/30_threads/async/lwg2021.cc: New.
	* doc/xml/manual/intro.xml: Document LWG 2021 status.

From-SVN: r223866
2015-05-29 14:44:52 +01:00
Jonathan Wakely 6759eddee4 re PR libstdc++/66327 (-fsanitize=nonnull-attribute errors in stl_algobase.h)
PR libstdc++/66327
	* include/bits/stl_algobase.h (__equal<true>::equal): Do not call
	memcmp with null pointers.
	(__lexicographical_compare<true>::__lc): Do not call memcmp for empty
	ranges.

From-SVN: r223865
2015-05-29 14:28:54 +01:00
Jonathan Wakely ac3efa775f re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
PR libstdc++/65352
	* include/profile/array (array::data): Use _S_ptr.
	* include/debug/array (array::data): Likewise.

From-SVN: r223838
2015-05-28 17:00:09 +01:00
Jonathan Wakely 6a344b953a re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
PR libstdc++/65352
	* include/std/array (__array_traits::_S_ptr): New function.
	(array::data): Use _S_ptr to avoid creating invalid reference.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	likewise.

From-SVN: r223806
2015-05-28 12:53:35 +01:00
Jonathan Wakely 151fbaac5c stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting.
* include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr
	instead of downcasting.
	(_Rb_tree::_M_copy): Change second parameter to _Base_ptr.
	(_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise.
	(_Rb_tree::_S_iter): Remove.
	(_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove.
	(_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr
	instead of _S_lower_bound_tr
	(_Rb_tree::_M_find_tr(const _Kt&)): Call const overload.
	(_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here
	instead of calling _S_lower_bound_tr.
	(_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload.
	(_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here
	instead of calling _S_upper_bound_tr.
	(_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload.
	(_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise.
	(_Rb_tree::equal_range): Use _Base_ptr for end pointer.
	(_Rb_tree::_M_get_insert_unique_pos): Likewise.
	(_Rb_tree::_M_get_insert_equal_pos): Likewise.
	(_Rb_tree::_M_insert_equal_lower_node): Likewise.
	(_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique,
	_Rb_tree::_M_emplace_hint_unique): Remove static_cast.

From-SVN: r223746
2015-05-27 12:18:44 +01:00
Jonathan Wakely 2097b5b029 re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)
PR libstdc++/66017
	* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
	(_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
	from _Base_ptr.
	(_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
	(_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
	* include/ext/aligned_buffer.h (__aligned_membuf): New type using
	alignment of _Tp as a member subobject, not as a complete object.
	* python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
	_Link_type manually as it might not be in the debug info.

From-SVN: r223745
2015-05-27 12:18:37 +01:00
Doug Evans 419587a0bb xmethods.py (UniquePtrMethodsMatcher): Add operator-> support.
* python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
	operator-> support.
	* testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
	operator->.

From-SVN: r223723
2015-05-26 23:06:55 +00:00
Jonathan Wakely 4a72a6ddd2 locale_conv.h: Fix copyright years.
* include/bits/locale_conv.h: Fix copyright years.
	* include/bits/quoted_string.h: Likewise.
	* src/filesystem/Makefile.am: Likewise.
	* testsuite/22_locale/conversions/buffer/1.cc: Likewise.
	* testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
	Likewise.
	* testsuite/22_locale/conversions/string/1.cc: Likewise.
	* testsuite/22_locale/conversions/string/2.cc: Likewise.
	* testsuite/22_locale/conversions/string/3.cc: Likewise.
	* testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
	Likewise.
	* testsuite/22_locale/conversions/string/requirements/typedefs.cc:
	Likewise.
	* testsuite/util/testsuite_fs.h: Likewise.

From-SVN: r223676
2015-05-26 10:52:25 +01:00
François Dumont e2897e23a7 2015-05-23 François Dumont fdumont@gcc.gnu.org>
PR libstdc++/64657
	* include/debug/functions.h (__check_sorted_aux): Cast expression to
	void.

From-SVN: r223605
2015-05-23 11:17:38 +00:00
David Edelsohn e3592e196a re PR target/66224 (PowerPC _GLIBCXX_READ_MEM_BARRIER too weak)
PR target/66224
        * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
        Don't use isync. Use lwsync if available.
        * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
        powerpc cpu definition.

From-SVN: r223496
2015-05-21 13:18:25 -04:00
Jason Merrill 4177264e09 del_opv.cc: Suppress -Wsized-deallocation.
* libsupc++/del_opv.cc: Suppress -Wsized-deallocation.
	* libsupc++/del_op.cc: Likewise.

From-SVN: r223488
2015-05-21 11:12:40 -04:00
François Dumont fa5cc2db54 formatter.h (_GLIBCXX_TYPEID): New macro to simplify usage of typeid.
2015-05-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify
	usage of typeid.
	(_Error_formatter::_M_print_type): New.
	* src/c++11/debug.cc
	(_Error_formatter::_Parameter::_M_print_field): Use latter.
	(_Error_formatter::_M_print_type): Implement latter using
	__cxaabiv1::__cxa_demangle to print demangled type name.

From-SVN: r223455
2015-05-20 19:44:25 +00:00
François Dumont fd2ef11714 2015-05-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/cpp_type_traits.h
	(std::move_iterator): Delete declaration.
	(std::__is_move_iterator<move_iterator>): Move partial specialization...
	* include/bits/stl_iterator.h: ... here.
	(std::__miter_base): Overloads for std::reverse_iterator and
	std::move_iterator.
	* include/bits/stl_algobase.h (std::__miter_base): Provide default
	implementation.

From-SVN: r223453
2015-05-20 19:02:22 +00:00
Jonathan Wakely 7769c9deff * testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam.
From-SVN: r223450
2015-05-20 18:28:04 +01:00
Jonathan Wakely 793cac74e9 re PR libstdc++/66078 (20_util/specialized_algorithms/uninitialized_copy/808590.cc fails with -std=c++11)
PR libstdc++/66078
	* include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add
	overload for pointers.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590.cc: Add -std=gnu++03 switch.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11.
	* testsuite/23_containers/vector/modifiers/push_back/
	strong_guarantee.cc: New.

From-SVN: r223449
2015-05-20 18:11:03 +01:00
Jonathan Wakely 8e72571637 stl_list.h (_M_resize_pos(size_type&)): Declare.
* include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare.
	(operator==(const list&, const list&)): If size() is O(1) compare
	sizes before comparing each element.
	* include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define.
	(list::resize): Use _M_resize_pos.

From-SVN: r223416
2015-05-19 23:24:50 +01:00
François Dumont 90f0d17641 66055.cc: Add constructor invocations.
2015-05-19  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
	invocations.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.

From-SVN: r223413
2015-05-19 19:57:09 +00:00
Ramana Radhakrishnan 49c6543450 Add cpu_defines.h for ARM.
2015-05-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* configure.host: Define cpu_defines_dir for ARM.
	* config/cpu/arm/cpu_defines.h: New file.

From-SVN: r223361
2015-05-19 12:47:50 +00:00
François Dumont e55b80f5f4 unordered_map.h (unordered_map, [...]): Add missing constructors.
2015-05-17  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* include/debug/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/debug/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* include/profile/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/profile/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
	invocations.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.

From-SVN: r223273
2015-05-17 20:14:53 +00:00
Jonathan Wakely 9caf7b2729 ops.cc (stat_type): Define alias for struct stat and use throughout the file.
* src/filesystem/ops.cc (stat_type): Define alias for struct stat and
	use throughout the file.
	(make_file_type): New function.
	(file_size(const path&, error_code&)): Report an error for anything
	that isn't a regular file.
	(status(const path&), symlink_status(const path&)): Do not throw for
	file_type::not_found.
	(temp_directory_path()): Check additional environment variables.
	* testsuite/experimental/filesystem/operations/exists.cc: New.
	* testsuite/experimental/filesystem/operations/file_size.cc: New.
	* testsuite/experimental/filesystem/operations/status.cc: New.
	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
	New.

From-SVN: r223224
2015-05-15 19:37:25 +01:00
Nathan Myers ddbd742bf8 re PR libstdc++/66055 (hash containers missing required reserving constructors)
2015-05-14  Nathan Myers  <ncm@cantrip.org>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66055
	* include/std/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/std/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/unordered_map/cons/66055.cc: New.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: New.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: New.
	* testsuite/23_containers/unordered_set/cons/66055.cc: New.

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

From-SVN: r223198
2015-05-14 14:47:19 +01:00
Jonathan Wakely a0c4531ccf re PR libstdc++/66011 (call to '__open_missing_mode' declared with attribute error)
PR libstdc++/66011
	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmod and
	sendfile.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* src/filesystem/ops.cc (do_copy_file): Fix arguments to open(). Do
	not return after copying contents. Use fchmod, fchmodat, and sendfile
	when available.
	(current_path, permissions, space): Use errno not return value.

From-SVN: r223196
2015-05-14 14:23:14 +01:00
Jonathan Wakely 0b9fc9fee8 re PR libstdc++/66018 (opendir configure test not working when GCC_NO_EXECUTABLES)
PR libstdc++/66018
	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for struct
	dirent.d_type.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_STRUCT_DIRENT_D_TYPE): Remove.

From-SVN: r223194
2015-05-14 12:47:19 +01:00
Eric Botcazou 9b92a9f3b6 sjlj.m4: New file.
config/
	* sjlj.m4: New file.
libgcc/
	* configure.ac: Include config/sjlj.m4.
	Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust.
	* config.in: Regenerate.
	* configure: Likewise.
	* config.host: Replace enable_sjlj_exceptions by ac_cv_sjlj_exceptions.
libjava/
	* configure.ac: Include config/sjlj.m4.
	Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust.
	* include/config.h.in: Regenerate.
	* configure: Likewise.
	* exception.cc: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__.
	* stacktrace.cc: Likewise.
	* include/default-signal.h: Likewise.
	* sysdep/i386/backtrace.h: Likewise.
libobjc/
	* configure.ac: Remove manual SJLJ check.
	* config.h.in: Regenerate.
	* configure: Likewise.
	* exception.c: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__.
libstdc++-v3/
	* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete.
	* configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS.
	* config.h.in: Regenerate.
	* configure: Likewise.
	* libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by
	__USING_SJLJ_EXCEPTIONS__.
	* libsupc++/eh_throw.cc: Likewise.
	* libsupc++/eh_ptr.cc: Likewise.
	* doc/html/manual/appendix_porting.html: Remove
	GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
	* doc/xml/manual/build_hacking.xml: Likewise.
	* doc/html/manual/configure.html: Remove --enable-sjlj-exceptions.
	* doc/xml/manual/configure.xml: Likewise.

From-SVN: r223181
2015-05-13 21:15:31 +00:00
Jonathan Wakely 098aac94ef shared_ptr_base.h (__shared_count(unique_ptr&&)): Check for nullptr (LWG 2415).
* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check
	for nullptr (LWG 2415).
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test
	construction from empty unique_ptr.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

From-SVN: r223170
2015-05-13 17:42:18 +01:00
Jonathan Wakely 49d50b6b8f stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454).
* include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
	Define (LWG 2454).
	* testsuite/20_util/raw_storage_iterator/base.cc: New.

From-SVN: r223162
2015-05-13 14:54:46 +01:00
Jonathan Wakely e6508eaf69 future (packaged_task(allocator_arg_t, const A&, F&&): Remove explicit (LWG 2407).
* include/std/future (packaged_task(allocator_arg_t, const A&, F&&):
	Remove explicit (LWG 2407).

From-SVN: r223161
2015-05-13 14:54:40 +01:00
Jonathan Wakely bcb896abe8 basic_string.h (basic_string::basic_string()): Make noexcept conditional on allocator (LWG 2455).
* include/bits/basic_string.h (basic_string::basic_string()): Make
	noexcept conditional on allocator (LWG 2455).

From-SVN: r223160
2015-05-13 14:32:36 +01:00
Jonathan Wakely d0cad9fef0 * include/std/complex (polar): Check for negative rho (LWG 2459).
From-SVN: r223159
2015-05-13 14:32:31 +01:00
Jonathan Wakely ac68f97cfe tuple (apply): Handle pointers to member (LWG 2418).
* include/experimental/tuple (apply): Handle pointers to member (LWG
	2418).
	* include/std/functional (_Mem_fn_base): Make constructors constexpr.
	(_Maybe_wrap_member_pointer::__do_wrap): Make constexpr.
	* testsuite/experimental/tuple/apply.cc: Test pointer to member.

From-SVN: r223158
2015-05-13 14:12:48 +01:00
Jonathan Wakely 9933eb862e * include/bits/random.h (seed_seq): More noexcept (LWG 2440).
From-SVN: r223155
2015-05-13 13:21:52 +01:00
Jonathan Wakely 32e6a60e3a alloc_traits.h (_S_max_size): Implement LWG 2466.
* include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466.
	* testsuite/20_util/allocator_traits/members/max_size.cc: Adjust.
	* testsuite/23_containers/forward_list/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/map/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/multimap/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/multiset/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/set/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/allocator/minimal.cc:
	Likewise.
	* testsuite/util/testsuite_allocator.h: Remove unused parameter.

From-SVN: r223154
2015-05-13 13:21:45 +01:00
Jonathan Wakely 32ff3768b1 acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Re-enable on solaris.
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Re-enable on solaris.
	* configure: Regenerate.

From-SVN: r223136
2015-05-13 12:07:38 +01:00
Michael Haubenwallner 6ef9367656 libstdc++: Bump to automake 1.11.6
2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* Makefile.in: Regenerated with automake-1.11.6.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* doc/Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* python/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* src/c++11/Makefile.in: Likewise.
	* src/c++98/Makefile.in: Likewise.
	* src/filesystem/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r223125
2015-05-13 10:51:03 +00:00
Jason Merrill 839473d010 synopsis.cc: Add _GLIBCXX14_CONSTEXPR.
* testsuite/20_util/headers/functional/synopsis.cc: Add
	_GLIBCXX14_CONSTEXPR.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Likewise.

From-SVN: r222975
2015-05-09 20:46:12 -04:00
Jason Merrill f8356d52f2 std_c++0x_neg.cc: Add -std=c++98.
* testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/1.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/2.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/3.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/4.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/5.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/6.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/7.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/3946.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/20_util/headers/functional/synopsis.cc: Add -Wno-deprecated.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust expected errors.
	* testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:  Likewise.
	* testsuite/ext/array_allocator/1.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/2.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/26875.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/3.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_allocate_max_size.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_deallocate_null.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_delete.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_new.cc: Add -Wno-deprecated.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Prune follow-on error.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Add -std=c++98 -fno-show-column.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc: Add -std=c++98.
	* testsuite/tr1/6_containers/utility/pair.cc: Add -std=c++98.
	* testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Add -std=c++98.

From-SVN: r222965
2015-05-09 00:50:30 -04:00
Jason Merrill 6cd9cb89eb Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
* src/c++98/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
	* src/c++98/Makefile.in: Regenerate.
	* src/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
	* src/Makefile.in: Regenerate.

From-SVN: r222964
2015-05-09 00:50:23 -04:00
Jason Merrill 8243e2a9d0 c.opt (Wterminate): New.
gcc/c-family/
	* c.opt (Wterminate): New.
gcc/cp/
	* cp-gimplify.c (cp_genericize_r): Track TRY_BLOCK and
	MUST_NOT_THROW_EXPR, warn about a THROW_EXPR directly within a
	MUST_NOT_THROW_EXPR.
	(cp_genericize_data): Add try_block field.
	(cp_genericize_tree): Initialize it.
	* except.c (expand_end_catch_block): Set TREE_NO_WARNING on
	implicit rethrow.

From-SVN: r222842
2015-05-05 22:25:01 -04:00
Jonathan Wakely f6341d8d09 re PR libstdc++/51617 ([C++0x] async(f) isn't.)
PR libstdc++/51617
	* include/std/future (async): Change default policy to launch::async.

From-SVN: r222793
2015-05-05 02:56:47 +01:00
Jonathan Wakely 563777d7fc any (any::_Storage): Fix alignment of buffer.
* include/experimental/any (any::_Storage): Fix alignment of buffer.
	(any::_Internal): Check alignment of type.
	* testsuite/experimental/any/cons/aligned.cc: New.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r222729
2015-05-02 19:19:39 +01:00
Jonathan Wakely b4f504de77 iterator (ostream_joiner): Simplify by using the injected-class-name and the ostream_type typedef.
* include/experimental/iterator (ostream_joiner): Simplify by using
	the injected-class-name and the ostream_type typedef.

From-SVN: r222728
2015-05-02 19:03:20 +01:00
Jonathan Wakely a623b6f011 iterator: New.
* include/experimental/iterator: New. Define ostream_joiner.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* testsuite/experimental/iterator/make_ostream_joiner.cc: New.
	* testsuite/experimental/iterator/ostream_joiner.cc: New.
	* testsuite/experimental/iterator/requirements.cc: New.
	* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r222727
2015-05-02 18:14:25 +01:00
Jonathan Wakely 6c0b8a537c numeric: New.
* include/experimental/numeric: New. Define gcd and lcm.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* testsuite/experimental/numeric/gcd.cc: New.
	* testsuite/experimental/numeric/lcm.cc: New.
	* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r222724
2015-05-02 16:18:36 +01:00
Edward Smith-Rowland fe4b6acbff Revert addition of feature macros from other headers per latest SD-6.
2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>

        Revert addition of feature macros from other headers per latest SD-6.
        * include/experimental/deque: Remove feature-test macro.
        * include/experimental/forward_list: Ditto.
        * include/experimental/list: Ditto.
        * include/experimental/map: Ditto.
        * include/experimental/set: Ditto.
        * include/experimental/string: Ditto.
        * include/experimental/unordered_map: Ditto.
        * include/experimental/unordered_set: Ditto.

From-SVN: r222722
2015-05-02 12:48:32 +00:00
Jonathan Wakely 9407c6fa53 any (any::_Storage): Make non-copyable.
* include/experimental/any (any::_Storage): Make non-copyable.
	(any::any): Do not copy _Storage object.
	(any::operator=): Implement more efficiently than swapping.
	(any::swap): Use new _Op_xfer operation.
	(any::_Op::_Op_xfer): New enumerator.
	(_Manager_internal::_S_alloc): Remove unused function.
	(_Manager_internal::_S_create, _Manager_external::_S_create): Use out
	parameter instead of returning a _Storage object.
	(_Manager_internal::_S_manage, _Manager_external::_S_manage): Add
	_Op_xfer operation for moving and swapping.
	* testsuite/experimental/any/cons/nontrivial.cc: New.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r222721
2015-05-02 13:38:44 +01:00
Jonathan Wakely 5b244a78dc fs_path.h (filesystem_error::~filesystem_error): Declare.
* include/experimental/fs_path.h (filesystem_error::~filesystem_error):
	Declare.
	* src/filesystem/path.cc (filesystem_error::~filesystem_error):
	Define.

From-SVN: r222720
2015-05-02 12:36:55 +01:00
Jonathan Wakely cb2ef49e83 re PR libstdc++/65978 (missing constexpr on std::forward_as_tuple and std::tie (LWG issues 2275 and 2301))
PR libstdc++/65978
	* include/std/tuple (forward_as_tuple, tie): Add constexpr.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Uncomment
	and fix tests for forward_as_tuple and tie.

From-SVN: r222719
2015-05-02 12:20:03 +01:00
Jonathan Wakely 58f270df25 ops.cc (last_write_time): Set timespec members explicitly instead of with a braced-init-list.
* src/filesystem/ops.cc (last_write_time) [_GLIBCXX_USE_UTIMENSAT]:
	Set timespec members explicitly instead of with a braced-init-list.
	[_GLIBCXX_HAVE_UTIME_H]: Use lambda to handle st_atime being a macro.

From-SVN: r222718
2015-05-02 10:51:49 +01:00
Edward Smith-Rowland 9c0717ed3f deque: Add feature-test macro.
2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/experimental/deque: Add feature-test macro.
	* include/experimental/forward_list: Ditto.
	* include/experimental/list: Ditto.
	* include/experimental/map: Ditto.
	* include/experimental/set: Ditto.
	* include/experimental/string: Ditto.
	* include/experimental/unordered_map: Ditto.
	* include/experimental/unordered_set: Ditto.

From-SVN: r222713
2015-05-02 02:01:35 +00:00
Jonathan Wakely b275f0cbe5 * include/experimental/memory: Correct feature-test macro.
From-SVN: r222708
2015-05-01 22:26:24 +01:00
Jonathan Wakely 64b07900f1 memory: Add feature-test macro.
* include/experimental/memory: Add feature-test macro.
	* include/experimental/vector: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r222707
2015-05-01 22:01:17 +01:00
Ville Voutilainen 261b7e8af2 Implement observer_ptr.
2015-05-01  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement observer_ptr.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/memory: New.
	* testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New.
	* testsuite/experimental/memory/observer_ptr/cons/cons.cc: New.
	* testsuite/experimental/memory/observer_ptr/hash/hash.cc: New.
	* testsuite/experimental/memory/observer_ptr/make_observer.cc: New.
	* testsuite/experimental/memory/observer_ptr/relops/relops.cc: New.
	* testsuite/experimental/memory/observer_ptr/requirements.cc: New.
	* testsuite/experimental/memory/observer_ptr/swap/swap.cc: New.
	* testsuite/experimental/memory/observer_ptr/typedefs.cc: New.

From-SVN: r222706
2015-05-01 22:01:11 +01:00
Jonathan Wakely 4ad376273d * src/filesystem/path.cc (path::compare): Do not copy strings.
From-SVN: r222704
2015-05-01 21:05:42 +01:00
Jonathan Wakely bf53e6a9dd acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h> is not available.
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h>
	is not available.
	(GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* configure.ac: Check for utime.h
	* include/experimental/fs_path.h (path::string<>)
	[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove stray typename keyword.
	* src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H] (DIR, opendir,
	closedir, dirent, readdir_r): Replace dummy functions with #error.
	(native_readdir, _Dir::advance): Use readdir when readdir_r is missing.
	* src/filesystem/ops.cc (do_stat, is_set): Make inline.
	(last_write_time) [!_GLIBCXX_USE_UTIMENSAT]: Use utime.
	(permissions) [!_GLIBCXX_USE_FCHMODAT]: Use chmod.
	(space, temp_directory_path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Set
	error_code.

From-SVN: r222703
2015-05-01 20:48:00 +01:00
Jonathan Wakely a00d74c490 fs_path.h (path::_List): Use vector instead of list.
* include/experimental/fs_path.h (path::_List): Use vector instead of
	list.
	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Adapt.
	* src/filesystem/path.cc: Use std::prev instead of decrementing
	rvalues. Fix whitespace.
	* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
	Do not decrement iterators before begin.

From-SVN: r222702
2015-05-01 20:47:55 +01:00
Jonathan Wakely d6e023f3a0 fs_dir.h: Fix use of non-reserved names.
* include/experimental/fs_dir.h: Fix use of non-reserved names.
	* include/experimental/fs_ops.h: Likewise.
	* include/experimental/fs_path.h: Likewise.
	* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Use
	C++11 when checking for support.

From-SVN: r222695
2015-05-01 18:55:33 +01:00
Jonathan Wakely e9cd006414 locale_classes.h (locale::facet): Delete copy operations in C++11 mode.
* include/bits/locale_classes.h (locale::facet): Delete copy
	operations in C++11 mode.

From-SVN: r222694
2015-05-01 17:50:31 +01:00
Jonathan Wakely ff0164b48b * include/bits/alloc_traits.h (__alloc_rebind): Change parameter name.
From-SVN: r222686
2015-05-01 16:22:49 +01:00
Jonathan Wakely ce1b114a9c acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
	* configure: Regenerate.

From-SVN: r222685
2015-05-01 16:11:05 +01:00
Edward Smith-Rowland ea365e01ef Inline one-line erasure dispatch functions.
2015-05-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Inline one-line erasure dispatch functions.
	* include/experimental/forward_list (erase_if(), erase()): Inline.
	* include/experimental/list (erase_if(), erase()): Inline.
	* include/experimental/map (erase_if(*)): Inline.
	* include/experimental/set (erase_if(*)): Inline.
	* include/experimental/string (erase_if(), erase()): Inline.
	* include/experimental/unordered_map (erase_if(*)): Inline.
	* include/experimental/unordered_set (erase_if(*)): Inline.

From-SVN: r222684
2015-05-01 15:00:46 +00:00
Jonathan Wakely 1d15ed75ab intro.xml: Link to new status_cxx2017.xml file.
* doc/xml/manual/intro.xml: Link to new status_cxx2017.xml file.
	* doc/xml/manual/status_cxx2011.xml: Update status tables.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: New.
	* doc/xml/manual/using.xml: Fix typo.
	* doc/html/*: Regenerate.

From-SVN: r222675
2015-05-01 12:02:24 +01:00
Jonathan Wakely 6fc456c36b memory (pointer_safety, [...]): Define.
* include/std/memory (pointer_safety, declare_reachable,
	undeclare_reachable, declare_no_pointers, undeclare_no_pointers,
	get_pointer_safety): Define.
	* testsuite/20_util/pointer_safety/1.cc: New.

From-SVN: r222674
2015-05-01 12:02:18 +01:00
Jonathan Wakely 0ca7ba9aa6 Implement N4100 File System TS
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define.
	(GLIBCXX_CHECK_FILESYSTEM_DEPS): Define.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Enable filesystem TS and check its dependencies.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in,
	__str_codecvt_out): Move code conversion logic from wstring_convert
	into new global functions.
	(wstring_convert::to_bytes, wstring_convert::from_bytes): Use new
	functions.
	(wstring_convert::_M_conv): Remove.
	* include/bits/quoted_string.h (_Quoted_string): Split out of iomanip.
	* include/experimental/filesystem: New.
	* include/experimental/fs_dir.h: New.
	* include/experimental/fs_fwd.h: New.
	* include/experimental/fs_ops.h: New.
	* include/experimental/fs_path.h: New.
	* include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h.
	* python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add.
	* src/Makefile.am (SUBDIRS): Add filesystem.
	* src/Makefile.in: Regenerate.
	* src/filesystem/Makefile.am: New.
	* src/filesystem/Makefile.in: New.
	* src/filesystem/dir.cc: New.
	* src/filesystem/ops.cc: New.
	* src/filesystem/path.cc: New.
	* testsuite/experimental/filesystem/operations/absolute.cc: New.
	* testsuite/experimental/filesystem/operations/copy.cc: New.
	* testsuite/experimental/filesystem/operations/current_path.cc: New.
	* testsuite/experimental/filesystem/path/append/path.cc: New.
	* testsuite/experimental/filesystem/path/assign/assign.cc: New.
	* testsuite/experimental/filesystem/path/assign/copy.cc: New.
	* testsuite/experimental/filesystem/path/compare/compare.cc: New.
	* testsuite/experimental/filesystem/path/compare/path.cc: New.
	* testsuite/experimental/filesystem/path/compare/strings.cc: New.
	* testsuite/experimental/filesystem/path/concat/path.cc: New.
	* testsuite/experimental/filesystem/path/concat/strings.cc: New.
	* testsuite/experimental/filesystem/path/construct/copy.cc: New.
	* testsuite/experimental/filesystem/path/construct/default.cc: New.
	* testsuite/experimental/filesystem/path/construct/locale.cc: New.
	* testsuite/experimental/filesystem/path/construct/range.cc: New.
	* testsuite/experimental/filesystem/path/decompose/extension.cc: New.
	* testsuite/experimental/filesystem/path/decompose/filename.cc: New.
	* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
	New.
	* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
	New.
	* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
	New.
	* testsuite/experimental/filesystem/path/decompose/root_name.cc:
	New.
	* testsuite/experimental/filesystem/path/decompose/root_path.cc:
	New.
	* testsuite/experimental/filesystem/path/decompose/stem.cc: New.
	* testsuite/experimental/filesystem/path/generic/generic_string.cc:
	New.
	* testsuite/experimental/filesystem/path/itr/traversal.cc: New.
	* testsuite/experimental/filesystem/path/modifiers/clear.cc: New.
	* testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
	New.
	* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
	New.
	* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
	New.
	* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
	New.
	* testsuite/experimental/filesystem/path/modifiers/swap.cc: New.
	* testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New.
	* testsuite/experimental/filesystem/path/query/empty.cc: New.
	* testsuite/experimental/filesystem/path/query/has_extension.cc: New.
	* testsuite/experimental/filesystem/path/query/has_filename.cc: New.
	* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
	New.
	* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
	New.
	* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
	New.
	* testsuite/experimental/filesystem/path/query/has_root_name.cc:
	New.
	* testsuite/experimental/filesystem/path/query/has_root_path.cc:
	New.
	* testsuite/experimental/filesystem/path/query/has_stem.cc: New.
	* testsuite/experimental/filesystem/path/query/is_relative.cc: New.
	* testsuite/util/testsuite_fs.h: New.

From-SVN: r222654
2015-04-30 20:11:52 +01:00
Edward Smith-Rowland c0b12dad93 Add fundamentals TR container erasure.
2015-04-30  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Add fundamentals TR container erasure.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Add new headers.
	* include/experimental/array: New.
	* include/experimental/deque: New.
	* include/experimental/erase_if.tcc: New.
	* include/experimental/forward_list: New.
	* include/experimental/list: New.
	* include/experimental/map: New.
	* include/experimental/set: New.
	* include/experimental/string: New.
	* include/experimental/unordered_map: New.
	* include/experimental/unordered_set: New.
	* include/experimental/vector: New.
	* testsuite/experimental/deque/erasure.cc: New.
	* testsuite/experimental/forward_list/erasure.cc: New.
	* testsuite/experimental/list/erasure.cc: New.
	* testsuite/experimental/map/erasure.cc: New.
	* testsuite/experimental/set/erasure.cc: New.
	* testsuite/experimental/string/erasure.cc: New.
	* testsuite/experimental/unordered_map/erasure.cc: New.
	* testsuite/experimental/unordered_set/erasure.cc: New.
	* testsuite/experimental/vector/erasure.cc: New.

From-SVN: r222630
2015-04-30 14:43:19 +00:00
François Dumont e1c444fef0 2015-04-30 François Dumont <fdumont@gcc.gnu.org>
* include/bits/cpp_type_traits.h
	(__gnu_cxx::__is_normal_iterator): Delete.
	* include/bits/stl_algobase.h (std::__niter_base): Adapt.
	* include/bits/stl_iterator.h (__make_reverse_iterator): New in C++11.
	(std::__niter_base): Overloads for std::reverse_iterator,
	__gnu_cxx::__normal_iterator and std::move_iterator.

From-SVN: r222617
2015-04-30 11:36:52 +00:00
François Dumont 2f132d1d2c hashtable_policy.h (_Prime_rehash_policy::_S_n_primes): Delete.
2015-04-30  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes):
	Delete.
	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
	Remove usage of latter and compute size of the prime numbers array
	locally.

From-SVN: r222611
2015-04-30 07:13:37 +00:00
Doug Evans 8996b63b09 re PR libstdc++/65839 (xmethods need updating once gdb decides how to fix 18285)
PR libstdc++/65839
	* python/libstdcxx/v6/xmethods.py (get_bool_type): New function.
	Replace all lookups of "bool" with this.
	(get_std_size_type): New function.  Replace all lookups of std::size_t
	with this.
	(*Worker): New method get_result_type.
	(DequeWorkerBase.__init__): New arg val_type.  All callers updated.
	(ListWorkerBase.__init__): New arg val_type.  All callers updated.
	(UniquePtrGetWorker.__init__): New arg elem_type.  All callers updated.
	Delete setting of name, enabled.
	(UniquePtrDerefWorker.__init__): New arg elem_type.  All callers
	updated.  Delete setting of name.
	(UniquePtrMethodsMatcher): Rewrite for consistency with all other
	libstdc++ xmethod matchers.
	* testsuite/libstdc++-xmethods/array.cc: Add whatis tests.
	* testsuite/libstdc++-xmethods/associative-containers.cc: Ditto.
	* testsuite/libstdc++-xmethods/deque.cc: Ditto.
	* testsuite/libstdc++-xmethods/forwardlist.cc: Ditto.
	* testsuite/libstdc++-xmethods/list.cc: Ditto.
	* testsuite/libstdc++-xmethods/unique_ptr.cc: Ditto.
	* testsuite/libstdc++-xmethods/vector.cc: Ditto.

From-SVN: r222599
2015-04-29 22:50:31 +00:00
Doug Evans b693b8792e Use consistent naming for value type attributes.
* python/libstdcxx/v6/xmethods.py (ArrayWorkerBase): Rename _valtype
	to _val_type.
	(ArraySizeWorker, ArrayEmptyWorker): Ditto.
	(ArrayFrontWorker, ArrayBackWorker): Ditto.
	(ArrayAtWorker, ArraySubscriptWorker): Ditto.
	(DequeWorkerBase): Rename elemtype to val_type.
	(ForwardListWorkerBase): Rename _elem_type to _val_type.
	(ForwardListFrontWorker): Ditto.  And rename elem_address to
	val_address.
	(ForwardListMethodsMatcher): Rename elem_type to val_type.
	(VectorWorkerBase): Rename _elemtype to _val_type.

From-SVN: r222596
2015-04-29 21:57:04 +00:00
Jonathan Wakely 952bc7a64c re PR libstdc++/65760 (invalid use of incomplete type with std::is_convertible<C, C>)
PR libstdc++/65760
	* include/std/functional (__check_func_return_type): Use is_same to
	avoid using _is_convertible on incomplete types.
	* testsuite/20_util/function/65760.cc: New.

From-SVN: r222581
2015-04-29 17:07:47 +01:00
Jonathan Wakely f970a17d6f re PR libstdc++/64657 (Support iterators with overloaded operator-comma)
PR libstdc++/64657
	* include/bits/basic_string (basic_string::_S_copy_chars): Cast
	expression to void.
	* include/bits/locale_facets_nonio.tcc (money_get::_M_extract,
	time_get::_M_extract_num, time_get::_M_extract_name,
	time_get::_M_extract_wday_or_month): Likewise.
	* include/bits/stl_algo.h (__includes, __replace_copy_if,
	__is_sorted_until, __is_permutation, transform): Likewise.
	* include/bits/stl_algobase.h (swap_ranges, __copy_move::__copy_m,
	__equal::equal, __lexicographical_compare_impl, equal): Likewise.
	* include/bits/stl_numeric.h (inner_product): Likewise.
	* include/bits/stl_uninitialized.h (__uninitialized_copy_a): Likewise.
	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper,
	input_iterator_wrapper): Declare unusable comma operator.
	* testsuite/21_strings/basic_string/cons/char/64657.cc: New.
	* testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc:
	New.

From-SVN: r222579
2015-04-29 16:22:13 +01:00
Doug Evans 874ef163cf list.cc (_GLIBCXX_USE_CXX11_ABI): Define to zero.
* testsuite/libstdc++-xmethods/list.cc (_GLIBCXX_USE_CXX11_ABI):
	Define to zero.

From-SVN: r222556
2015-04-29 00:17:09 +00:00
Jonathan Wakely 2e7e2075d1 stl_algo.h (random_shuffle): Only define for hosted implementations.
* include/bits/stl_algo.h (random_shuffle): Only define for hosted
	implementations.

From-SVN: r222542
2015-04-28 20:42:56 +01:00
Jonathan Wakely 0088583b25 Makefile.am (SUBDIRS): Move python to hosted_source.
* Makefile.am (SUBDIRS): Move python to hosted_source.
	* Makefile.in: Regenerate.
	* acinclude.m4 (glibcxx_SUBDIRS): Reorder.
	* configure: Regenerate.

From-SVN: r222541
2015-04-28 20:42:51 +01:00
Marc Glisse fa9ac91269 re PR libstdc++/65883 (numeric_limits<unsigned __int128>::max() returns incorrect value)
2015-04-28  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/65883
	* include/std/limits (numeric_limits): Add missing unsigned.

From-SVN: r222540
2015-04-28 19:35:49 +00:00
Stephan Bergmann 77e9546989 vector (_Safe_vector::operator=): Add missing returns.
2015-04-28  Stephan Bergmann  <sbergman@redhat.com>

	* include/debug/vector (_Safe_vector::operator=): Add missing returns.

From-SVN: r222532
2015-04-28 16:05:27 +01:00
Jonathan Wakely 73d81d3a6b re PR libstdc++/60333 (type_traits make_signed, make_unsigned missing support for long long enumerations)
PR libstdc++/60333
	* include/std/type_traits (__make_unsigned_selector<_Tp, false, true>):
	Handle enumeration types larger than sizeof(long).
	(__make_signed_selector<_Tp, false, true>): Find unsigned type then
	make it signed.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
	dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.

From-SVN: r222526
2015-04-28 14:21:54 +01:00
Jonathan Wakely 956d18149e re PR libstdc++/61645 (forward_list::splice_after shall not throw exceptions)
PR libstdc++/61645
	* include/bits/forward_list.h (forward_list::splice_after): Add
	noexcept.
	* include/bits/forward_list.tcc (forward_list::splice_after):
	Likewise.

From-SVN: r222525
2015-04-28 14:05:33 +01:00
Jonathan Wakely d747ee05e3 re PR libstdc++/65631 (seed_seq should not be copyable)
PR libstdc++/65631
	* include/bits/random.h (seed_seq) Define copy constructor and copy
	assignment as deleted.
	* testsuite/26_numerics/random/seed_seq/cons/65631.cc: New.

From-SVN: r222524
2015-04-28 13:35:30 +01:00
Jonathan Wakely 196e0493cb exception (uncaught_exceptions): Add comment.
* libsupc++/exception (uncaught_exceptions): Add comment. Reorder #if.
	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
	Use -std=gnu++1z. Check feature-test macro.

From-SVN: r222523
2015-04-28 13:07:40 +01:00
Jonathan Wakely bd1eb5e092 type_traits (void_t): Add.
* include/std/type_traits (void_t): Add.
	* testsuite/20_util/void_t/1.cc: New.

From-SVN: r222522
2015-04-28 13:07:34 +01:00
Tim Shen e4846be7dd regex.tcc: Handle regex_constants::__polynomial.
* include/bits/regex.tcc: Handle regex_constants::__polynomial.
	* include/bits/regex_automaton.tcc: Throw exception when parsing
	back-reference with flag __polynomial.
	* include/bits/regex_constants.h: Add extension flag
	syntax_option_type __polynomial.
	* bits/regex_executor.tcc: Still let BFS process ECMAScript.
	Alternative operation will be fixed in the coming refactoring.
	* testsuite/28_regex/algorithms/regex_search/61424.cc: Turn
	loose match_search_debug to use DFS only.

From-SVN: r222500
2015-04-28 04:16:48 +00:00
Sandra Loosemore 1a9f259288 re PR libstdc++/65909 (check_v3_target_namedlocale blows up on targets that don't support command-line arguments)
2015-04-27  Sandra Loosemore  <sandra@codesourcery.com>

	PR libstdc++/65909

	libstdc++-v3/
	* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
	Make the generated test program fail gracefully if the target
	doesn't	support passing command-line arguments.

From-SVN: r222497
2015-04-27 22:40:56 -04:00
Federico Lenarduzzi 03e73da676 eh_catch.cc (uncaught_exception, [...]): Return false or zero if the library is built without exceptions.
2015-04-27  Federico Lenarduzzi  <federico.lenarduzzi@tallertechnologies.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions):
	Return false or zero if the library is built without exceptions.
	* libsupc++/eh_term_handler.cc: Disable verbose terminate handler if
	the library is built without exceptions.

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

From-SVN: r222484
2015-04-27 22:06:17 +01:00
Ville Voutilainen 913ae610c2 gnu.ver: Fix comment.
2015-04-27  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* config/abi/pre/gnu.ver: Fix comment.

From-SVN: r222483
2015-04-27 21:52:14 +01:00
Ville Voutilainen 03a16cc404 Add support for std::uncaught_exceptions.
2015-04-27  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Add support for std::uncaught_exceptions.
	* acinclude.m4: Bump libtool_VERSION.
	* config/abi/pre/gnu.ver: Export the new symbol.
	* configure: Regenerate.
	* libsupc++/eh_catch.cc (uncaught_exceptions): New.
	* libsupc++/exception (uncaught_exceptions): New.
	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: New.
	* testsuite/util/testsuite_abi.cc: Add 3.4.22 as the latest version.

From-SVN: r222482
2015-04-27 21:40:29 +01:00
Dmitry Prokoptsev f5eedc3915 re PR libstdc++/62258 (uncaught_exception() equals to `true' after rethrow_exception())
2015-04-27  Dmitry Prokoptsev  <dprokoptsev@gmail.com>
	    Michael Hanselmann  <public@hansmi.ch>

	PR libstdc++/62258
	* libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
	uncaught exceptions.
	* testsuite/18_support/exception_ptr/62258.cc: New.

Co-Authored-By: Michael Hanselmann <public@hansmi.ch>

From-SVN: r222480
2015-04-27 20:44:30 +01:00
Jonathan Wakely 991607ab25 extensions.xml: Add cross-reference.
* doc/xml/manual/extensions.xml: Add cross-reference.
	* doc/html/manual/ext_compile_checks.html: Regenerate.

From-SVN: r222462
2015-04-27 13:30:26 +01:00
Szabolcs Nagy 85da5c3024 libstdc++, libgfortran gthr workaround for musl
On behalf of szabolcs.nagy@arm.com

[libstdc++-v3/]
2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define.
	* configure.host (os_include_dir): Set to "os/generic" for linux-musl*.

[libgfortran/]
2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* acinclude.m4 (GTHREAD_USE_WEAK): Define as 0 for *-*-musl*.
	* configure: Regenerate.

From-SVN: r222329
2015-04-22 14:24:11 +00:00
Renlin Li 04934297b8 [PATCH][libstc++v3]Add new dg-require-thread-fence directive.
libstdc++-v3/

2015-04-22  Renlin Li  <renlin.li@arm.com>

	* testsuite/lib/dg-options.exp (dg-require-thread-fence): New.
	* testsuite/lib/libstdc++.exp (check_v3_target_thread_fence): New.
	* testsuite/29_atomics/atomic_flag/clear/1.cc: Use it.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise.

From-SVN: r222324
2015-04-22 14:01:02 +00:00
Jonathan Wakely 8a29fdfd23 configure.xml: Update descriptions of options affecting dual ABI and add cross-references.
* doc/xml/manual/configure.xml: Update descriptions of options
	affecting dual ABI and add cross-references.
	* doc/xml/manual/strings.xml: Clarify that string isn't COW now.
	* doc/xml/manual/using.xml: Document ABI transition.
	* doc/html/*: Regenerate.

From-SVN: r222262
2015-04-21 11:38:43 +01:00
Jonathan Wakely 0ee59f1f05 abi.xml: Use uppercase for C++ Standard Library.
* doc/xml/manual/abi.xml: Use uppercase for C++ Standard Library.
	* doc/xml/manual/using.xml: Document newer -std options. Use better
	examples of nested namespaces.

From-SVN: r222261
2015-04-21 11:27:18 +01:00
Jonathan Wakely 9adc2d48ac concurrency_extensions.xml: Update documentation on atomics.
* doc/xml/manual/concurrency_extensions.xml: Update documentation
	on atomics.
	* doc/xml/manual/using.xml: Likewise. Improve markup.
	* doc/html/*: Regenerate.

From-SVN: r222230
2015-04-20 12:07:50 +01:00
Rainer Orth eea6e98958 Ignore elfdump warnings in scripts/extract_symvers.pl
* scripts/extract_symvers.pl: Ignore elfdump error output.

From-SVN: r222117
2015-04-15 07:48:59 +00:00
Marc Glisse 194571f10e re PR libstdc++/61347 (std::distance(list.first(),list.end()) in O(1))
2015-04-14  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/61347
	* include/bits/stl_iterator_base_funcs.h (_List_iterator,
	_List_const_iterator): Declare.
	(__distance): Declare new overloads for _List_iterator and
	_List_const_iterator.
	* include/bits/stl_list.h (__distance): New overloads for
	_List_iterator and _List_const_iterator.
	* testsuite/23_containers/list/61347.cc: New testcase.

From-SVN: r222082
2015-04-14 11:02:48 +00:00
Jonathan Wakely 453e2916ce evolution.xml: Fix typos.
* doc/xml/manual/evolution.xml: Fix typos.
	* doc/html/manual/api.html: Regenerate.

From-SVN: r222081
2015-04-14 11:08:58 +01:00
Hans-Peter Nilsson 0357625940 Fix regression for libstdc++-v3/testsuite/29_atomics/atomic/62259.cc as...
Fix regression for libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
as reported at <http://gcc.gnu.org/ml/gcc-patches/2015-04/msg00543.html>.

	* testsuite/29_atomics/atomic/62259.cc: Assert atomic
	alignment is larger-equal, not equal, to default alignment.

From-SVN: r222072
2015-04-14 00:37:57 +00:00
Jonathan Wakely 1fcbcb6b26 re PR libstdc++/65754 (missing exports for fstream constructors)
PR libstdc++/65754
	* config/abi/pre/gnu.ver: Export base object constructors for
	fstreams.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
	* testsuite/27_io/basic_fstream/cons/base.cc: New.

From-SVN: r222059
2015-04-13 19:41:42 +01:00
Jonathan Wakely 040175d59c evolution.xml: Document changes since 4.5 release.
* doc/xml/manual/evolution.xml: Document changes since 4.5 release.
	* doc/html/*: Regenerate.

From-SVN: r222055
2015-04-13 17:21:33 +01:00
Uros Bizjak a57013168d baseline_symbols.txt: Update.
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r222018
2015-04-12 08:40:39 +02:00
Andreas Schwab cb86fa2234 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r221987
2015-04-10 20:07:09 +00:00
Andreas Schwab 2fb17d35e4 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r221986
2015-04-10 20:05:48 +00:00
Jonathan Wakely cd80c79ce7 test.xml: Improve documentation on running a subset of tests.
* doc/xml/manual/test.xml: Improve documentation on running a subset
	of tests.
	* doc/html/manual/test.html: Regenerate.

From-SVN: r221985
2015-04-10 20:59:32 +01:00
Bill Schmidt 00778bed5f baseline_symbols.txt: Update for GCC 5.1 release.
2015-04-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
	for GCC 5.1 release.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
	Likewise.

From-SVN: r221974
2015-04-10 13:43:09 +00:00
Jonathan Wakely c3d71b62c6 shared_mutex (shared_timed_mutex): Only use pthread_rwlock_t when the POSIX Timeouts option is supported.
* include/std/shared_mutex (shared_timed_mutex): Only use
	pthread_rwlock_t when the POSIX Timeouts option is supported.
	* testsuite/30_threads/shared_lock/cons/5.cc: Remove
	dg-require-gthreads-timed.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.

From-SVN: r221971
2015-04-10 10:00:00 +01:00
Jonathan Wakely 43b0e124e4 shared_mutex (shared_timed_mutex): Add comments to explain the logic in the non-pthread_rwlock_t version.
* include/std/shared_mutex (shared_timed_mutex): Add comments to
	explain the logic in the non-pthread_rwlock_t version.
	(_Mutex): Remove redundant type.
	(_M_n_readers): Rename to _S_max_readers.
	(_M_write_entered, _M_readers): New convenience functions.
	(lock, lock_shared, try_lock_shared, unlock_shared): Use convenience
	functions. Use predicates with condition variables. Simplify bitwise
	operations.
	(try_lock_for, try_shared_lock_for): Convert duration to time_point
	and call try_lock_until or try_shared_lock_until respectively.
	(try_lock_until, try_shared_lock_until): Wait on the condition
	variables until the specified time passes.
	(unlock): Add Debug Mode assertion.
	(unlock_shared): Add Debug Mode assertion.
	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: New.

From-SVN: r221970
2015-04-10 09:59:54 +01:00
H.J. Lu 1bf137444b Update x32 baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.

From-SVN: r221953
2015-04-09 08:41:38 -07:00
Jonathan Wakely 4cbaaa459e re PR libstdc++/65147 (alignment of std::atomic object is not correct)
2015-04-09  Jonathan Wakely  <jwakely@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	PR libstdc++/65147
	* include/bits/atomic_base.h (__atomic_base<_ITp>): Increase
	alignment.
	* include/std/atomic (atomic): For types with a power of two size set
	alignment to at least the size.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
	* testsuite/29_atomics/atomic/65147.cc: New.
	* testsuite/29_atomics/atomic_integral/65147.cc: New.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r221945
2015-04-09 12:15:44 +01:00
Rainer Orth 9a165842d1 Update Solaris baselines
* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.

From-SVN: r221941
2015-04-09 07:05:41 +00:00
Jakub Jelinek 466df27b94 baseline_symbols.txt: Update.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r221933
2015-04-08 22:46:30 +02:00
Jonathan Wakely 744e26e71e re PR libstdc++/65630 (operator+ for new std::string not exported)
PR libstdc++/65630
	* config/abi/pre/gnu.ver: Export operator+ for new strings.
	* testsuite/21_strings/basic_string/operators/char/65630.cc: New.
	* testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New.

From-SVN: r221775
2015-03-30 18:52:37 +01:00
Tim Shen 2894311302 re PR libstdc++/65420 (Enumerators in std::regex_constants should be constexpr variables instead)
PR libstdc++/65420
	* include/bits/regex_constants.h: Use constexpr variables for flags.
	* testsuite/28_regex/constants/constexpr.cc: New testcase.

From-SVN: r221750
2015-03-28 04:17:12 +00:00
Jonathan Wakely 04f69fda7a re PR libstdc++/65499 (Missing "using namespace literals::chrono_literals" in std::chrono)
PR libstdc++/65499
	* include/std/chrono: Add using-directive for literals to std::chrono.
	* testsuite/20_util/duration/literals/65499.cc: New.

From-SVN: r221730
2015-03-27 12:45:10 +00:00
Jonathan Wakely d1a74a287e re PR libstdc++/58038 (std::this_thread::sleep_until can cause inifinite sleep)
PR libstdc++/58038
	PR libstdc++/60421
	* include/std/thread (this_thread::sleep_for): Check for negative
	durations.
	(this_thread::sleep_until): Check for times in the past.
	* testsuite/30_threads/this_thread/58038.cc: New.
	* testsuite/30_threads/this_thread/60421.cc: New.

From-SVN: r221708
2015-03-26 19:59:08 +00:00
Jonathan Wakely 4280698d09 re PR libstdc++/62259 (atomic class doesn't enforce required alignment on powerpc64)
PR libstdc++/62259
	PR libstdc++/65147
	* include/std/atomic (atomic<T>): Increase alignment for types with
	the same size as one of the integral types.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
	* testsuite/29_atomics/atomic/62259.cc: New.

From-SVN: r221703
2015-03-26 19:27:02 +00:00
Richard Henderson 8be568519b re PR libstdc++/65033 (C++11 atomics: is_lock_free result does not always match the real lock-free property)
PR libstdc++/65033

 * include/bits/atomic_base.h (__atomic_base<T>::is_lock_free): Build
 a fake pointer indicating type alignment.
 (__atomic_base<T *>::is_lock_free): Likewise.
 * include/std/atomic (atomic<T>::is_lock_free): Likewise.

From-SVN: r221701
2015-03-26 11:31:11 -07:00
Alan Lawrence 28fda0c459 re PR libstdc++/33394 (Add test case for Thread race segfault in std::string::append with -O and -s)
PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Use
	dg-additional-options.

From-SVN: r221666
2015-03-25 15:46:58 +00:00
Paolo Carlini ea348bbe59 re PR libstdc++/65543 (rvalue stream insertion and extraction operators incorrectly implemented)
2015-03-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/65543
	* include/std/istream (operator>>(basic_istream<>&&, _Tp&): Revert
	thinko in r150387.
	* include/std/ostream (operator<<(basic_ostream<>&&, const _Tp&):
	Likewise.
	* testsuite/27_io/rvalue_streams-2.cc: New.

From-SVN: r221655
2015-03-25 09:57:06 +00:00
Jonathan Wakely 9ccd0dba21 re PR libstdc++/33394 (Add test case for Thread race segfault in std::string::append with -O and -s)
PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Add test.

# Auto-generated commit message above this line, original below.
	PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Add test.

From-SVN: r221635
2015-03-24 14:47:32 +00:00
Jonathan Wakely 8dcf3d3c5d re PR libstdc++/64967 (Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace')
PR libstdc++/64967
	* acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
	* configure: Regenerate.
	* src/c++11/compatibility-c++0x.cc (error_category), generic_category,
	system_category): Use macros for versioned namespace.
	* src/c++11/futex.cc: Add missing end macro for versioned namespace.

From-SVN: r221600
2015-03-23 16:47:18 +00:00
James Greenhalgh c00acee464 [Patch Testsuite] Make all_attributes.cc in to (almost_)all_attributes.cc for ARM.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
	test for unused for ARM.
	* testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.

From-SVN: r221538
2015-03-20 17:20:12 +00:00
Jonathan Wakely df6d9c7f6a c++config (__gnu_cxx::__cxx11): Define new namespace.
* include/bits/c++config (__gnu_cxx::__cxx11): Define new namespace.
	* include/ext/codecvt_specializations.h (encoding_state,
	encoding_char_traits): Remove abi-tag and use inline namespace.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line.

From-SVN: r221533
2015-03-20 13:26:55 +00:00
Jason Merrill 7cb7357360 re PR c++/65046 (-Wabi-tag doesn't warn about variables or function return types)
PR c++/65046
	Automatically propagate ABI tags to variables and functions
	from their (return) type.
	* class.c (check_tag): Handle variables and functions.
	(mark_or_check_attr_tags): Split out from find_abi_tags_r.
	(mark_or_check_tags): Likewise.
	(mark_abi_tags): Use it.  Rename from mark_type_abi_tags.
	(check_abi_tags): Add single argument overload for decls.
	Handle inheriting tags for decls.
	* mangle.c (write_mangled_name): Call it.
	(mangle_return_type_p): Split out from write_encoding.
	(unmangled_name_p): Split out from write_mangled_name.
	(write_mangled_name): Ignore abi_tag on namespace.
	* cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
	* parser.c (cp_parser_namespace_definition): Set it.
	* name-lookup.c (handle_namespace_attrs): Use arguments. Warn
	about abi_tag attribute on non-inline namespace.
	* tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
	(handle_abi_tag_attribute): Allow tags on variables.

From-SVN: r221521
2015-03-19 15:31:48 -04:00
Jonathan Wakely 168ad5f5e3 re PR c++/65046 (-Wabi-tag doesn't warn about variables or function return types)
PR c++/65046
	* config/locale/gnu/messages_members.cc (Catalog_info, Catalogs,
	get_catalogs): Add abi-tag.
	* include/ext/codecvt_specializations.h (encoding_state,
	encoding_char_traits): Likewise.
	* src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise.
	* src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string,
	numpunct_shim, collate_shim, time_get_shim, moneypunct_shim,
	money_get_shim, money_put_shim, messages_shim): Likewise.
	* src/c++11/future.cc (future_error_category::message): Likewise.
	* src/c++11/system_error.cc (generic_error_category::message,
	system_error_category::message): Likewise.
	(__sso_string): Disable -Wabi-tag warnings.

From-SVN: r221497
2015-03-18 18:08:29 +00:00
Jonathan Wakely 2a9611d03b re PR libstdc++/13631 (Problems in messages)
PR libstdc++/13631
	* config/locale/gnu/messages_members.cc (get_glibc_msg): Fix fallback
	implementation for old glibc. Fix whitespace.

From-SVN: r221494
2015-03-18 16:17:47 +00:00
Jonathan Wakely 5e0216f173 acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
	    Torvald Riegel  <triegel@redhat.com>

	* acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/std/shared_mutex: Check _GLIBCXX_USE_PTHREAD_RWLOCK_T.
	(shared_timed_mutex::_M_rwlock): Use PTHREAD_RWLOCK_INITIALIZER.
	(shared_timed_mutex::lock_shared()): Retry on EAGAIN.
	(shared_timed_mutex::try_lock_shared_until()): Retry on EAGAIN and
	EDEADLK.

Co-Authored-By: Torvald Riegel <triegel@redhat.com>

From-SVN: r221484
2015-03-18 10:53:38 +00:00
Jonathan Wakely 1c6f4a147d 1.cc: Remove name of unused exception variable.
* testsuite/30_threads/shared_lock/modifiers/1.cc: Remove name of
	unused exception variable.
	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/2.cc: Remove duplicate
	test.
	* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.

From-SVN: r221477
2015-03-17 16:36:32 +00:00
Jonathan Wakely 95f2fd9c5d nested_exception.h: Do not try to derive from final classes.
* libsupc++/nested_exception.h: Do not try to derive from final
	classes.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Test
	final class.

From-SVN: r221476
2015-03-17 14:24:55 +00:00
Jonathan Wakely e83a01c383 * include/experimental/system_error: Fix include guard.
From-SVN: r221417
2015-03-13 12:47:21 +00:00
Jonathan Wakely 9b78b1e730 acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
* acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
	* configure: Regenerate.

From-SVN: r221414
2015-03-13 10:49:08 +00:00
Renlin Li 04a1709359 [PATCH]Remove xfail for wrapped target
libstdc++-v3/

2015-03-12  Renlin Li  <renlin.li@arm.com>

	* testsuite/27_io/ios_base/sync_with_stdio/1.cc: Remove xfail for
	wrapped target.

From-SVN: r221393
2015-03-12 15:00:28 +00:00
Tim Shen 84839a5140 re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_match::matched is false)
PR libstdc++/64441
	* include/bits/regex.h (match_results<>::size,
	match_results<>::position, match_results<>::str,
	match_results<>::operator[], match_results<>::prefix,
	match_results<>::suffix, match_results<>::end,
	match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
	match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
	global __unmatched_sub. Add unmatched submatch as part of
	match_results.
	* include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
	regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
	* testsuite/28_regex/match_results/out_of_range_submatches.cc:
	New testcases.

From-SVN: r221330
2015-03-10 18:41:46 +00:00
Jonathan Wakely d2e0c00b8c re PR libstdc++/64467 (28_regex/traits/char/isctype.cc and wchar_t/isctype.cc)
PR libstdc++/64467
	* testsuite/28_regex/traits/char/isctype.cc: Don't test newline
	for newlib targets. Really fix mixed line-endings this time.

From-SVN: r221279
2015-03-09 12:47:51 +00:00
Jonathan Wakely 664e99eac4 future (future_error(error_code)): Construct base class with error_code's message.
* include/std/future (future_error(error_code)): Construct base
	class with error_code's message.
	* src/c++11/future.cc (future_error::what()): Do not call c_str() on
	temporary string.

From-SVN: r221236
2015-03-06 12:31:43 +00:00
Jonathan Wakely 9933260f2f locale_conv.h (wstring_convert::_M_conv): Handle noconv result.
* include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
	noconv result.
	* testsuite/22_locale/conversions/string/2.cc: Also test UTF-8.
	* testsuite/22_locale/conversions/string/3.cc: Likewise, and UTF-16.

From-SVN: r221212
2015-03-05 13:36:21 +00:00
Jonathan Wakely b6584a72ac re PR libstdc++/64797 (22_locale/conversions/string/2.cc FAILs)
PR libstdc++/64797
	* include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
	incomplete multibyte sequences correctly.
	* include/std/codecvt (codecvt_utf8, codecvt_utf16,
	codecvt_utf8_utf16): Limit _Maxcode to maximum Unicode code point.
	* src/c++11/codecvt.cc (invalid_mb_sequence, incomplete_mb_character):
	Define constants.
	(is_high_surrogate, is_low_surrogate, surrogate_pair_to_code_point):
	Define convenience functions.
	(read_utf8_code_point): Return relevant constant to distinguish
	incomplete characters from invalid sequences.
	(read_utf16_code_point): Likewise. Check for invalid sequences.
	(ucs4_in, utf16_in): Use incomplete_mb_character constant.
	(utf16_out): Check for invalid sequences.
	(utf16_span): Fix condition.
	(ucs2_out): Use is_high_surrogate.
	(ucs2_in): Use incomplete_mb_character constant and fix condition.
	* testsuite/22_locale/codecvt/char16_t.cc: Fix whitespace.
	* testsuite/22_locale/conversions/buffer/1.cc: New.
	* testsuite/22_locale/conversions/string/2.cc: Use char16_t and
	char32_t instead of wchar_t.
	* testsuite/22_locale/conversions/string/3.cc: New.

From-SVN: r221189
2015-03-04 17:19:55 +00:00
Iain Sandoe 71ca36ba7b re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10)
2015-03-03  Iain Sandoe  <iain@codesourcery.com>

	PR libstdc++/64883
	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't check
	visibility for Darwin.
	* testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise, and
	also deprecated.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.

From-SVN: r221160
2015-03-03 18:14:20 +00:00
Jonathan Wakely 9d8dbe732a re PR libstdc++/65279 (std::scoped_allocator_adaptor is not assignable)
PR libstdc++/65279
	* include/std/scoped_allocator (__inner_type_impl,
	scoped_allocator_adaptor): Add defaulted copy assignment and move
	assignment operators.
	* testsuite/20_util/scoped_allocator/65279.cc: New.

From-SVN: r221119
2015-03-02 17:50:55 +00:00
Jonathan Wakely e59a2e945e re PR libstdc++/64367 (g++-v5/stdexcept:52:28: error: invalid use of non-static data member '_M_p')
PR libstdc++/64367
	* include/std/stdexcept (__sso_string): Don't use non-static member
	in sizeof.

From-SVN: r221118
2015-03-02 16:50:24 +00:00
Matthias Klose f083b434c2 re PR libstdc++/65246 (libstdc++ pretty printers don't work anymore with Python3)
2015-02-28  Matthias Klose  <doko@ubuntu.com>

        PR libstdc++/65246
        * python/libstdcxx/v6/__init__.py: Use explicit relative imports.

From-SVN: r221076
2015-02-28 09:22:43 +00:00
Jonathan Wakely 1d5f1ff217 status_cxx2011.xml: Remove duplicated information.
* doc/xml/manual/status_cxx2011.xml: Remove duplicated information.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r220894
2015-02-22 13:20:32 +00:00
Jonathan Wakely b56ac9d5f4 status_cxx2011.xml: Document implementation-defined behavior.
* doc/xml/manual/status_cxx2011.xml: Document implementation-defined
	behavior.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r220878
2015-02-20 19:01:46 +00:00
Jonathan Wakely deaa1ccbec re PR libstdc++/64695 (FAIL: libstdc++-prettyprinters/cxx11.cc)
PR libstdc++/64695
	* python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle new
	tuple layout.

From-SVN: r220871
2015-02-20 14:40:00 +00:00
Jonathan Wakely 87839f22d2 re PR libstdc++/58357 (In C++11 std::rotate(first, middle, last) now should return a forward iterator to first + (last - middle).)
PR libstdc++/58357
	* include/bits/algorithmfwd.h (rotate): Move to inline namespace _V2.
	* include/bits/stl_algo.h (__rotate, rotate): Likewise.

From-SVN: r220823
2015-02-19 20:57:40 +00:00
Hans-Peter Nilsson 53b2288f93 re PR testsuite/65093 (26_numerics/random/binomial_distribution/operators/values.cc times out on slow targets)
PR testsuite/65093
	* testsuite/26_numerics/random/binomial_distribution/operators/values.cc
	(test01): Add explanatory comment.  Keep only the bd1 sub-test and
	split out bd2, bd3, bd4, and bd5 sub-tests into...
	* testsuite/26_numerics/random/binomial_distribution/operators/values2.cc,
	testsuite/26_numerics/random/binomial_distribution/operators/values3.cc,
	testsuite/26_numerics/random/binomial_distribution/operators/values4.cc,
	testsuite/26_numerics/random/binomial_distribution/operators/values5.cc:
	New separate files with the old parts.

From-SVN: r220821
2015-02-19 19:30:03 +00:00
Jonathan Wakely 01bf6bdb10 char16_t.cc: Add dg-require-cstdint.
* testsuite/22_locale/codecvt/char16_t.cc: Add dg-require-cstdint.
	* testsuite/22_locale/codecvt/char32_t.cc: Likewise.

From-SVN: r220795
2015-02-18 20:21:04 +00:00
Jonathan Wakely 7f971f18e4 codecvt.cc (write_utf16_code_point): Fix code to output surrogate pairs.
* src/c++11/codecvt.cc (write_utf16_code_point): Fix code to output
	surrogate pairs.
	(utf16_in): Pass mode argument to write_utf16_code_point.
	(codecvt<char16_t, char, mbstate_t>::do_in): Set mode according to
	native byte order.
	* testsuite/22_locale/codecvt/char16_t.cc: New.
	* testsuite/22_locale/codecvt/in/wchar_t/1.cc: Fix typo.

From-SVN: r220793
2015-02-18 19:39:03 +00:00
Rüdiger Sonderfeld fb96818737 char32_t.cc: New.
2015-02-17  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
	    Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/22_locale/codecvt/char32_t.cc: New.

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

From-SVN: r220760
2015-02-17 14:25:48 +00:00
Jonathan Wakely faa7d78e41 re PR libstdc++/65085 (Move-assigned empty string corrupt with -D_GLIBCXX_USE_CXX11_ABI=1)
PR libstdc++/65085
	* include/bits/basic_string.h (basic_string(basic_string&&)): Ensure
	empty string gets null-terminated.
	* testsuite/21_strings/basic_string/cons/char/65085.cc: New.

From-SVN: r220758
2015-02-17 12:44:26 +00:00
Matthew Wahab 1e0c223f94 isctype.cc (test01): Fix mixed line-endings introduced in last change.
* testsuite/28_regex/traits/char/isctype.cc (test01): Fix
	mixed line-endings introduced in last change.

From-SVN: r220682
2015-02-13 13:42:06 +00:00
Jason Merrill 864f0146f0 * testsuite/28_regex/traits/wchar_t/isctype.cc: Fix whitespace.
From-SVN: r220655
2015-02-12 15:20:30 -05:00
Matthew Wahab 72900b8306 isctype.cc (test01): Replace test for __NEWLIB__ macro with a dejagnu set macro.
* testsuite/28_regex/traits/char/isctype.cc (test01): Replace test
	for __NEWLIB__ macro with a dejagnu set macro.
	* testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.

From-SVN: r220648
2015-02-12 14:55:23 +00:00
Matthew Wahab ff9eac2965 [PATCH][libstdc++][Testsuite] isctype test fails for newlib.
libstdc++-v3/
2015-02-02  Matthew Wahab  <matthew.wahab@arm.com>

	PR libstdc++/64467
	* testsuite/28_regex/testsuiteraits/char/isctype.cc (test01): Add newlib
	special case for '\n'.
	* test01estsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.

From-SVN: r220392
2015-02-04 09:24:56 +00:00
Jonathan Wakely 516db2dd07 * src/c++11/futex.cc: Do not define for gthr-single.h targets.
From-SVN: r220319
2015-02-01 15:11:23 +00:00
Jonathan Wakely 13fc08e44e re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10)
PR libstdc++/64883
	* include/c_global/cstdio (gets): Use __deprecated__ attribute instead
	of deprecated.
	* include/c_std/cstdio (gets): Likewise.
	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing
	with attributes used in darwin headers.

From-SVN: r220318
2015-02-01 15:11:08 +00:00
Jakub Jelinek 536616b775 acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of $vtv_cygmin = yes.
* acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of
	$vtv_cygmin = yes.  Initialize vtv_cygmin=no unconditionally first.
	* configure: Regenerated.

From-SVN: r220259
2015-01-29 19:36:03 +01:00
H.J. Lu f4392940cd Define VTV_CYGMIN after vtv_cygmin is set
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
	after vtv_cygmin is set.
	* configure: Regenerated.

From-SVN: r220258
2015-01-29 10:21:33 -08:00
Matthias Klose 23842e9135 acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN unconditionally.
2015-01-29  Matthias Klose  <doko@ubuntu.com>

        * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
        unconditionally.
        * configure: Regenerate.

From-SVN: r220257
2015-01-29 18:12:29 +00:00
Caroline Tice 8be349eea9 Committing generated configure & Makefile.in pieces of VTV Cygwin patch (from Patrick Wollgast).
Committing generated configure & Makefile.in pieces of
VTV Cygwin patch (from Patrick Wollgast).  Forgot to 
commit these with the rest of the patch.

From-SVN: r220254
2015-01-29 08:47:25 -08:00
Jonathan Wakely 85d44192f6 atomic_base.h: Use __always_inline__ instead of always_inline.
* include/bits/atomic_base.h: Use __always_inline__ instead of
	always_inline.
	* include/bits/atomic_futex.h: Likewise.
	* include/bits/c++config: Use __abi_tag__ instead of abi_tag.
	* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use
	__packed__ instead of packed.
	* include/std/shared_mutex: Use __unused__ instead of unused.
	* testsuite/17_intro/headers/c++1998/all_attributes.cc: New.
	* testsuite/17_intro/headers/c++200x/all_attributes.cc: New.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc: New.

From-SVN: r220243
2015-01-29 12:47:20 +00:00
Caroline Tice f7f049fa46 Committing VTV Cygwin patch for Patrick Wollgast
* gcc/config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
    if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
    if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
    if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (LIB_SPEC): Likewise.
* gcc/config/i386/mingw32.h (LIB_SPEC): Likewise.

* gcc/cp/vtable-class-hierarchy.c (vtv_generate_init_routine): Add
    check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.

* gcc/varasm.c (assemble_variable): Add code to properly set the comdat
    section and name for the .vtable_map_vars section in case the
    target is PE or COFF.


* libgcc/Makefile.in: Move rules to build vtv_*.o out of the check
    for CUSTOM_CRTSTUFF.
* libgcc/config.host (i[34567]86-*-cygwin*, x86_64-*-cygwin*, i[34567]86-*-mingw*)
    (x86_64-*-mingw*): Only add vtv_*.o to extra_parts if enable_vtable_verify.


* libstdc++-v3/acinclude.m4: Define VTV_CYGMIN.
* libstdc++-v3/configure: Regenerate.

* libstdc++-v3/libsupc++/Makefile.am: Add vtv_sources only to
    libsupc___la_SOURCES and libsupc__convenience_la_SOURCES if VTV_CYGMIN is
    not set.
* libstdc++-v3/libsupc++/Makefile.in: Regenerated.
* libstdc++-v3/libsupc++/vtv_stubs.cc: Add none weak declaration of every
    function for Cygwin and MinGW.

* libstdc++-v3/src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES,
    if VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
    libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
* libstdc++-v3/src/Makefile.in: Regenerate.


* libvtv/Makefile.am : Add libvtv.la to toolexeclib_LTLIBRARIES, if VTV_CYGMIN
    is set. Define libvtv_la_LIBADD, libvtv_la_LDFLAGS, libvtv_stubs_la_LDFLAGS
    and libvtv_stubs_la_SOURCES if VTV_CYGMIN is set. Add obstac.c to
    libvtv_la_SOURCES if VTV_CYGMIN is set.
* libvtv/Makefile.in : Regenerate.
* libvtv/aclocal.m4 : Regenerate.
* libvtv/configure : Regenerate.
* libvtv/configure.ac : Add ACX_LT_HOST_FLAGS. Define VTV_CYGMIN.
* libvtv/configure.tgt : (x86_64-*-cygwin*, i?86-*-cygwin*, x86_64-*-mingw*)
    (i?86-*-mingw*): Add to supported targets.
* libvtv/vtv_fail.cc : Skip inclusion of execinfo.h on Cygwin and MinGW.
(log_error_message): Skip calls to backtrace and backtrace_symbols_fd on Cygwin
    and MinGW.
* libvtv/vtv_malloc.cc : Include windows.h and skip sys/mman.h inclusion on
    Cygwin and MinGW. Add sysconf port on Cygwin and MinGW.
(obstack_chunk_alloc): Exchange call to mmap with call to VirtualAlloc on Cygwin
    and MinGW.
(__vtv_malloc_init): Exchange call to sysconf with call to port of sysconf on
    Cygwin and MinGW.
* libvtv/vtv_malloc.h : Declare mprotect and define PROT_READ and PROT_WRITE on
    Cygwin and MinGW.
* libvtv/map.h : Include stdint.h on MinGW.
* libvtv/rts.cc : Include windows.h, winternl.h and psapi.h, skip include of
    execinfo.h, sys/mman.h and link.h on Cygwin and MinGW.
    Add port of __fortify_fail on Cygwin and MinGW.
    Change ElfW (Addr) to uintptr_t on Cygwin and MinGW.
(read_section_offset_and_length): Add port for Cygwin and MinGW
(iterate_modules): New function.
(vtv_unprotect_vtable_vars): Use iterate_modules instead of dl_iterate_phdr on
    Cygwin and MinGW.
(vtv_protect_vtable_vars): Likewise.
(count_all_pages): Likewise.
(dl_iterate_phdr_count_pages): Don't build on Cygwin and MinGW.
* libvtv/utils.cc : Include windows.h and skip execinfo.h inclusion on
    Cygwin and MinGW.
(__vtv_open_log): Exchange call to getuid and getpid with GetCurrentProcessId and
    adjust call to snprintf accordingly on Cygwin and MinGW.
    Adjust calls to mkdir on MinGW.
    Adjust call to open on Cygwin and MinGW.
(__vtv_add_to_log): Adjust call to snprintf on Cygwin and MinGW.
(__vtv_log_verification_failure): Don't generate a backtrace on Cygwin and MinGW.

From-SVN: r220232
2015-01-29 00:03:56 -08:00
Jonathan Wakely 739cdc9041 re PR libstdc++/64828 (libstdc++-v3/libsupc++/del_opvs.cc:30:1: warning: ‘void operator delete [](void*, std::size_t)’ is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) [-Wc++14-compat])
PR libstdc++/64828
	* libsupc++/Makefile.am: Compile del_opvs.cc as C++14.
	* libsupc++/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.

From-SVN: r220207
2015-01-28 15:02:28 +00:00
Kyrylo Tkachov f6d04238e0 [libstdc++][testsuite][reverted] Remove check for truncation overflow
* testsuite/lib/libstdc++.exp (v3_target_compile): Remove
    check for unsupported.
    (v3_target_compile_as_c): Likewise.

From-SVN: r220206
2015-01-28 13:53:45 +00:00
Richard Biener 8aa33fadbe re PR libstdc++/64798 (g++.old-deja/g++.eh/badalloc1.C FAILs)
2015-01-28  Richard Biener  <rguenther@suse.de>

	PR libstdc++/64798
	* libsupc++/eh_alloc.cc (struct allocated_entry): Align
	data member.
	(pool::allocate): Adjust allocation size and alignment to
	that change.
	(pool::free): Adjust pointer offsetting.

From-SVN: r220201
2015-01-28 09:53:39 +00:00
Jonathan Wakely 506f03c370 re PR target/64368 (Several libstdc++ test failures on non-linux platforms after r218964.)
PR libstdc++/64368
	* include/std/shared_mutex (shared_timed_mutex::try_lock_for,
	shared_timed_mutex::try_lock_until): Only define when POSIX thread
	timeouts option is supported.
	(shared_timed_mutex::try_shared_lock_for,
	shared_timed_mutex::try_shared_lock_until): Likewise.

From-SVN: r220161
2015-01-27 11:12:04 +00:00
Jonathan Wakely 831a3a9e34 re PR target/64368 (Several libstdc++ test failures on non-linux platforms after r218964.)
PR libstdc++/64368
	* config/locale/gnu/numeric_members.cc (numpunct<char>::~numpunct(),
	numpunct<wchar_t>::~numpunct()): Do not set _M_data->_M_grouping.
	* src/c++11/cxx11-shim_facets.cc (numpunct_shim): Remove _M_grouping
	and use cache's _M_grouping field.
	(__numpunct_fill_cache): Likewise.
	(__moneypunct_fill_cache): Improve comments.

From-SVN: r220143
2015-01-26 23:42:39 +00:00
Jonathan Wakely c7ac7ddaa9 2.cc: Add test for non-transparent comparison function.
* testsuite/23_containers/set/operations/2.cc: Add test for
	non-transparent comparison function.

From-SVN: r220107
2015-01-26 11:18:14 +00:00
Oleg Endo 5eb1643c2c re PR libstdc++/29366 (atomics config for sh is weird)
libstdc++-v3/
	PR target/29366
	* config/cpu/sh/atomicity.h (__exchange_and_add, __atomic_add): 
	Remove SH4A inline asm and lock based implementations and use the
	defaults from ext/atomicity.h.

From-SVN: r220094
2015-01-25 16:54:33 +00:00
Jonathan Wakely 130dc027c5 gnu.ver: Tighten GLIBCXX_3.4 patterns to not match new std::string constructors for...
* config/abi/pre/gnu.ver: Tighten GLIBCXX_3.4 patterns to not match
	new std::string constructors for byname facets.

From-SVN: r220043
2015-01-23 15:23:20 +00:00
Richard Biener cce93c76ba re PR libstdc++/64535 (Emergency buffer for exception allocation too small)
2015-01-22  Richard Biener  <rguenther@suse.de>

	PR libstdc++/64535
	* libsupc++/eh_alloc.cc: Include new.
	(bitmask_type): Remove.
	(one_buffer): Likewise.
	(emergency_buffer): Likewise.
	(emergency_used): Likewise.
	(dependents_buffer): Likewise.
	(dependents_used): Likewise.
	(class pool): New custom fixed-size arena, variable size object
	allocator.
	(emergency_pool): New global.
	(__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool.
	(__cxxabiv1::__cxa_free_exception): Likewise.
	(__cxxabiv1::__cxa_allocate_dependent_exception): Likewise.
	(__cxxabiv1::__cxa_free_dependent_exception): Likewise.

	* g++.old-deja/g++.eh/badalloc1.C: Adjust.

From-SVN: r219988
2015-01-22 09:21:48 +00:00
Tim Shen 770acfc9e3 re PR libstdc++/64680 (basic_regex::operator= does not reset flags)
PR libstdc++/64680
	* include/bits/regex.h (basic_regex<>::basic_regex,
	basic_regex<>::operator=, basic_regex<>::imbue): Conform to the
	standard interface.
	* testsuite/28_regex/basic_regex/assign/char/cstring.cc: New testcase.

From-SVN: r219987
2015-01-22 05:07:03 +00:00
Tim Shen 77033d2668 re PR libstdc++/64649 (regex_traits::lookup_classname() only works with random access iterators)
PR libstdc++/64649
	* include/bits/regex.tcc (regex_traits<>::lookup_collatename,
	regex_traits<>::lookup_classname): Correctly narrow input chars.
	* testsuite/28_regex/traits/wchar_t/user_defined.cc: New testcase.

From-SVN: r219986
2015-01-22 05:02:38 +00:00
Jonathan Wakely f81f49c180 * config/abi/pre/gnu.ver: Use [jmy] for size_t parameters.
From-SVN: r219953
2015-01-21 16:17:31 +00:00
Jonathan Wakely deff1f4105 * testsuite/29_atomics/atomic/64658.cc: Test stored value.
From-SVN: r219952
2015-01-21 16:17:17 +00:00
Jonathan Wakely 7d56e747e2 status_cxx2011.xml: Remove stray dbhtml tags.
* doc/xml/manual/status_cxx2011.xml: Remove stray dbhtml tags.
	* doc/xml/manual/status_cxx2014.xml: Update status.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r219891
2015-01-20 12:31:22 +00:00
Jonathan Wakely 4159cf0d22 re PR libstdc++/64650 (std::experimental::bad_optional_access is not default constructible)
PR libstdc++/64650
	* include/experimental/optional (bad_optional_access): Add default
	constructor.
	* testsuite/experimental/optional/requirements.cc: Test for default
	constructor.

From-SVN: r219889
2015-01-20 11:51:03 +00:00
Jonathan Wakely 91c78ea5b6 Implement N3657: heterogeneous lookup in associative containers.
* include/bits/stl_map.h (map::find<>, map::count<>,
	map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
	member function templates to perform heterogeneous lookup.
	* include/bits/stl_multimap.h (multimap::find<>, multimap::count<>,
	multimap::lower_bound<>, multimap::upper_bound<>,
	multimap::equal_range<>): Likewise.
	* include/bits/stl_multiset.h (multiset::find<>, multiset::count<>,
	multiset::lower_bound<>, multiset::upper_bound<>,
	multiset::equal_range<>): Likewise.
	* include/bits/stl_set.h (set::find<>, set::count<>,
	set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
	* include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr,
	_Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr,
	_Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr,
	_Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise.
	* testsuite/23_containers/map/operations/2.cc: New.
	* testsuite/23_containers/multimap/operations/2.cc: New.
	* testsuite/23_containers/multiset/operations/2.cc: New.
	* testsuite/23_containers/set/operations/2.cc: New.

From-SVN: r219888
2015-01-20 11:50:58 +00:00
Jonathan Wakely 71a16cd8bc Add C++11 std::string constructors for locales and facets.
* config/abi/pre/gnu.ver: Export new constructors.
	* include/bits/codecvt.h (codecvt_byname): Add string constructor.
	(codecvt_byname<char16_t>, codecvt_byname<char32_t>): Define explicit
	specializations and declare explicit instantiations.
	* include/bits/locale_classes.h (locale, collate_byname): Add string
	constructors.
	* include/bits/locale_facets.h (ctype_byname, numpunct_byname):
	Likewise.
	* include/bits/locale_facets_nonio.h (time_get_byname,
	time_put_byname, moneypunct_byname, messages_byname): Likewise.
	* src/c++11/codecvt.cc (codecvt_byname<char16_t>,
	codecvt_byname<char32_t>): Define explicit instantiations.
	* src/c++11/locale-inst.cc (time_put_byname, codecvt_byname):
	Instantiate string constructors.
	(ctype_byname): Define string constructor.
	* testsuite/22_locale/codecvt_byname/1.cc: New.
	* testsuite/22_locale/collate_byname/1.cc: New.
	* testsuite/22_locale/ctype_byname/2.cc: New.
	* testsuite/22_locale/messages_byname/1.cc: New.
	* testsuite/22_locale/moneypunct_byname/1.cc: New.
	* testsuite/22_locale/numpunct_byname/1.cc: New.

From-SVN: r219887
2015-01-20 11:50:51 +00:00
Jonathan Wakely 0e4974d62e re PR libstdc++/64658 (std::atomic_init() undefined)
PR libstdc++/64658
	* include/std/atomic (atomic_init): Define.
	* testsuite/29_atomics/atomic/64658.cc: New.

From-SVN: r219886
2015-01-20 11:50:43 +00:00
Tim Shen e5f3553320 re PR libstdc++/64649 (regex_traits::lookup_classname() only works with random access iterators)
PR libstdc++/64649
	* include/bits/regex.tcc (regex_traits<>::lookup_collatename,
	regex_traits<>::lookup_classname): Support forward iterators.
	* testsuite/28_regex/traits/char/lookup_classname.cc: New testcases.
	* testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase.

From-SVN: r219866
2015-01-19 23:00:13 +00:00
Tim Shen 60c176fb45 re PR libstdc++/64584 (basic_regex::assign breaks *this if it throws regex_error)
PR libstdc++/64584
	PR libstdc++/64585
	* include/bits/regex.h (basic_regex<>::basic_regex,
	basic_regex<>::assign, basic_regex<>::imbue,
	basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after
	imbuing basic_regex; Make assign() transactional against exception.
	* include/bits/regex_compiler.h (__compile_nfa<>): Add back
	__compile_nfa SFINAE.
	* include/std/regex: Adjust include order to avoid __compile_nfa
	forward declaration.
	* testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase.
	* testsuite/28_regex/basic_regex/imbue/string.cc: New testcase.

From-SVN: r219865
2015-01-19 22:56:04 +00:00
Ville Voutilainen 8bae22b708 range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR on overloads for arrays.
2015-01-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR
	on overloads for arrays.
	(cbegin, cend, rbegin, rend, crbegin, crend): New.
	* testsuite/24_iterators/range_access_cpp14.cc: New.

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

From-SVN: r219846
2015-01-19 14:37:03 +00:00
Jonathan Wakely 257024e31e re PR libstdc++/64646 (New overloads of std::is_permutation dereference past-the-end iterator)
PR libstdc++/64646
	* include/bits/stl_algo.h (__is_permutation): Also test for reaching
	end of the second range.
	* testsuite/25_algorithms/is_permutation/64646.cc: New.

From-SVN: r219821
2015-01-18 16:31:06 +00:00
Jonathan Wakely fded3d73da status_cxx2011.xml: Remove note about offsetof.
* doc/xml/manual/status_cxx2011.xml: Remove note about offsetof.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r219817
2015-01-18 15:47:18 +00:00
Jonathan Wakely 1e3919acb1 * src/c++11/futex.cc: Fix order of includes and preprocessor condition.
From-SVN: r219816
2015-01-18 14:38:53 +00:00
Jonathan Wakely 87361f3098 atomic_futex.h: Use mutex and condition_variable when atomic int is not lock-free.
* include/bits/atomic_futex.h: Use mutex and condition_variable when
	atomic int is not lock-free. Make member variables private.
	* src/c++11/futex.cc: Likewise.

From-SVN: r219815
2015-01-18 14:25:22 +00:00
Jonathan Wakely c6c1bfd99b re PR libstdc++/64638 (Build failure with recent futex changes in libstdc++, likely all non-gthreads targets)
PR libstdc++/64638
	* include/bits/atomic_futex.h: Use appropriate config macros for
	availability of std::mutex, std::condition and std::chrono.

From-SVN: r219799
2015-01-17 13:48:48 +00:00
Ville Voutilainen 21c4af433b status_cxx2011.xml: Update C++11 status.
2015-01-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2011.xml: Update C++11 status.
	* doc/html/*: Regenerate.

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

From-SVN: r219794
2015-01-17 03:23:52 +00:00
Jonathan Wakely 1d0a12dc55 DR 488 PR libstdc++/58357
DR 488
	PR libstdc++/58357
	* include/bits/algorithmfwd.h (rotate): Return an iterator.
	* include/bits/stl_algo.h (rotate, __rotate): Likewise.
	* testsuite/25_algorithms/rotate/dr488.cc: New.
	* testsuite/25_algorithms/rotate/check_type.cc: Adjust function type.
	* testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
	2.cc: Likewise.
	* testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
	pod.cc: Likewise.

From-SVN: r219793
2015-01-17 03:15:52 +00:00
Jonathan Wakely d31b87976f re PR libstdc++/60940 (general operations on atomic types do not work with atomic integral typedefs)
PR libstdc++/60940
	* include/bits/atomic_base.h: Remove atomic integral typedefs as
	synonyms for __atomic_base<int> etc.
	* include/std/atomic: Make atomic_int a synonym for atomic<int> and
	likewise for all atomic integral types.
	* testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.

From-SVN: r219790
2015-01-17 01:23:28 +00:00
Jonathan Wakely 3ecec1eff7 re PR libstdc++/56785 (std::tuple of two elements does not apply empty base class optimization when one of its elements is a std::tuple with two elements)
PR libstdc++/56785
	* include/std/tuple (_Tuple_impl): Remove zero-element specialization
	and define one-element specialization.
	* testsuite/20_util/tuple/56785.cc: New.

From-SVN: r219785
2015-01-17 00:21:41 +00:00
Jonathan Wakely c23ccace5c 1.cc: Remove unused header.
* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
	Remove unused header.
	* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
	Likewise.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
	Likewise.

From-SVN: r219781
2015-01-17 00:12:50 +00:00
Jonathan Wakely 96d8c147aa locale_conv.h (wstring_convert, [...]): New.
* include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New.
	* include/std/locale: Include new header.
	* include/Makefile.am: Add it.
	* include/Makefile.in: Regenerate.
	* testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New.
	* testsuite/22_locale/conversions/string/1.cc: New.
	* testsuite/22_locale/conversions/string/2.cc: New.
	* testsuite/22_locale/conversions/string/requirements/typedefs.cc: New.
	* testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
	New.

From-SVN: r219780
2015-01-16 23:38:48 +00:00
Jonathan Wakely 28af1fb39d Implement C++11 <codecvt> header.
* config/abi/pre/gnu.ver: Export new symbols.
	* include/Makefile.am: Add codecvt.
	* include/Makefile.in: Regenerate.
	* include/std/codecvt: New header.
	* src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base,
	__codecvt_utf8_utf16_base): Define specializations.
	* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New.
	* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
	New.

From-SVN: r219779
2015-01-16 23:38:35 +00:00
Torvald Riegel eae801bacc libstdc++: Optimize synchronization in std::future if futexes are available.
* src/c++11/futex.cc: New file.
	* include/bits/atomic_futex.h: New file.
	* include/std/future (__future_base::_State_baseV2): Use
	atomic_futex_unsigned instead of mutex+condvar.
	* src/c++11/futex.cc: Likewise.
	* include/Makefile.am: Add atomic_futex.h.
	* include/Makefile.in: Likewise.
	* src/c++11/Makefile.am: Add futex.cc.
	* src/c++11/Makefile.in: Likewise.

From-SVN: r219770
2015-01-16 19:50:43 +00:00
Jonathan Wakely bb93f35da1 acinclude.m4: Fix typo in comment.
* acinclude.m4: Fix typo in comment.
	* configure: Regenerate.
	* include/bits/codecvt.h (codecvt<char16_t, char, mbstate_t>,
	codecvt<char16_t, char, mbstate_t>): Declare specializations.
	* include/bits/locale_facets.h: Reserve space for new specializations.
	* src/c++11/Makefile.am: Add codecvt.cc.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/codecvt.cc: New.
	* src/c++98/Makefile.am: Compile locale_init.cc and localename.cc
	with -std=gnu++11.
	* src/c++98/Makefile.in: Regenerate.
	* src/c++98/locale_init.cc: Initialize new codecvt specializations.
	* src/c++98/localename.cc: Likewise.
	* config/abi/pre/gnu.ver: Exports for new codecvt specializations.
	* testsuite/22_locale/codecvt/utf8.cc: New.
	* testsuite/22_locale/locale/cons/unicode.cc: Check that new
	specializations are installed in locale objects.

From-SVN: r219747
2015-01-16 15:02:35 +00:00
Torvald Riegel 6220fdff17 libstdc++: Add POSIX variant of shared_timed_mutex.
* include/std/shared_mutex (shared_timed_mutex): Add POSIX-based
	implementation.

From-SVN: r219737
2015-01-16 13:22:00 +00:00
Jason Merrill caee690e91 re PR c++/64356 (Some constexpr expressions not recognized as constexpr)
PR c++/64356
	PR libstdc++/58777
	* constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
	pointer expressions.
	(cxx_eval_increment_expression): Likewise.

From-SVN: r219559
2015-01-13 16:04:43 -05:00
Jonathan Wakely 6eb6148159 re PR libstdc++/64571 (Link failure with fstream due to new string implementation)
PR libstdc++/64571
	* config/abi/pre/gnu.ver: Export fstream functions using new string.

From-SVN: r219537
2015-01-13 14:56:50 +00:00
Jonathan Wakely 1b9ad1d9ae re PR libstdc++/64553 (Missing '# ifdef _GLIBCXX_USE_WCHAR_T' in src/c++11/cxx11-shim_facet.cc)
PR libstdc++/64553
	* src/c++11/cxx11-shim_facets.cc: Check for wchar_t support.

From-SVN: r219496
2015-01-12 21:45:50 +00:00