Commit Graph

7628 Commits

Author SHA1 Message Date
François Dumont 76225d2ca7 stl_vector.h (push_back(const value_type&)): Forward to _M_realloc_insert.
2016-07-11  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_vector.h (push_back(const value_type&)): Forward
	to _M_realloc_insert.
	(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
	(_M_realloc_insert): Declare new function.
	(_M_emplace_back_aux): Remove definition.
	* include/bits/vector.tcc (emplace_back(_Args...)):
	Use _M_realloc_insert.
	(insert(const_iterator, const value_type&)): Likewise.
	(_M_insert_rval, _M_emplace_aux): Likewise.
	(_M_emplace_back_aux): Remove declaration.
	(_M_realloc_insert): Define.
	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
	Adjust expected results for emplacing an lvalue with reallocation.

From-SVN: r238226
2016-07-11 20:17:56 +00:00
Ville Voutilainen 435e56fb52 Implement std::optional.
* include/Makefile.am: Add optional to exported headers.
	* include/Makefile.in: Likewise.
	* include/std/optional: New.
	* testsuite/20_util/optional/typedefs.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/5.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/6.cc: Likewise.
	* testsuite/20_util/optional/nullopt.cc: Likewise.
	* testsuite/20_util/optional/in_place.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Likewise.
	* testsuite/20_util/optional/assignment/2.cc: Likewise.
	* testsuite/20_util/optional/assignment/3.cc: Likewise.
	* testsuite/20_util/optional/assignment/4.cc: Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Likewise.
	* testsuite/20_util/optional/assignment/1.cc: Likewise.
	* testsuite/20_util/optional/assignment/6.cc: Likewise.
	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
	* testsuite/20_util/optional/cons/default.cc: Likewise.
	* testsuite/20_util/optional/cons/move.cc: Likewise.
	* testsuite/20_util/optional/cons/value.cc: Likewise.
	* testsuite/20_util/optional/cons/copy.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Likewise.
	* testsuite/20_util/optional/observers/2.cc: Likewise.
	* testsuite/20_util/optional/observers/3.cc: Likewise.
	* testsuite/20_util/optional/observers/4.cc: Likewise.
	* testsuite/20_util/optional/observers/5.cc: Likewise.
	* testsuite/20_util/optional/observers/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
	* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
	* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/20_util/optional/swap/1.cc: Likewise.

From-SVN: r238197
2016-07-10 20:44:21 +03:00
Jonathan Wakely d81102f473 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
From-SVN: r238169
2016-07-08 17:35:10 +01:00
Jonathan Wakely 9fc0faf012 Update libstdc++ status docs
* doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
	* doc/html/*: Regenerate.

From-SVN: r238120
2016-07-07 17:35:43 +01:00
Ville Voutilainen 52e8622199 Implement std::any.
* include/Makefile.am: Add any and c++17_warning.h to exported headers.
	* include/Makefile.in: Likewise.
	* include/std/any: New.
	* testsuite/20_util/any/assign/1.cc: Likewise.
	* testsuite/20_util/any/assign/2.cc: Likewise.
	* testsuite/20_util/any/assign/self.cc: Likewise.
	* testsuite/20_util/any/cons/1.cc: Likewise.
	* testsuite/20_util/any/cons/2.cc: Likewise.
	* testsuite/20_util/any/cons/aligned.cc: Likewise.
	* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
	* testsuite/20_util/any/misc/swap.cc: Likewise.
	* testsuite/20_util/any/modifiers/1.cc: Likewise.
	* testsuite/20_util/any/observers/type.cc: Likewise.
	* testsuite/20_util/any/typedefs.cc: Likewise.

From-SVN: r238061
2016-07-07 01:33:20 +03:00
Ville Voutilainen 3042e70851 Add a new header for diagnosing the use of C++17 facilities in pre-C++17 modes.
From-SVN: r238058
2016-07-06 21:07:57 +03:00
Ville Voutilainen 6ffe854859 Implement LWG 2451, optional<T> should 'forward' T's implicit conversions.
Implement LWG 2451, optional<T> should 'forward' T's
	implicit conversions.
	* include/experimental/optional (__is_optional_impl, __is_optional):
	New.
	(optional()): Make constexpr and default.
	(optional(_Up&&), optional(const optional<_Up>&),
	optional(optional<_Up>&& __t): New.
	(operator=(_Up&&)): Constrain.
	(operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
	* testsuite/experimental/optional/cons/value.cc:
	Add tests for the functionality added by LWG 2451.
	* testsuite/experimental/optional/cons/value_neg.cc: New.

From-SVN: r238049
2016-07-06 16:26:10 +03:00
Ville Voutilainen 7d4f48b5b8 Implement LWG 2509,
any_cast doesn't work with rvalue reference targets and cannot
	move with a value target.
	* include/experimental/any (any(_ValueType&&)): Constrain and
	add an overload that doesn't forward.
	(any_cast(any&&)): Constrain and add an overload that moves.
	* testsuite/experimental/any/misc/any_cast.cc: Add tests for
	the functionality added by LWG 2509.

From-SVN: r238022
2016-07-05 21:33:18 +03:00
François Dumont 097e899495 Add tests for inserting aliased objects into std::vector
2016-07-04  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
	New test.
	* testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
	test.

From-SVN: r237986
2016-07-04 15:52:54 +01:00
Jonathan Wakely 9958c7eb58 Fix std::vector's use of temporary objects
* include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
	Define inline. Forward to _M_emplace_aux.
	(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
	(_M_insert_rval, _M_emplace_aux): Declare new functions.
	(_Temporary_value): New RAII type using allocator to construct/destroy.
	(_S_insert_aux_assign): Remove.
	(_M_insert_aux): Make non-variadic.
	* include/bits/vector.tcc (insert(const_iterator, const value_type&)):
	Use _Temporary_value.
	(emplace(const_iterator, _Args&&...)): Remove definition.
	(_M_insert_rval, _M_emplace_aux): Define.
	(_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
	(_M_fill_insert): Use _Temporary_value.
	* testsuite/23_containers/vector/allocator/construction.cc: New test.
	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
	Adjust expected results for emplacing an lvalue with reallocation.
	* testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
	expected results to account for construction/destruction of temporary
	using allocator.

From-SVN: r237985
2016-07-04 15:52:46 +01:00
Ville Voutilainen e12880f96f re PR libstdc++/71313 ([Filesystem TS] remove_all fails to remove directory contents recursively)
PR libstdc++/71313
	* src/filesystem/ops.cc (remove_all(const path&, error_code&)):
	Call remove_all for children of a directory.
	* testsuite/experimental/filesystem/operations/create_directories.cc:
	Adjust.

From-SVN: r237978
2016-07-04 15:52:49 +03:00
François Dumont 6c539f2e67 get_debug_neg.cc: Adjust dg-error line numbers.
2016-07-02  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element_debug_neg.cc: Likewise.
	* testsuite/25_algorithms/lexicographical_compare/debug/
	irreflexive_neg.cc: Remove.

From-SVN: r237945
2016-07-02 14:55:20 +00:00
Thomas Preud'homme 72fb6bae83 65913.cc: Require atomic-builtins rather than specific target.
2016-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>

libstdc++-v3/
    * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
    than specific target.

From-SVN: r237879
2016-06-30 14:17:47 +00:00
François Dumont dc448fa03b re PR libstdc++/71640 (include/c++/7.0.0/bits/hashtable.h:293:7: error: too many template parameters in template redeclaration)
2016-06-27  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/71640
	* include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
	friend declaration.

From-SVN: r237803
2016-06-27 20:41:59 +00:00
François Dumont e615c24c30 array (array<>::swap): Fix noexcept qualificaton for zero-size array.
2016-06-23  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/array (array<>::swap): Fix noexcept qualificaton for
	zero-size array.

From-SVN: r237747
2016-06-23 20:21:47 +00:00
Trevor Saunders 0609abdad8 remove mep-* support
libgcc/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.host: Remove support for mep-*.
	* config/mep/lib1funcs.S: Remove.
	* config/mep/lib2funcs.c: Remove.
	* config/mep/t-mep: Remove.
	* config/mep/tramp.c: Remove.

gcc/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* common/config/mep/mep-common.c: Remove.
	* config.gcc: Remove mep-* support.
	* config/mep/constraints.md: Remove.
	* config/mep/default.h: Remove.
	* config/mep/intrinsics.h: Remove.
	* config/mep/intrinsics.md: Remove.
	* config/mep/ivc2-template.h: Remove.
	* config/mep/mep-c5.cpu: Remove.
	* config/mep/mep-core.cpu: Remove.
	* config/mep/mep-default.cpu: Remove.
	* config/mep/mep-ext-cop.cpu: Remove.
	* config/mep/mep-intrin.h: Remove.
	* config/mep/mep-ivc2.cpu: Remove.
	* config/mep/mep-pragma.c: Remove.
	* config/mep/mep-protos.h: Remove.
	* config/mep/mep.c: Remove.
	* config/mep/mep.cpu: Remove.
	* config/mep/mep.h: Remove.
	* config/mep/mep.md: Remove.
	* config/mep/mep.opt: Remove.
	* config/mep/predicates.md: Remove.
	* config/mep/t-mep: Remove.
	* doc/install.texi: Remove mep-* documentation.
	* doc/md.texi: Likewise.

gcc/testsuite/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gcc.dg/tree-ssa/forwprop-28.c: Remove mep-* support.
	* gcc.dg/tree-ssa/reassoc-32.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-33.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise.
	* gcc.dg/tree-ssa/ssa-thread-11.c: Likewise.
	* gcc.dg/tree-ssa/vrp87.c: Likewise.
	* lib/target-supports.exp: Likewise.

contrib/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config-list.mk: Stop testing mep-elf.

libstdc++-v3/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure.host: Remove mep-* support.

From-SVN: r237666
2016-06-21 21:57:49 +00:00
Trevor Saunders 8466af0668 remove knetbsd support
gcc/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.gcc: Remove support for knetbsd.
	* configure.ac: Likewise.
	* config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
	* config/knetbsd-gnu.h: Remove.
	* configure: Regenerate.

libgcc/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config.host: Remove support for knetbsd.

libstdc++-v3/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure: Regenerate.
	* configure.host: Remove support for knetbsd.
	* crossconfig.m4: Likewise.

contrib/ChangeLog:

2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config-list.mk: stop testing knetbsd.

From-SVN: r237662
2016-06-21 21:57:30 +00:00
François Dumont 29dbb034cb re PR libstdc++/71181 (Reserving in unordered_map doesn't reserve enough)
2016-06-20  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/71181
	* include/tr1/hashtable_policy.h
	(_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
	dereferenceable to avoid check on lower_bound result.
	(_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
	(_Prime_rehash_policy::_M_need_rehash): Likewise.
	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
	Always return a value greater than input value. Set _M_next_resize to
	max value when reaching highest prime number.
	* src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
	being now useless.
	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
	(test02): New.
	* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
	Fix indentation.

From-SVN: r237617
2016-06-20 20:04:25 +00:00
Jonathan Wakely 3ebacabd0e libstdc++/71545 fix debug checks in binary search algorithms
PR libstdc++/71545
	* include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
	Remove irreflexive checks.
	* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
	binary_search): Likewise.
	* testsuite/25_algorithms/equal_range/partitioned.cc: New test.
	* testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
	* testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
	* testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
	* testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
	Add constructor from array.

From-SVN: r237560
2016-06-17 19:28:34 +01:00
François Dumont bd2ee798d5 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
* include/debug/debug.h
	(__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
	(__glibcxx_requires_subscript): Move...
	* include/debug/assertions.h: ...here and add __builtin_expect.
	(_GLIBCXX_DEBUG_ONLY): Remove ; value.
	* include/bits/stl_deque.h
	(std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
	(std::deque<>::front()): Add __glibcxx_requires_nonempty check.
	(std::deque<>::back()): Likewise.
	(std::deque<>::pop_front()): Likewise.
	(std::deque<>::pop_back()): Likewise.
	(std::deque<>::swap(deque&)): Add allocator check.
	* include/bits/stl_vector.h
	(std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
	(std::vector<>::front()): Add __glibcxx_requires_nonempty check.
	(std::vector<>::back()): Likewise.
	(std::vector<>::pop_back()): Likewise.
	(std::vector<>::swap(vector&)): Add allocator check.

From-SVN: r237541
2016-06-16 20:34:08 +00:00
Daniel Kruegler 6b9539e2aa Provide swappable traits (p0185r1)
2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>

	Provide swappable traits (p0185r1)
	* include/std/type_traits (is_swappable, is_nothrow_swappable,
	is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
	is_nothrow_swappable_v, is_swappable_with_v,
	is_nothrow_swappable_with_v): New.
	* include/bits/stl_pair.h: Use it as per p0185r1.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/unique_ptr.h: Likewise.
	* include/std/tuple: Likewise.
	* include/std/array: Likewise. Fix zero-size member swap.
	* include/bits/hashtable.h: Use __and_.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation.cc: Change test options to std=gnu++17.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_swappable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation_ext.cc: New.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable/value.h: New.
	* testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation_ext.cc: New.
	* testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
	* testsuite/20_util/is_swappable/value.h: New.
	* testsuite/20_util/is_swappable/value_ext.cc: New.
	* testsuite/20_util/is_swappable_with/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
	* testsuite/20_util/is_swappable_with/value.cc: New.
	* 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: r237531
2016-06-16 16:07:19 +01:00
Jonathan Wakely 33ac58d529 Remove trailing whitespace from libstdc++ headers
* include/std/array: Remove trailing whitespace.
	* include/std/atomic: Likewise.
	* include/std/bitset: Likewise.
	* include/std/chrono: Likewise.
	* include/std/complex: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/fstream: Likewise.
	* include/std/functional: Likewise.
	* include/std/future: Likewise.
	* include/std/iomanip: Likewise.
	* include/std/iosfwd: Likewise.
	* include/std/istream: Likewise.
	* include/std/limits: Likewise.
	* include/std/ratio: Likewise.
	* include/std/scoped_allocator: Likewise.
	* include/std/sstream: Likewise.
	* include/std/stdexcept: Likewise.
	* include/std/string: Likewise.
	* include/std/system_error: Likewise.
	* include/std/thread: Likewise.
	* include/std/tuple: Likewise.
	* include/std/type_traits: Likewise.
	* include/std/utility: Likewise.
	* include/std/valarray: Likewise.
	* include/std/vector: Likewise.

From-SVN: r237528
2016-06-16 14:47:35 +01:00
Jonathan Wakely 0ae207e947 Optimize inserting value_type into std::vector
* include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
	new overloaded functions.
	* include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
	to avoid creating a redundant temporary.
	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
	test.

From-SVN: r237526
2016-06-16 13:42:21 +01:00
François Dumont d7e16fc536 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_deque.h
	(std::deque<>::operator=): Call _M_assign_aux.
	(std::deque<>::assign(initializer_list<>)): Likewise.
	(std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
	(std::deque<>::insert(const_iterator, initializer_list<>)):
	Call _M_range_insert_aux.
	(std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
	Likewise.
	(std::deque<>::_M_fill_assign): Call _M_fill_insert.
	(std::deque<>::_M_move_assign2): Call _M_assign_aux.
	* include/bits/deque.tcc
	(std::deque<>::operator=): Call _M_range_insert_aux.
	(std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
	Likewise.
	* include/bits/stl_vector.h
	(std::vector<>::operator=): Call _M_assign_aux.
	(std::vector<>::assign(initializer_list<>)): Likewise.
	(std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
	(std::vector<>::insert(const_iterator, initializer_list<>)):
	Call _M_range_insert.
	* include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.

From-SVN: r237495
2016-06-15 20:09:56 +00:00
François Dumont 373c00952c tuple (_Head_base<>): Default specialization condition at type declaration.
2016-06-07  François Dumont  <fdumont@gcc.gnu.org>

	* include/std/tuple (_Head_base<>): Default specialization condition at
	type declaration.

From-SVN: r237184
2016-06-07 20:19:19 +00:00
Ville Voutilainen dbc6221fe5 Support allocators in tuples of zero size.
* include/std/tuple (tuple<>::tuple(),
	tuple<>::tuple(allocator_arg_t, const _Alloc&),
	tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
	* testsuite/20_util/tuple/cons/allocators.cc: Adjust.

From-SVN: r237143
2016-06-06 19:28:59 +03:00
Jonathan Wakely 94229fb6dc libstdc++/71320 Add or remove file permissions correctly
PR libstdc++/71320
	* src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
	Add or remove permissions according to perms argument.
	* testsuite/experimental/filesystem/operations/permissions.cc: New
	test.

From-SVN: r237136
2016-06-06 16:50:01 +01:00
Ville Voutilainen 7a66745357 Protect allocator-overloads of tuple-from-tuple constructors from cases that would create dangling references.
Protect allocator-overloads of tuple-from-tuple constructors
	from cases that would create dangling references.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
 	const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
 	tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.

From-SVN: r237106
2016-06-05 20:39:10 +03:00
Gerald Pfeifer 4acc363412 backwards_compatibility.xml: Adjust lists.debian.org link to https.
* doc/xml/manual/backwards_compatibility.xml: Adjust
	lists.debian.org link to https.
	* doc/html/manual/backwards.html: Regenerate.

From-SVN: r236858
2016-05-29 08:03:35 +00:00
Jonathan Wakely 9020909ef1 Adjust URL in libstdc++ manual to use https
* doc/xml/manual/abi.xml: Adjust URL to use https.
	* doc/html/manual/*: Regenerate.

From-SVN: r236837
2016-05-27 22:23:42 +01:00
Ville Voutilainen b702100693 re PR libstdc++/66338 (std::forward_as_tuple() issue with single argument)
2016-05-24  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/66338
	* include/std/tuple (_TMC): Add a check for _NotSameTuple.
	* include/std/tuple (tuple(_UElements&&...)): Remove the separate
	check for _NotSameTuple.
	* include/std/tuple (_TMCT): New.
	* include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
	* include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
	      const tuple<_UElements...>&)): Likewise.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
	      tuple<_UElements...>&&)): Likewise.
	* testsuite/20_util/tuple/cons/66338.cc: New.

From-SVN: r236822
2016-05-27 17:08:37 +03:00
Jonathan Wakely c42d228806 Fix configure test for sendfile()
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
	* configure: Regenerate.
	* config.h.in: Regenerate.

From-SVN: r236730
2016-05-25 17:13:52 +01:00
Jonathan Wakely 834f4c4355 Remove _GLIBCXX14_USE_CONSTEXPR
* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
	* include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
	Remove const qualification on function. Replace
	_GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
	(_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
	(_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.

From-SVN: r236697
2016-05-25 10:36:28 +01:00
François Dumont 732eb07625 c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2016-05-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
	* include/bits/hashtable_policy.h
	(_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
	having load factor management.
	(_Mask_range_hashing): New.
	(__clp2): New.
	(_Power2_rehash_policy): New.
	(_Inserts<>): Remove last template parameter, _Unique_keys, so that
	partial specializations only depend on whether iterators are constant
	or not.
	* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
	test new hash policy.
	* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/insert/hash_policy.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
	New.
	* testsuite/performance/23_containers/insert/54075.cc: Add benchmark
	using the new hash policy.
	* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.

From-SVN: r236669
2016-05-24 20:55:57 +00:00
Jonathan Wakely 8be062c6da Add priority_queue::value_compare (LWG 2684)
* include/bits/stl_queue.h (priority_queue::value_compare): Define.

From-SVN: r236646
2016-05-24 16:59:05 +01:00
François Dumont 447caf82a4 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h
	(_Safe_iterator<>::operator->()): Implement using underlying iterator
	operator ->.
	* include/debug/safe_local_iterator.h
	(_Safe_local_iterator<>::operator->()): Likewise.

From-SVN: r236611
2016-05-23 20:03:35 +00:00
Thomas Preud'homme 11f8114b51 re PR libstdc++/71081 (experimental/memory_resource/1.cc run for targets without atomics)
2016-05-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR libstdc++/71081
    * testsuite/experimental/memory_resource/1.cc: Add required argument
    to dg-require-atomic-builtins.

From-SVN: r236507
2016-05-20 12:36:57 +00:00
Jonathan Wakely 541a9b104b libstdc++/71073 add system_header pragma to Debug Mode headers
PR libstdc++/71073
	* include/debug/bitset: Add #pragma GCC system_header.
	* include/debug/deque: Likewise.
	* include/debug/list: Likewise.
	* include/debug/map: Likewise.
	* include/debug/set: Likewise.
	* include/debug/string: Likewise.
	* include/debug/unordered_map: Likewise.
	* include/debug/unordered_set: Likewise.
	* include/debug/vector: Likewise.
	* include/debug/functions.h: Adjust whitespace.

From-SVN: r236211
2016-05-13 15:47:46 +01:00
Jonathan Wakely 068b220e52 Add dg-require-atomic-builtins to test
PR libstdc++/71081
	* testsuite/experimental/memory_resource/1.cc: Require atomics.

From-SVN: r236177
2016-05-12 15:08:45 +01:00
Jonathan Wakely 3d73ae6ea9 libstdc++/71049 fix --disable-libstdcxx-dual-abi bootstrap
PR libstdc++/71049
	* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
	exception constructors with __sso_string parameters.

From-SVN: r236118
2016-05-11 13:39:28 +01:00
Jonathan Wakely 7f99d40a99 Test begin and end functions for directory iterators
* include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	Test begin and end functions.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: Likewise.

From-SVN: r236085
2016-05-10 16:39:20 +01:00
Jonathan Wakely 6fe673ad0f libstdc++/71038 fix error checks in filesystem::copy_file
PR libstdc++/71038
	* src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
	* testsuite/experimental/filesystem/operations/copy_file.cc: New test.

From-SVN: r236084
2016-05-10 16:39:14 +01:00
Jonathan Wakely 77a87b2a0e Optimize __directory_iterator_proxy for the common case
* include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
	Overload operator* to move from rvalues.

From-SVN: r236078
2016-05-10 14:09:22 +01:00
Jonathan Wakely f9a39467b6 libstdc++/71036 Handle EEXIST in filesystem::create_directory
PR libstdc++/71036
	* src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
	* testsuite/experimental/filesystem/operations/create_directory.cc:
	New test.

From-SVN: r236076
2016-05-10 14:04:21 +01:00
Jonathan Wakely 6f0800d418 libstdc++/71037 Add base path to filesystem::canonical exceptions
PR libstdc++/71037
	* src/filesystem/ops.cc (canonical(const path&, const path&)): Add
	base path to exception.
	* testsuite/experimental/filesystem/operations/canonical.cc: Test
	paths contained in exception.

From-SVN: r236074
2016-05-10 13:22:32 +01:00
Jonathan Wakely f10b2e1cae 2.cc: Remove unused using declaration.
* testsuite/experimental/type_erased_allocator/2.cc: Remove unused
	using declaration.

From-SVN: r236073
2016-05-10 13:04:22 +01:00
Jonathan Wakely d7187f9ea1 libstdc++/71005 fix post-increment for filesystem iterators
PR libstdc++/71005
	* include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
	New type.
	(directory_iterator::operator++(int)): Return proxy.
	(recursive_directory_iterator::operator++(int)): Likewise.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	Test post-increment.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: Likewise.

From-SVN: r236072
2016-05-10 12:25:06 +01:00
Jonathan Wakely 7972e24663 libstdc++/71004 fix recent additions to testcase
PR libstdc++/71004
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: Fix test02 to not call member
	functions on invalid iterator, and use VERIFY not assert.

From-SVN: r236028
2016-05-09 12:50:01 +01:00
Ville Voutilainen fb334765e2 Avoid endless run-time recursion for copying single-element tuples where the...
Avoid endless run-time recursion for copying single-element
	tuples where the element type is by-value constructible
	from any type.
 	* include/std/tuple (_NotSameTuple): New.
 	* include/std/tuple (tuple(_UElements&&...): Use it.
	* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.

From-SVN: r236025
2016-05-09 14:03:36 +03:00
Jonathan Wakely e4cce0cea0 libstdc++/71004 fix recursive_directory_iterator default constructor
PR libstdc++/71004
	* include/experimental/bits/fs_dir.h (recursive_directory_iterator):
	Initialize scalar member variables in default constructor.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: Teste default construction.

From-SVN: r236023
2016-05-09 11:09:37 +01:00
Rainer Orth 40436d8169 Enable dg-reqire-sharedlib on Solaris
* testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.

From-SVN: r235931
2016-05-05 19:54:42 +00:00
Jonathan Wakely f5c40ce2cf Add dg-require-filesystem-ts directive to test
* testsuite/experimental/filesystem/path/native/string.cc: Add
	dg-require-filesystem-ts directive.

From-SVN: r235919
2016-05-05 11:03:56 +01:00
Jonathan Wakely d9cb3e7598 libstdc++/70940 Start fixing polymorphic memory resources
PR libstdc++/70940
	* include/experimental/memory_resource
	(__resource_adaptor_imp::do_allocate): Do not default-construct
	rebound allocator.
	(__resource_adaptor_imp::do_deallocate): Likewise. Use
	allocator_traits to get pointer type.
	(__null_memory_resource::do_allocate): Remove unused parameters.
	(__null_memory_resource::do_deallocate): Likewise.
	(__null_memory_resource::do_is_equal): Likewise. Add return statement.
	* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
	* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
	move to ...
	* testsuite/experimental/memory_resource/1.cc: Here.
	* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
	* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

From-SVN: r235868
2016-05-04 13:08:45 +01:00
Chris Gregory f92ab29ffa Remove trailing whitespace from libstdc++-v3 files
2016-04-29  Chris Gregory  <czipperz@gmail.com>

	* config/*: Remove trailing whitespace.
	* src/*: Likewise.
	* testsuite/tr1/*: Likewise.
	* testsuite/util/*: Likewise.

From-SVN: r235645
2016-04-29 17:11:43 +01:00
Jonathan Wakely 9f9eb84eac libstdc++/70766 use std::addressof instead of operator&
PR libstdc++/70766
	* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
	__addressof.
	* include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
	Likewise.
	* include/std/atomic (atomic<_Tp>): Likewise.
	* include/std/shared_mutex (shared_lock): Likewise.
	* testsuite/24_iterators/istream_iterator/70766.cc: New test.
	* testsuite/24_iterators/ostream_iterator/70766.cc : New test.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
	* testsuite/29_atomics/atomic/70766.cc: New test.
	* testsuite/30_threads/shared_lock/70766.cc: New test.

From-SVN: r235565
2016-04-28 13:33:07 +01:00
Jonathan Wakely 272b2ce49f hashtable_policy.h (__detail::_Insert_base, [...]): Improve comments.
* include/bits/hashtable_policy.h (__detail::_Insert_base,
	__detail::_Insert): Improve comments.

From-SVN: r235564
2016-04-28 13:32:50 +01:00
Jonathan Wakely 45e206963a libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode
PR libstdc++/70767
	* include/std/limits: Update comments about DRs.
	(numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
	numeric_limits<const volatile _Tp>): Define unconditionally.

From-SVN: r235486
2016-04-27 12:57:58 +01:00
Jonathan Wakely a635cdb2cc libstdc++/70762 fix fallback implementation of nonexistent_path
PR libstdc++/70762
	* testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
	static counter to return a different path on every call.

From-SVN: r235395
2016-04-24 19:06:54 +01:00
Tim Shen 216f7526fe re PR libstdc++/70745 (Wrong handling of regex_constant::match_not_eow and regex_constant::match_not_bow)
PR libstdc++/70745
	* include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
	Fix the match_not_bow and match_not_eow behavior.
	* testsuite/28_regex/regression.cc: Add testcase.

From-SVN: r235382
2016-04-23 03:58:37 +00:00
Jonathan Wakely a1e1ec7605 Fix std::codecvt_utf8* for big-endian targets
PR libstdc++/69703
	* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
	__codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.

From-SVN: r235293
2016-04-20 18:40:02 +01:00
Jonathan Wakely 29ca91f72e libstdc++/69703 ignore endianness in codecvt_utf8
PR libstdc++/69703
	* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in)):
	Override endianness bit in mode.
	* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
	that little_endian mode is ignored.
	* testsuite/experimental/filesystem/path/native/string.cc: New test.

From-SVN: r235216
2016-04-19 19:02:46 +01:00
Jonathan Wakely 1490525104 libstdc++/70609 fix filesystem::copy()
PR libstdc++/70609
	* src/filesystem/ops.cc (close_fd): New function.
	(do_copy_file): Set permissions before copying file contents. Check
	result of closing file descriptors. Don't copy streambuf when file
	is empty.
	(copy(const path&, const path&, copy_options, error_code&)): Use
	lstat for source file when copy_symlinks is set.
	* testsuite/experimental/filesystem/operations/copy.cc: Test copy().

From-SVN: r235215
2016-04-19 19:02:39 +01:00
Jonathan Wakely 9c476ad426 Add noexcept to Filesystem TS operators
* include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
	operator~ operator&=, operator|=, operator^=): Add noexcept to
	overloaded operators for copy_options, perms and directory_options.
	* src/filesystem/ops.cc (make_file_type, make_file_status,
	is_not_found_errno, file_time): Add noexcept.

From-SVN: r235214
2016-04-19 19:02:32 +01:00
Edward Smith-Rowland d855ad89cb c++14_warning.h: Do not refer C++14 as experimental.
2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/bits/c++14_warning.h: Do not refer C++14 as experimental.

From-SVN: r235210
2016-04-19 16:29:05 +00:00
Jonathan Wakely 0cded43df4 PR libstdc++/41759 reword static assertions in <random>
PR libstdc++/41759
	* include/bits/random.h: Reword static assertion messages to state
	positive conditions.
	* include/bits/random.tcc: Likewise.
	* include/bits/uniform_int_dist.h: Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	patterns.

From-SVN: r235160
2016-04-18 19:03:50 +01:00
Jonathan Wakely 90751aa731 Remove unused typedefs in std::bind types
* include/std/function (_Bind, _Bind_result): Remove unused typedefs.

From-SVN: r235157
2016-04-18 17:37:56 +01:00
Jonathan Wakely 351a5f8142 * config/cpu/sh/atomicity.h: Fix typo in comment.
From-SVN: r235156
2016-04-18 17:19:25 +01:00
Jonathan Wakely b05cf382e0 Define std:🧵:id comparison operators at namespace-scope
From-SVN: r235155
2016-04-18 17:16:14 +01:00
Jonathan Wakely 4ed6e52446 Make use of extensions more explicit in libstdc++ tests
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
	-Wno-pedantic to dg-options.
	* testsuite/20_util/align/2.cc: Use type as operand of alignof.
	* testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
	to dg-options.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
	Remove extra semi-colon.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Always supply second argument to static_assert.
	* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
	semi-colon.
	* testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
	dg-options.
	* testsuite/26_numerics/complex/literals/values.cc: Likewise.
	* testsuite/29_atomics/atomic/60695.cc: Likewise.
	* testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
	alignof when operand is an object not a type.
	* testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
	* testsuite/decimal/make-decimal.cc: Likewise.
	* testsuite/experimental/type_traits/value.cc: Always supply second
	argument to static_assert.
	* testsuite/util/testsuite_common_types.h: Use __extension__ for
	__int128 types.

From-SVN: r235154
2016-04-18 16:44:25 +01:00
Jonathan Wakely abb6e0a19d Don't include internal header in libstdc++ tests
* testsuite/experimental/type_erased_allocator/1.cc: Don't include
	internal header.
	* testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
	* testsuite/experimental/type_erased_allocator/2.cc: Likewise.
	* testsuite/experimental/type_erased_allocator/uses_allocator.cc:
	Likewise. Add licence and change to compile-only test.

From-SVN: r235153
2016-04-18 16:44:16 +01:00
Jonathan Wakely 6b6147dd48 Add attribute((unused)) in libstdc++ headers
* include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
	unused parameter.
	* include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.

From-SVN: r235152
2016-04-18 16:44:12 +01:00
Jonathan Wakely 8dc1e574ae Avoid -Wsign-compare warnings in std::to_string()
* include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
        warnings.

From-SVN: r235151
2016-04-18 16:43:50 +01:00
Edward Smith-Rowland 80dbaf98d4 Trivial comment misspelling.
From-SVN: r235092
2016-04-18 02:32:50 +00:00
Jason Merrill 9f285ccb77 Revert empty class parameter passing ABI changes.
From-SVN: r234977
2016-04-14 12:23:06 -04:00
Martin Sebor 342fac9537 PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
PR c++/70019 - VLA size overflow not detected
PR c++/70588 - SIGBUS on a VLA larger than SIZE_MAX / 2

gcc/testsuite/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * c-c++-common/ubsan/vla-1.c (main): Catch exceptions.
        * g++.dg/cpp1y/vla11.C: New test.
        * g++.dg/cpp1y/vla12.C: New test.
        * g++.dg/cpp1y/vla13.C: New test.
        * g++.dg/cpp1y/vla14.C: New test.
        * g++.dg/cpp1y/vla3.C: Restore deleted test.
        * gcc/testsuite/g++.dg/init/array24.C: Fully brace VLA initializer.
        * g++.dg/ubsan/vla-1.C: Disable exceptions.

gcc/cp/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
        functions.
        * decl.c (check_initializer, cp_finish_decl): Call them.
        (reshape_init_r): Reject incompletely braced intializer-lists
        for VLAs.
        * init.c (throw_bad_array_length, build_vla_check)
        (build_vla_size_check, build_vla_init_check): Define new functions.
        * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
        to detect a VLA.
        (store_init_value): Same.

gcc/doc/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * extend.texi (Variable Length): Document C++ specifics.

libstdc++-v3/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
       upper bound is positive.

From-SVN: r234966
2016-04-13 17:26:41 -06:00
Jonathan Wakely a6297ab587 Adjust for new empty class parameter passing ABI.
* include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
	_GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
	* include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
	of functions taking empty structs by value. Add a template parameter
	to overloads without hints. Rename overloads with hints to
	_M_emplace_hint.
	(_Hashtable::_M_erase(true_type, const_iterator),
	_Hashtable::_M_erase(false_type, const_iterator)): Change signatures
	by reordering parameters.
	* include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
	_M_emplace_hint instead of _M_emplace.
	* include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
	shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
	* include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
	__shared_ptr): Likewise.
	* include/bits/stl_algo.h (replace_if): Likewise.
	* include/bits/stl_pair.h (piecewise_construct_t,
	piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
	* include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
	__uses_alloc0): Likewise.
	* include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.

From-SVN: r234964
2016-04-13 23:00:50 +01:00
Edward Smith-Rowland 0c39f36dc5 Document C++17/TR29124 C++ Special Math Functions.
2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Document C++17/TR29124 C++ Special Math Functions.
	* include/bits/specfun.h: Add Doxygen markup.

From-SVN: r234905
2016-04-12 16:31:25 +00:00
Jonathan Wakely 6da8b93163 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
From-SVN: r234808
2016-04-07 15:26:24 +01:00
Eric Botcazou 49a52ebcc0 Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
* src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
	* src/Makefile.in: Regenerate.

From-SVN: r234782
2016-04-06 15:07:49 +00:00
Jonathan Wakely d2aee115cc Restore atomic builtins usage in libstdc++-v3
PR libstdc++/70554
	* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
	__atomic_fetch_add for bool.
	* configure: Regenerate.

From-SVN: r234761
2016-04-05 20:03:46 +01:00
Jonathan Wakely d5ec69f374 * testsuite/30_threads/thread/70503.cc: Require -static to work.
From-SVN: r234757
2016-04-05 18:21:48 +01:00
Jonathan Wakely 87cec93ee0 Ensure std::thread helpers have internal linkage
PR libstdc++/70503
	* src/c++11/thread.cc (execute_native_thread_routine,
	execute_native_thread_routine_compat): Give internal linkage.
	* testsuite/30_threads/thread/70503.cc: New test.

From-SVN: r234746
2016-04-05 14:35:32 +01:00
Ville Voutilainen 7b3318c41e re PR libstdc++/70437 (Instantiation loop with pair and is_constructible)
PR libstdc++/70437
 	* include/bits/stl_pair.h (_ConstructiblePair,
	_ImplicitlyConvertiblePair, _MoveConstructiblePair,
	_ImplicitlyMoveConvertiblePair): Add shortcut conditions
	for same-type cases.
	* testsuite/20_util/pair/70437.cc: New.

From-SVN: r234743
2016-04-05 14:31:30 +03:00
Jonathan Wakely 00e6c25ac8 libstdc++/69945 Add __gnu_cxx::__freeres hook
PR libstdc++/69945
	* config/abi/pre/gnu.ver: Add new symbol.
	* libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
	* testsuite/18_support/free_eh_pool.cc: New test.

From-SVN: r234465
2016-03-24 18:13:40 +00:00
Bernd Edlinger bfd84e6ba5 Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers.
2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * include/Makefile.am (install-freestanding-headers): Add
        concept_check.h and move.h to the installed headers.
        * include/Makefile.in: Regenerated.
        * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
        freestanding implementations.
        * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
        that this macro has no effect for freestanding implementations.
        * doc/html/manual/using_macros.html: Likewise.

From-SVN: r234414
2016-03-23 00:41:52 +00:00
Uros Bizjak f2f48c6c60 * libsupc++/guard.cc: Revert my last commit.
From-SVN: r234336
2016-03-18 16:44:44 +01:00
Uros Bizjak 09d8f35943 Revert:
2015-07-02  Uros Bizjak  <ubizjak@gmail.com>

	* 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: r234331
2016-03-18 16:28:54 +01:00
Jonathan Wakely 86715b0917 libstdc++/69939 Qualify get and forward
PR libstdc++/69939
	* include/experimental/tuple (__apply_impl): Qualify get and forward.

From-SVN: r233666
2016-02-24 13:59:29 +00:00
Jonathan Wakely be9967e877 Document __STDCPP_WANT_MATH_SPEC_FUNCS__ macro
* doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
	* doc/html/*: Regenerate.

From-SVN: r233645
2016-02-23 20:03:30 +00:00
Jonathan Wakely 9aee022eb9 libstdc++/69893 make <tr1/cmath> work with C++11
PR libstdc++/69893
	* include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
	exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
	llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
	nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
	trunc) [__cplusplus >= 201103L]: Import from namespace std.
	(fabs) [__cplusplus < 201103L]: Import from namespace std.
	* include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
	Likewise.
	* testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
	namespace before including TR1 headers.
	* testsuite/tr1/headers/c++200x/math.cc: New test.

From-SVN: r233644
2016-02-23 19:49:31 +00:00
Bernd Edlinger 5f6dd5930f re PR libstdc++/69881 (with gcc-6 of today building gcc-4.9 fails)
2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR libstdc++/69881
        * include/c_global/cstdarg: Undefine __need___va_list.
        * include/c_global/cstddef: Undefine all kinds of __need_*.

From-SVN: r233636
2016-02-23 15:57:09 +00:00
Tim Shen 244901a572 re PR libstdc++/69794 (std::regex_search match failure with regex object with flags grep|icase)
2016-02-16  Tim Shen  <timshen@google.com>

	PR libstdc++/69794
	* include/bits/regex_scanner.h: Add different special character
	sets for grep and egrep regex.
	* include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
	* testsuite/28_regex/regression.cc: Add new testcase.

From-SVN: r233482
2016-02-17 03:33:02 +00:00
Jonathan Wakely 2158532f31 Remove accidentally added 'constexpr' in previous commit
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
	added 'constexpr' in previous commit.
	* configure: Regenerate.

From-SVN: r233219
2016-02-08 15:37:59 +00:00
Jonathan Wakely cc07da33ae Enable isinf/isnan checks for all targets
PR libstdc++/48891
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
	checks for all targets except *-*-solaris2.* and ensure we find the
	libc math.h header not our own.
	* configure: Regenerate.

From-SVN: r233214
2016-02-08 15:22:32 +00:00
Dominik Vogt acc046464c libstdc++: S/390: Add missing baseline_symbols.txt for s390x/-m31.
The attached patch copies the existing 
libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt
to .../s390x-linux-gnu/32/baseline_symbols.txt.  This fixes the
abi test failure on s390x with -m31.

libstdc++-v3/ChangeLog

	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
	New file.  Copied over from s390-linux-gnu.

From-SVN: r233170
2016-02-05 10:25:08 +00:00
Jonathan Wakely 3555173fb9 Test for C99 stdlib.h functions with -std=c++98
PR libstdc++/69626
	* acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
	with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* testsuite/21_strings/c_strings/char/69626.cc: New.

From-SVN: r233161
2016-02-04 23:47:21 +00:00
Jonathan Wakely 15ebf37974 Regenerate front page of libstdc++ HTML docs
* doc/html/index.html: Regenerate.

From-SVN: r233151
2016-02-04 21:46:19 +00:00
Jonathan Wakely dbcda3ee8e Update copyright years in libstdc++ manual and add link
* doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
	* doc/xml/manual/spine.xml: Update copyright years and author blurb.
	* doc/html/*: Regenerate.

From-SVN: r233150
2016-02-04 21:43:40 +00:00
Bernd Edlinger 571512d5f5 Don't define guard macros when doing #include_next in math.h and stdlib.h
2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR libstdc++/69581
	* include/c_compatibility/math.h: Move header guards.
	* include/c_compatibility/stdlib.h: Likewise.

From-SVN: r233035
2016-02-01 11:13:40 +00:00
Jonathan Wakely f597d5f73c Fix Cygwin bootstrap error due to TM symbols
PR libstdc++/69506
	* config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r232974
2016-01-29 10:52:08 +00:00
John David Anglin 69b0daeb4a re PR libstdc++/69450 (libstdc++-v3/include/math.h:66:1 2: error: 'constexpr bool std::isnan(double)' conflicts with a previous declaration)
PR libstdc++/69450
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
	isinf and isnan functions into two independent checks.  Check on hpux.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/c_global/cmath (isinf(double), isnan(double)): Use
	_GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
	respectively.

From-SVN: r232925
2016-01-28 13:09:23 +00:00
Jakub Jelinek 8dc781e454 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
From-SVN: r232898
2016-01-27 20:31:06 +01:00
Jonathan Wakely bae87f7fdd Set FP options for failing special functions tests
PR libstdc++/69295
	* testsuite/ext/special_functions/hyperg/check_value.cc: Use
	-ffp-contract=off, and -ffloat-store to disable excess precision.
	* testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
	-ffp-contract=off.

From-SVN: r232879
2016-01-27 15:09:38 +00:00
Jonathan Wakely f1d591e8a6 Fix assertions for move assignment of trivial types
PR libstdc++/69478
	* include/bits/stl_algobase.h (__copy_move<_IsMove, true,
	random_access_iterator_tag>): Check is_move_assignable when moving.
	(__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
	Likewise.
	* testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
	* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
	* testsuite/25_algorithms/move/69478.cc: New.
	* testsuite/25_algorithms/move_backward/69478.cc: new.

From-SVN: r232842
2016-01-26 19:38:20 +00:00
Andris Pavenis 8964d2a090 Fix build failure when wide character support is not available
* include/c_compatibility/stdlib.h: Include wide character related
	definitions only when they are available in cstdlib.

From-SVN: r232835
2016-01-26 18:07:33 +02:00
Jonathan Wakely 2944621e2c Avoid including all of <random> in <algorithm>
PR libstdc++/69464
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/random.h (uniform_int_distribution): Move to
	bits/uniform_int_dist.h.
	* include/bits/random.tcc (uniform_int_distribution::operator(),
	uniform_int_distribution::__generate_impl): Likewise.
	* include/bits/uniform_int_dist.h: New header.
	* include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
	<bits/uniform_int_dist.h> instead of <random>.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: Include correct header for uninitialized_copy.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: Likewise.
	* testsuite/25_algorithms/nth_element/58800.cc: Include correct
	header for vector.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.

From-SVN: r232798
2016-01-25 16:44:30 +00:00
John David Anglin 3676c0871f re PR libstdc++/69446 (cow-stdexcept.cc:374:1: error: alias d efinitions not supported in this configuration)
PR libstdc++/69446
	* config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r232769
2016-01-23 22:24:59 +00:00
Edward Smith-Rowland 02dc241929 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>

	TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
	* include/c_compatibility/math.h: Import the TR29124 functions
	into the global namespace.
	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
	xfail and make compile-only.
	* testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
	* testsuite/special_functions/03_beta/compile_2.cc: Ditto.
	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
	* testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
	* testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
	* testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
	* testsuite/special_functions/14_expint/compile_2.cc: Ditto.
	* testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
	* testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
	* testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
	* testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
	* testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
	* testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.

From-SVN: r232755
2016-01-22 23:17:10 +00:00
Jonathan Wakely d1fb377c68 Constrain std::valarray functions and operators
PR libstdc++/69116
	* include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
	define result_type for types which can be safely used with valarrays.
	* testsuite/26_numerics/valarray/69116.cc: New.

From-SVN: r232748
2016-01-22 21:15:41 +00:00
Jonathan Wakely 350fe2829e Allow _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN to be overridden
PR libstdc++/69413
	* config/os/gnu-linux/os_defines.h: Define
	_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
	* include/c_global/cmath (isinf, isnan): Check it.
	* doc/xml/manual/internals.xml: Document it.
	* doc/html/*: Regenerate.

From-SVN: r232726
2016-01-22 12:47:26 +00:00
Jonathan Wakely ab56cbed60 libstdc++/69406 Fix test to check for supported headers
PR libstdc++/69406
	* include/bits/cpp_type_traits.h: Ensure C++ language linkage.
	* include/ext/type_traits.h: Likewise.
	* testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
	for presence of C headers.
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
	dg-error line number.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.

From-SVN: r232672
2016-01-21 13:33:27 +00:00
Torvald Riegel 7e10bcfa3c libstdc++: Darwin does not support weak refs without definition.
PR libstdc++/69310
        * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r232628
2016-01-20 17:47:03 +00:00
Jonathan Wakely 3f93466af4 Add C++11 <cmath> overloads to the global namespace
PR libstdc++/60401
	* include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
	copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
	lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
	nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
	tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
	Add using declarations.
	* testsuite/26_numerics/headers/cmath/60401.cc: New.

From-SVN: r232627
2016-01-20 17:44:58 +00:00
Jonathan Wakely eac437bf2c Ensure C++ language linkage in cmath and cstdlib
PR libstdc++/69386
	* include/c_global/ccomplex: Ensure C++ language linkage.
	* include/c_global/cmath: Likewise.
	* include/c_global/cstdlib: Likewise.
	* include/c_global/ctgmath: Likewise.
	* testsuite/17_intro/headers/c++2011/linkage.cc: New.

From-SVN: r232607
2016-01-20 12:34:25 +00:00
Jonathan Wakely 96e19adabc Add C++-conforming wrappers for stdlib.h and math.h
PR libstdc++/14608
	PR libstdc++/60401
	* include/Makefile.am: Use c_compatibility math.h and stdlib.h for
	--enable-cheaders=c_global configs.
	* include/Makefile.in: Regenerate.
	* include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
	test and allow inclusion from C files.
	* include/c_compatibility/stdlib.h: Likewise. Support freestanding.
	(at_quick_exit, quick_exit): Add using directives.
	* include/c_global/cmath: Use #include_next for math.h.
	* include/c_global/cstdlib: Use #include_next for stdlib.h.
	* testsuite/26_numerics/headers/cmath/14608.cc: New.
	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
	Remove xfail for most targets.
	* testsuite/26_numerics/headers/cstdlib/60401.cc: New.

From-SVN: r232586
2016-01-19 21:43:55 +00:00
Torvald Riegel 9585381acd libstdc++: Fix usage of __GXX_WEAK__ in TM TS support.
* include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
	(_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use	_GLIBCXX_USE_WEAK_REF
	and move after its definition.
	* config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
	* src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
	__GXX_WEAK__, and only provide transactional clones if
	_GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
	functions.

From-SVN: r232539
2016-01-18 20:09:55 +00:00
Jonathan Wakely c91bcffc4a Add test for PR 60637
PR libstdc++/60637
	* testsuite/26_numerics/headers/cmath/60637.cc: Add test.

From-SVN: r232534
2016-01-18 17:15:42 +00:00
Jonathan Wakely d75d9f91e3 Fix PR number in changelog for commit r232504
From-SVN: r232507
2016-01-18 12:34:22 +00:00
Jonathan Wakely 9c5ad80efd Fix construction of std::function from null pointer-to-member
PR libstdc++/69293
	* include/std/functional (_Function_base::_M_not_empty_function):
	Change overloads for pointers to take arguments by value.
	* testsuite/20_util/function/cons/57465.cc: Add tests for
	pointer-to-member cases.

From-SVN: r232504
2016-01-18 11:43:37 +00:00
Jonathan Wakely f5460595a4 Fix libstdc++ build with -fno-exceptions
PR libstdc++/69340
	* src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
	Use macros for exception handling and fix unused parameter warning.

From-SVN: r232502
2016-01-18 11:24:20 +00:00
John David Anglin 271366f679 re PR libstdc++/68734 (FAIL: libstdc++-abi/abi_check)
PR libstdc++/68734
	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r232486
2016-01-17 18:16:42 +00:00
Torvald Riegel 7a5d1d34ee libstdc++: Fix static_assert.
* src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.

From-SVN: r232483
2016-01-17 17:43:37 +00:00
H.J. Lu 5445d5bff0 Add __int128 symbols to x32 aseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
	__int128 symbols.

From-SVN: r232474
2016-01-16 14:52:21 -08:00
Jonathan Wakely d7c1581c04 Use static assertion for uses-allocator construction
PR libstdc++/69293
	* include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
	static assertion that type is constructible from the arguments.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: New.
	* testsuite/20_util/uses_allocator/69293_neg.cc: New.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.

From-SVN: r232457
2016-01-15 23:12:13 +00:00
Jonathan Wakely 3d076231c6 PR libstdc++/69294 Check for isinf and isnan on AIX
PR libstdc++/69294
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
	and isnan on AIX. Quote variables.
	* configure: Regenerate.

From-SVN: r232455
2016-01-15 23:00:30 +00:00
Torvald Riegel a04d5fc95d libstdc++: Make certain exceptions transaction_safe.
From-SVN: r232454
2016-01-15 22:42:41 +00:00
Steve Ellcey cebeb718fe random.tcc: Use __builtin_isfinite instead of std::isfinite.
2016-01-15  Steve Ellcey  <sellcey@imgtec.com>

	* include/ext/random.tcc: Use __builtin_isfinite instead of
	std::isfinite.

From-SVN: r232452
2016-01-15 22:26:02 +00:00
Jonathan Wakely 3b07547d62 * include/bits/std_mutex.h: Fix Doxygen @file name.
From-SVN: r232416
2016-01-15 12:37:15 +00:00
Edward Smith-Rowland 2be75957b8 Implement TR29124 C++ special Math Functions.
2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
	    Jonathan Wakely  <jwakely@redhat.com>
	    Florian Goth <CaptainSifff@gmx.de>

	Implement TR29124 C++ special Math Functions.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/bits/specfun.h: New.
	* include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
	* include/tr1/bessel_function.tcc: Ditto.
	* include/tr1/beta_function.tcc: Ditto.
	* include/tr1/cmath: Ditto.
	* include/tr1/ell_integral.tcc: Ditto.
	* include/tr1/exp_integral.tcc: Ditto.
	* include/tr1/gamma.tcc: Ditto.
	* include/tr1/hypergeometric.tcc: Ditto.
	* include/tr1/legendre_function.tcc: Ditto.
	* include/tr1/modified_bessel_func.tcc: Ditto.
	* include/tr1/poly_hermite.tcc: Ditto.
	* include/tr1/poly_laguerre.tcc: Ditto.
	* include/tr1/riemann_zeta.tcc: Ditto.
	* include/tr1/special_function_util.h: Ditto.
	* testsuite/ext/special_functions/conf_hyperg: New.
	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
	* testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
	* testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
	* testsuite/ext/special_functions/hyperg: New.
	* testsuite/ext/special_functions/hyperg/check_nan.cc: New.
	* testsuite/ext/special_functions/hyperg/check_value.cc: New.
	* testsuite/ext/special_functions/hyperg/compile.cc: New.
	* testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
	* testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
	* testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
	* testsuite/special_functions/02_assoc_legendre/compile.cc: New.
	* testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
	* testsuite/special_functions/03_beta/check_nan.cc: New.
	* testsuite/special_functions/03_beta/check_value.cc: New.
	* testsuite/special_functions/03_beta/compile.cc: New.
	* testsuite/special_functions/03_beta/compile_2.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
	* testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
	* testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
	* testsuite/special_functions/10_cyl_neumann/compile.cc: New.
	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
	* testsuite/special_functions/11_ellint_1/check_nan.cc: New.
	* testsuite/special_functions/11_ellint_1/check_value.cc: New.
	* testsuite/special_functions/11_ellint_1/compile.cc: New.
	* testsuite/special_functions/11_ellint_1/compile_2.cc: New.
	* testsuite/special_functions/12_ellint_2/check_nan.cc: New.
	* testsuite/special_functions/12_ellint_2/check_value.cc: New.
	* testsuite/special_functions/12_ellint_2/compile.cc: New.
	* testsuite/special_functions/12_ellint_2/compile_2.cc: New.
	* testsuite/special_functions/13_ellint_3/check_nan.cc: New.
	* testsuite/special_functions/13_ellint_3/check_value.cc: New.
	* testsuite/special_functions/13_ellint_3/compile.cc: New.
	* testsuite/special_functions/13_ellint_3/compile_2.cc: New.
	* testsuite/special_functions/14_expint/check_nan.cc: New.
	* testsuite/special_functions/14_expint/check_value.cc: New.
	* testsuite/special_functions/14_expint/compile.cc: New.
	* testsuite/special_functions/14_expint/compile_2.cc: New.
	* testsuite/special_functions/15_hermite/check_nan.cc: New.
	* testsuite/special_functions/15_hermite/check_value.cc: New.
	* testsuite/special_functions/15_hermite/compile.cc: New.
	* testsuite/special_functions/15_hermite/compile_2.cc: New.
	* testsuite/special_functions/16_laguerre/check_nan.cc: New.
	* testsuite/special_functions/16_laguerre/check_value.cc: New.
	* testsuite/special_functions/16_laguerre/compile.cc: New.
	* testsuite/special_functions/16_laguerre/compile_2.cc: New.
	* testsuite/special_functions/17_legendre/check_nan.cc: New.
	* testsuite/special_functions/17_legendre/check_value.cc: New.
	* testsuite/special_functions/17_legendre/compile.cc: New.
	* testsuite/special_functions/17_legendre/compile_2.cc: New.
	* testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
	* testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
	* testsuite/special_functions/18_riemann_zeta/compile.cc: New.
	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
	* testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
	* testsuite/special_functions/19_sph_bessel/check_value.cc: New.
	* testsuite/special_functions/19_sph_bessel/compile.cc: New.
	* testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
	* testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
	* testsuite/special_functions/20_sph_legendre/check_value.cc: New.
	* testsuite/special_functions/20_sph_legendre/compile.cc: New.
	* testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
	* testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
	* testsuite/special_functions/21_sph_neumann/check_value.cc: New.
	* testsuite/special_functions/21_sph_neumann/compile.cc: New.
	* testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
	* testsuite/util/specfun_testcase.h: New.
	* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
	* testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.


Co-Authored-By: Florian Goth <CaptainSifff@gmx.de>
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r232377
2016-01-14 18:12:43 +00:00
Jonathan Wakely 39a1d8c894 Use ::isinf and ::isnan if libc defines them
PR libstdc++/48891
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
	and isnan functions.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/c_global/cmath (isinf(double), isnan(double))
	[_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
	* testsuite/26_numerics/headers/cmath/48891.cc: New.

From-SVN: r232327
2016-01-13 16:25:56 +00:00
Rainer Orth e862906c25 Introduce separate baselines for Solaris 10 and 11+ (PR libstdc++/66006)
PR libstdc++/66006
	* configure.host (abi_baseline_pair): Use separate baseline for
	Solaris 11+ and Solaris 10 with gld.
	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
	* config/abi/post/solaris2.11/baseline_symbols.txt: New file.
	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.

From-SVN: r232317
2016-01-13 09:48:53 +00:00
Daniel Kruegler 26b5ace7ea libstdc++/68877 Reimplement std::__is_swappable
2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>

	PR libstdc++/68877
	* include/std/type_traits: Following N4511, reimplement __is_swappable
	and __is_nothrow_swappable. Move __is_swappable to namespace std,
	adjust callers. Use __is_nothrow_swappable in swap.
	* include/bits/move.h: Use __is_nothrow_swappable in swap.
	* testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
	__is_swappable related tests.
	* testsuite/20_util/is_swappable/value.cc: New.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
	* testsuite/25_algorithms/swap/68877.cc: New.

From-SVN: r232296
2016-01-12 21:19:58 +00:00
Jonathan Wakely bd285a8bdb Extend std::function test for PR 68995
* testsuite/20_util/function/68995.cc: Test reference_wrapper cases.

From-SVN: r232294
2016-01-12 19:39:47 +00:00
Jonathan Wakely 1c3c7c4145 Prevent recursive instantiation in std::function
PR libstdc++/69005
	PR libstdc++/69222
	* include/std/functional (function::_Invoke): Remove, use result_of.
	(function::_Callable): Replace alias template with class template
	and use partial specialization instead of _NotSelf alias template.
	(function(_Functor)): Add "not self" constraint so that _Callable is
	not used while type is incomplete.
	* testsuite/20_util/function/69222.cc: New.

From-SVN: r232273
2016-01-12 14:54:33 +00:00
Jonathan Wakely 1517bc3008 allocator_traits<allocator<T>> partial specialization
PR libstdc++/60976
	* include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
	Define partial specialization.
	* testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
	destroy members to std::allocator explicit specialization.

From-SVN: r232232
2016-01-11 16:47:58 +00:00
Jonathan Wakely 8babc12b22 Use -std option in test for C99 macros in <cmath>
* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++.cc: Rename to ...
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++0x.cc: Rename to ...
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++11.cc: Here.

From-SVN: r232165
2016-01-08 14:59:36 +00:00
Jonathan Wakely 32a8c97f5c Fix PR number in previous commit
From-SVN: r232163
2016-01-08 13:19:25 +00:00
Jonathan Wakely e525d78caa Add missing include for std::__addressof
PR libstdc++/69160
	* include/bits/uses_allocator.h: Add missing include.

From-SVN: r232162
2016-01-08 13:14:01 +00:00
Jonathan Wakely f885fa898f Use std::addressof in insert iterators, allocators and promises
PR libstdc++/69105
	PR libstdc++/69106
	PR libstdc++/69114
	* include/bits/stl_iterator.h (back_insert_iterator,
	front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
	* include/bits/uses_allocator.h (__use_alloc): Use __addressof.
	* include/std/future (__future::base::_State_baseV2::__setter):
	Likewise.
	* include/std/scoped_allocator (__outermost): Likewise.
	* testsuite/20_util/scoped_allocator/69114.cc: New.
	* testsuite/20_util/uses_allocator/69114.cc: New.
	* testsuite/30_threads/promise/69106.cc: New.

From-SVN: r232129
2016-01-07 15:01:33 +00:00
Jonathan Wakely 373a75fb2a Remove noexcept from function template that can throw
PR libstdc++/69092
	* include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
	Remove _GLIBCXX_NOEXCEPT.
	testsuite/21_strings/basic_string/cons/char/69092.cc: New.

From-SVN: r232112
2016-01-06 20:34:41 +00:00
Jonathan Wakely 0c3e5dd1e6 Rename bits/mutex.h to avoid clashing with glibc
* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.
	* include/bits/mutex.h: Rename to bits/std_mutex.h.
	* include/std/condition_variable: Adjust include.
	* include/std/mutex: Likewise.

From-SVN: r232101
2016-01-06 13:00:33 +00:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Edward Smith-Rowland 9be77061cf 2015-12-27 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/bits/c++0x_warning.h Remove experimental language.

From-SVN: r231966
2015-12-28 00:07:19 +00:00
Jason Merrill b4a0c79b1a Correct use of __GXX_WEAK__ macro.
* testsuite/ext/bitmap_allocator/check_deallocate_null.cc
	* testsuite/ext/bitmap_allocator/check_allocate_max_size.cc

From-SVN: r231953
2015-12-24 22:25:09 -05:00
Jonathan Wakely 9643ce888b Add inline to std::__invfwd
PR libstdc++/59768
	* include/std/functional (__invfwd): Add inline specifier.

From-SVN: r231900
2015-12-22 11:37:07 +00:00
Jonathan Wakely 989d4a8609 Rename test file that had incorrect bug number
PR libstdc++/68982
	testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ...
	testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number.

From-SVN: r231881
2015-12-21 14:16:36 +00:00
Jonathan Wakely a716d11ad4 libstdc++/68995 qualify calls to __callable_functor
PR libstdc++/68995
	* include/std/functional (_function_handler, function): Qualify
	__callable_functor.
	* testsuite/20_util/function/68995.cc: New.

From-SVN: r231880
2015-12-21 13:02:18 +00:00
Jonathan Wakely e9e6a99538 libstdc++/68276 consistently qualify std::forward
PR libstdc++/68276
	* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
	std::forward.
	testsuite/20_util/function_objects/mem_fn/68276.cc: New.

From-SVN: r231879
2015-12-21 13:02:12 +00:00
Ville Voutilainen de0830e12b re PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)
PR libstdc++/66693.

	* include/std/tuple (tuple_element, tuple_size, tuple_element_t,
	__tuple_element_t): Move to...
	* include/std/utility: ...here.
	* testsuite/20_util/pair/astuple/astuple.cc: Adjust.
	* testsuite/20_util/pair/astuple/astuple_cpp14.cc: New.
	* testsuite/20_util/tuple/tuple_element.cc: Adjust.
	* testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc:
	New.
	* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust.

From-SVN: r231875
2015-12-21 13:22:16 +02:00
Ville Voutilainen ca2c1b3283 Fix a regression introduced by the fix of libstdc++/68276.
2015-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Fix a regression introduced by the fix of libstdc++/68276.
	* src/c++11/ios.cc (_M_grow_words): Catch bad_alloc again so that
	bad_array_new_length is handled properly.

From-SVN: r231839
2015-12-18 23:27:53 +02:00
Ville Voutilainen 03d5d0c353 re PR libstdc++/68276 (ios_base::_M_grow_words should use new (std::nothrow))
2015-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/68276

	* src/c++11/ios.cc (_M_grow_words): Use nothrow new.
	* testsuite/27_io/ios_base/storage/11584.cc: Adjust.

From-SVN: r231819
2015-12-18 17:17:09 +02:00
Andris Pavenis c1dd339fa0 [DJGPP] Update config/os/djgpp/error_constants.h
* config/os/djgpp/error_constants.h: update according to DJGPP errno
       macros.

From-SVN: r231801
2015-12-18 06:28:01 +02:00
Jonathan Wakely 55089c2b5c libstdc++/68921 add timeout argument to futex(2)
PR libstdc++/68921
	* src/c++11/futex.cc
	(__atomic_futex_unsigned_base::_M_futex_wait_until): Use null pointer
	as timeout argument.

From-SVN: r231676
2015-12-16 10:40:04 +00:00
Jonathan Wakely b110e777bd Restore accidentally-removed volatile qualifier
* include/std/functional (_Mu<_Arg, false, false>::operator()): Restore
	accidentally-removed volatile qualifier.

From-SVN: r231660
2015-12-15 17:06:25 +00:00
Jonathan Wakely 72030b28a1 Remove vestigial traces of std::tr1::bind
* include/std/functional (is_placeholder, is_bind_expression): Update
	comments.
	(_Safe_tuple_element): Replace with _Safe_tuple_element_t alias
	template.
	(_Mu): Remove vestigial TR1 return types and update coments.

From-SVN: r231653
2015-12-15 14:17:27 +00:00
Jonathan Wakely 6666731254 Fix cv-qualifiers in std::bind invocation
PR libstdc++/68912
	* include/std/functional (_Bind::operator()): Use lvalue functor to
	deduce return type.
	* testsuite/20_util/bind/68912.cc: New.

From-SVN: r231652
2015-12-15 14:17:17 +00:00
Tim Shen 3ce38f68f9 re PR libstdc++/68863 (Regular expressions: Backreferences don't work in negative lookahead)
PR libstdc++/68863
	* include/bits/regex_executor.tcc (_Executor::_M_lookahead):
	Copy the captured content for lookahead, so that the backreferences
	inside can refer to them.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc:
	New testcase.

From-SVN: r231641
2015-12-15 04:50:29 +00:00
Ville Voutilainen f5a8c224d1 Bad date on the Changelog entry, boo hiss.
From-SVN: r231612
2015-12-14 13:11:03 +02:00
Ville Voutilainen 5d190d2124 Document the implementation of Logical Operator Type Traits.
* doc/html/index.html: Regenerate.
	* doc/html/manual/status.html: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Add P0013R1 to C++ 201z
	and to Library Fundamentals 2 TS.

From-SVN: r231611
2015-12-14 13:08:30 +02:00
Jonathan Wakely f3d7dd52a6 Fix std::invoke support for reference_wrappers
PR libstdc++/59768
	* include/std/functional (_Unwrap, __invfwd): Define.
	(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
	Add partial specializations for const reference_wrappers and simplify.
	* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
	* testsuite/20_util/function_objects/invoke/59768.cc: New.

From-SVN: r231574
2015-12-11 21:45:51 +00:00
Ville Voutilainen e3fc446b9c re PR libstdc++/68139 (rethrow_if_nested should tolerate overloaded unary operator&)
PR libstdc++/68139

From-SVN: r231562
2015-12-11 14:04:23 +02:00
Jonathan Wakely b2a485f2b0 Change tests to use -std=gnu++14 not -std=gnu++1y
* testsuite/experimental/memory/shared_ptr/assign/assign.cc: Replace
	-std=gnu++1y with -std=gnu++14.
	* testsuite/experimental/memory/shared_ptr/cast/cast.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/modifiers/swap.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/operators.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/owner_before.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/use_count.cc:
	Likewise.

From-SVN: r231517
2015-12-10 14:39:07 +00:00
Jonathan Wakely aca12aff8b Fix dejagnu directives in shared_ptr test
PR libstdc++/68825
	* include/experimental/bits/shared_ptr.h (__shared_ptr, __weak_ptr,
	experimental::shared_ptr, experimental::weak_ptr): Constrain
	assignment operators.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Change to a compile-only test and change dg-excess-errors to dg-error.

From-SVN: r231516
2015-12-10 14:32:16 +00:00
Jonathan Wakely 6b4f890601 Improve generated libstdc++ API docs
* doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers
	to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update
	PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages.
	* include/backward/strstream: Correct @file comment.
	* include/bits/forward_list.h: Improve Doxygen comments.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mutex.h: Likewise.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/debug/vector (_Safe_vector): Add @brief section to comment.
	* include/experimental/bits/fs_dir.h: Correct @file comment.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/bits/fs_ops.h: Likewise.
	* include/experimental/bits/fs_path.h: Likewise.
	* include/experimental/bits/string_view.tcc: Likewise.
	* include/experimental/optional: Document experimental status.
	* include/experimental/string_view: Correct @file comment.
	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce
	whitespace to avoid Doxygen bug.
	* include/std/bitset: Remove redundant @class Doxygen command. Add
	parentheses to avoid Doxygen bug.
	* include/std/mutex: Improve Doxygen comments.
	* include/tr2/dynamic_bitset: Add missing @param documentation.
	* scripts/run_doxygen: Rename man pages for std::experimental types.

From-SVN: r231512
2015-12-10 14:02:52 +00:00
Jonathan Wakely 755be51d02 PR libstdc++/57060 cope with invalid thread IDs
PR libstdc++/57060
	* include/std/thread (operator==(thread::id, thread::id)): Do not use
	__gthread_equal.
	(operator<(thread::id, thread::id)): Add comment.
	(this_thread::get_id()): Do not use __gthread_self for single-threaded
	programs using glibc.
	* testsuite/30_threads/this_thread/57060.cc: New.

From-SVN: r231289
2015-12-04 17:32:40 +00:00
Jonathan Wakely 28eca950b7 Fix ambiguity with multiple enable_shared_from_this bases
PR libstdc++/56383
	* testsuite/20_util/enable_shared_from_this/56383.cc: New.
	* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
	friend declaration match previous declaration of
	__enable_shared_from_this_helper.
	* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.

From-SVN: r231181
2015-12-02 15:08:18 +00:00
Jonathan Wakely 22f5095f31 Define path::_Cmpt after specializing path::__is_encoded_char
* include/experimental/bits/fs_path.h (path::_Cmpt): Move definition
	after path::__is_encoded_char explicit specializations.

From-SVN: r231107
2015-12-01 11:33:17 +00:00
Jonathan Wakely 5930d87a2d Ensure another pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
	dg-options and avoid use of uniform-init.

From-SVN: r230977
2015-11-26 16:25:55 +00:00
Jonathan Wakely 43a2362b94 Ensure pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to
	dg-options and avoid use of uniform-init.

From-SVN: r230973
2015-11-26 15:42:47 +00:00
David Edelsohn f95207445b * configure: Regenerate.
From-SVN: r230949
2015-11-26 08:24:19 -05:00
Jonathan Wakely 75837d7b13 Improve tests for valid values of iostream bitmask types
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly
	check minimum and maximum values, and size of underlying type.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230868
2015-11-25 13:49:06 +00:00
Rainer Orth e5ef217c3e Port libvtv to Solaris
libstdc++-v3:
	* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
	-Wl,-R in VTV_CXXLINKFLAGS.
	* configure: Regenerate.

	* testsuite/18_support/bad_exception/23591_thread-1.c: Use
	-fvtable-verify=none on Solaris 12+.

	libgcc:
	* Makefile.in (VTV_CFLAGS): New variable.
	(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
	(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
	* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
	Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
	to extra_parts if $enable_vtable_verify = yes.

	libvtv:
	* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
	* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
	<*-*-solaris2*>: Check for init priority support.
	Check for getexecname, __fortify_fail, _obstack_begin.
	(VTV_NO_OBSTACK): New conditional.
	* configure: Regenerate.
	* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
	Create empty config.h
	* Makefile.in: Regenerate.

	* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
	variable.
	(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
	(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.

	(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
	[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.

	(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
	(iterate_modules): Fix typo.
	Use VTV_PAGE_SIZE.
	(dl_iterate_phdr_callback): Fix typo.
	Use VTV_PAGE_SIZE.
	(__VLTChangePermission): Fix typos.

	include:
	* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
	__sparc__]: Define.

	gcc:
	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
	(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
	(STARTFILE_SPEC): Use %(startfile_vtv).
	(ENDFILE_SPEC): Use %(endfile_vtv).
	(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
	ENDFILE_VTV_SPEC.

	* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.

From-SVN: r230865
2015-11-25 10:30:25 +00:00
Rainer Orth ef3a75060e Handle C++11 <math.h> overloads on Solaris 12
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
	* configure.ac: Use it.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* include/c_global/cmath [__cplusplus >= 201103L]
	(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::isfinite): Likewise.
	(std::isinf): Likewise.
	(std::isnan): Likewise.
	(std::isnormal): Likewise.
	(std::signbit): Likewise.
	(std::isgreater): Likewise.
	(std::isgreaterequal): Likewise.
	(std::isless): Likewise.
	(std::islessequal): Likewise.
	(std::islessgreater): Likewise.
	(std::isunordered): Likewise.
	(std::acosh): Likewise.
	(std::asinh): Likewise.
	(std::atanh): Likewise.
	(std::cbrt): Likewise.
	(std::copysign): Likewise.
	(std::erf): Likewise.
	(std::erfc): Likewise.
	(std::exp2): Likewise.
	(std::expm1): Likewise.
	(std::fdim): Likewise.
	(std::fma): Likewise.
	(std::fmax): Likewise.
	(std::fmin): Likewise.
	(std::hypot): Likewise.
	(std::ilogb): Likewise.
	(std::lgamma): Likewise.
	(std::llrint): Likewise.
	(std::llround): Likewise.
	(std::log1p): Likewise.
	(std::log2): Likewise.
	(std::logb): Likewise.
	(std::lrint): Likewise.
	(std::lround): Likewise.
	(std::nearbyint): Likewise.
	(std::nextafter): Likewise.
	(std::nexttoward): Likewise.
	(std::remainder): Likewise.
	(std::remquo): Likewise.
	(std::rint): Likewise.
	(std::round): Likewise.
	(std::scalbln): Likewise.
	(std::scalbn): Likewise.
	(std::tgamma): Likewise.
	(std::trunc): Likewise.
	* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
	Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::tr1::asinh): Likewise.
	(std::tr1::atanh): Likewise.
	(std::tr1::cbrt): Likewise.
	(std::tr1::copysign): Likewise.
	(std::tr1::erf): Likewise.
	(std::tr1::erfc): Likewise.
	(std::tr1::exp2): Likewise.
	(std::tr1::expm1): Likewise.
	(std::tr1::fabs): Likewise.
	(std::tr1::fdim): Likewise.
	(std::tr1::fma): Likewise.
	(std::tr1::fmax): Likewise.
	(std::tr1::fmin): Likewise.
	(std::tr1::hypot): Likewise.
	(std::tr1::ilogb): Likewise.
	(std::tr1::lgamma): Likewise.
	(std::tr1::llrint): Likewise.
	(std::tr1::llround): Likewise.
	(std::tr1::log1p): Likewise.
	(std::tr1::log2): Likewise.
	(std::tr1::logb): Likewise.
	(std::tr1::lrint): Likewise.
	(std::tr1::lround): Likewise.
	(std::tr1::nearbyint): Likewise.
	(std::tr1::nextafter): Likewise.
	(std::tr1::nexttoward): Likewise.
	(std::tr1::remainder): Likewise.
	(std::tr1::remquo): Likewise.
	(std::tr1::rint): Likewise.
	(std::tr1::scalbln): Likewise.
	(std::tr1::scalbn): Likewise.
	(std::tr1::tgamma): Likewise.
	(std::tr1::trunc): Likewise.
	(std::tr1::pow): Likewise.

	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
	Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*.

From-SVN: r230807
2015-11-24 13:15:43 +00:00
David Edelsohn 3b58931386 * testsuite/23_containers/vector/profile/vector.cc: Add maxdata option on AIX.
From-SVN: r230701
2015-11-21 00:38:25 -05:00
Jan Kratochvil cdccafd922 re PR libstdc++/68448 (Python Pretty Printers get disabled on libstdc++ reload by GDB)
PR libstdc++/68448
	* python/hook.in: Call register_libstdcxx_printers.
	* python/libstdcxx/v6/__init__.py: Wrap it to
	register_libstdcxx_printers.

From-SVN: r230669
2015-11-20 19:00:51 +00:00
Jonathan Wakely 5f0b7c9548 PR libstdc++/66059 optimise _Build_index_tuple
PR libstdc++/66059
	* include/std/utility (_Build_index_tuple): Optimise.

From-SVN: r230496
2015-11-17 19:54:33 +00:00
Doug Evans 46d825c59c re PR libstdc++/67440 (pretty-printing of a const set<foo> fails)
PR libstdc++/67440
	* python/libstdcxx/v6/printers.py (find_type): Handle "const" in
	type name.
	* testsuite/libstdc++-prettyprinters/debug.cc: Add test for
	const set<int>.
	* testsuite/libstdc++-prettyprinters/simple.cc: Ditto.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Ditto.

From-SVN: r230437
2015-11-16 21:32:26 +00:00
Jonathan Wakely 356510acd9 PR libstdc++/68353 fix _GLIBCXX_USE_C99_WCHAR test
PR libstdc++/68353
	* include/bits/basic_string.h: Test value of _GLIBCXX_USE_C99_WCHAR
	not whether it is defined.
	* include/ext/vstring.h: Likewise.

From-SVN: r230395
2015-11-15 11:15:08 +00:00
Andreas Tobler 301d1d00e6 acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation from darwin to DragonFly.
2015-11-14  Andreas Tobler  <andreast@gcc.gnu.org>

    * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation
    from darwin to DragonFly.
    * configure: Regenerate.
    * config/os/bsd/freebsd/ctype_configure_char.cc: Improve locale
    support, do it the same as DragonFly.
    * config/os/bsd/freebsd/os_defines.h: Add fine grained C99 defines.

From-SVN: r230383
2015-11-14 22:17:24 +01:00
Jonathan Wakely 230b4edeee Fix std::wstring capacity test for short wchar_t
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Use
	real minimum capacity.
	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
	Likewise.

From-SVN: r230378
2015-11-14 17:24:42 +00:00
David Edelsohn bfc6afd929 * testsuite/experimental/random/randint.cc: Add dg-add-options tls.
From-SVN: r230377
2015-11-14 09:22:53 -05:00
Jonathan Wakely 5ae465c530 Define std::experimental::randint etc.
* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/random: New.
	* testsuite/experimental/random/randint.cc: New.

From-SVN: r230332
2015-11-13 16:49:40 +00:00
John Marino 4216708a00 Improve portability of named locale tests
2015-11-13  John Marino  <gnugcc@marino.st>

	* testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc:
	Use portable locale name
	* testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise.
	* testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/codecvt_byname/50714.cc: Likewise.
	* testsuite/22_locale/collate/compare/char/1.cc: Likewise.
	* testsuite/22_locale/collate/compare/char/2.cc: Likewise.
	* testsuite/22_locale/collate/compare/char/3.cc: Likewise.
	* testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/collate/hash/char/2.cc: Likewise.
	* testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/collate/transform/char/2.cc: Likewise.
	* testsuite/22_locale/collate/transform/char/3.cc: Likewise.
	* testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/collate/transform/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise.
	* testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/is/char/2.cc: Likewise.
	* testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/facet/2.cc: Likewise.
	* testsuite/22_locale/locale/cons/12352.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
	* testsuite/22_locale/locale/cons/2.cc: Likewise.
	* testsuite/22_locale/locale/cons/38365.cc: Likewise.
	* testsuite/22_locale/locale/cons/38368.cc: Likewise.
	* testsuite/22_locale/locale/cons/4.cc: Likewise.
	* testsuite/22_locale/locale/cons/40184.cc: Likewise.
	* testsuite/22_locale/locale/cons/7.cc: Likewise.
	* testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise.
	* testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise.
	* testsuite/22_locale/messages/13631.cc: Likewise.
	* testsuite/22_locale/messages/members/char/1.cc: Likewise.
	* testsuite/22_locale/messages/members/char/2.cc: Likewise.
	* testsuite/22_locale/messages/members/char/3.cc: Likewise.
	* testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/messages/members/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/1.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/10.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/11.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/11528.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/12.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/13.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/15.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/16.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/17.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/18.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/2.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/3.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/4.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/money_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/9780-3.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/moneypunct/40712.cc: Likewise.
	* testsuite/22_locale/moneypunct/members/char/2.cc: Likewise.
	* testsuite/22_locale/moneypunct/members/char/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/moneypunct_byname/named_equivalence.cc:
	Likewise.
	* testsuite/22_locale/num_get/get/char/1.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/3.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/5.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/6.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/9.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/20909.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/20914.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/5.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/numpunct/members/char/2.cc: Likewise.
	* testsuite/22_locale/numpunct/members/char/3.cc: Likewise.
	* testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/numpunct/members/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise.
	* testsuite/22_locale/time_get/date_order/char/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/26701.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/26701.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_time/char/1.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/char/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_year/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc:
	Likewise.
	* testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc:
	Likewise.
	* testsuite/22_locale/time_put/put/char/17038.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/2.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/4.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/6.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/7.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/8.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise.
	* testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc:
	Likewise.
	* testsuite/27_io/basic_streambuf/cons/57394.cc: Likewise.
	* testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise.
	* testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise.
	* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise.
	* testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/manipulators/extended/get_time/char/2.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc:
	Likewise.
	* testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/manipulators/extended/put_time/char/2.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc:
	Likewise.
	* testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/9520.cc: Likewise.
	* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Check
	for named locale as appropriate for target.
	* testsuite/util/testsuite_hooks.h (ISO_8859): Define macro to form
	target's preferred form of locale name.

From-SVN: r230329
2015-11-13 15:25:48 +00:00
Jennifer Yao 23c64853c8 More fine-grained autoconf checks for C99 library
2015-11-13  Jennifer Yao  <jenny.hyphen.fa@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/58393
	PR libstdc++/61580
	* acinclude.m4 (GLIBCXX_ENABLE_C99): Perform tests twice, with
	-std=c++11 as well as -std=c++98, and define separate macros for each.
	Cache the results of checking for complex math and wide character
	functions. Reformat for readability.
	* config.h.in: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_USE_C99_XXX macros to
	either _GLIBCXX98_USE_C99_XXX or _GLIBCXX11_USE_C99_XXX according to
	language standard in use.
	* config/locale/dragonfly/c_locale.h (std::__convert_from_v): Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* config/locale/generic/c_locale.h (std::__convert_from_v): Likewise.
	* config/locale/gnu/c_locale.h (std::__convert_from_v): Likewise.
	* config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99_STDIO,
	_GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR.
	* configure: Regenerate.
	* include/bits/basic_string.h: Make numeric conversion functions
	depend on _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, or
	_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
	* include/ext/vstring.h: Likewise.
	* include/bits/locale_facets.tcc (std::num_put::_M_insert_float):
	Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* include/bits/locale_facets_nonio.tcc (std::money_put::do_put):
	Likewise.
	* include/c_compatibility/math.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_MATH.
	* include/c_compatibility/wchar.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/c_global/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/c_global/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/c_global/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/c_std/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/c_std/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/c_std/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/tr1/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/tr1/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/tr1/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/tr1/stdlib.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* src/c++98/locale_facets.cc (std::__num_base::_S_format_float):
	Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* testsuite/18_support/exception_ptr/60612-terminate.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
	(test01): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stof.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoi.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stol.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stold.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoll.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoul.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	to_wstring.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/13943.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Likewise.
	* testsuite/lib/libstdc++.exp (check_v3_target_string_conversions):
	Change preprocessor #if conditional so that it uses
	_GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and
	_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
	* testsuite/tr1/8_c_compatibility/cmath/templates.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH.
	* testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
	* testsuite/util/testsuite_fs.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.

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

From-SVN: r230324
2015-11-13 14:51:25 +00:00
Jonathan Wakely 011b25e4f5 * include/experimental/bits/shared_ptr.h: Tweak comments.
From-SVN: r230306
2015-11-13 11:30:30 +00:00
Fan You 930d560203 Implement std::experimental::shared_ptr with array support
2015-11-13  Fan You  <youfan.noey@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/bits/shared_ptr.h: New.
	* include/experimental/memory: Include new header.
	* testsuite/experimental/memory/shared_ptr/assign/assign.cc: New.
	* testsuite/experimental/memory/shared_ptr/cast/cast.cc: New.
	* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
	New.
	* testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
	New.
	* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: New.
	* testsuite/experimental/memory/shared_ptr/dest/dest.cc: New.
	* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: New.
	* testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: New.
	* testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc:
	New.
	* testsuite/experimental/memory/shared_ptr/observers/operators.cc:
	New.
	* testsuite/experimental/memory/shared_ptr/observers/owner_before.cc:
	New.
	* testsuite/experimental/memory/shared_ptr/observers/use_count.cc: New.

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

From-SVN: r230300
2015-11-13 11:05:28 +00:00
Jonathan Wakely 8014404589 Define alias templates using polymorphic memory resources
* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/memory_resource: Add feature-test macro.
	* include/experimental/regex: New.
	* include/experimental/deque: Add alias template using PMR.
	* include/experimental/forward_list: Likewise.
	* include/experimental/list: Likewise.
	* include/experimental/map: Likewise.
	* include/experimental/set: Likewise.
	* include/experimental/string: Likewise.
	* include/experimental/unordered_map: Likewise.
	* include/experimental/unordered_set: Likewise.
	* include/experimental/vector: Likewise.

From-SVN: r230295
2015-11-13 10:01:05 +00:00
Fan You bfeffbd1ae Implement C++ LFTSv1 polymorphic memory resources
2015-11-13  Fan You  <youfan.noey@gmail.com>

	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/bits/uses_allocator.h (__erased_type): Define.
	(__uses_allocator_helper): Check for __erased_type.
	* include/experimental/memory_resource: New.
	* include/experimental/utlity: New.
	* testsuite/experimental/type_erased_allocator/1.cc: New.
	* testsuite/experimental/type_erased_allocator/1_neg.cc: New.
	* testsuite/experimental/type_erased_allocator/2.cc: New.
	* testsuite/experimental/type_erased_allocator/uses_allocator.cc: New.

From-SVN: r230294
2015-11-13 10:00:59 +00:00
Jonathan Wakely fbfae2f089 Extend valid values of iostream bitmask types
PR libstdc++/56158
	* include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate):
	Define enumerators to ensure all values of type int are valid values
	of the enumeration type.
	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230267
2015-11-12 17:08:42 +00:00
Jonathan Wakely f022ab0310 * include/std/thread: Include <cerrno> for EINTR.
From-SVN: r230266
2015-11-12 16:13:06 +00:00
Ville Voutilainen c3a6648b1c Implement D0013R2, logical type traits.
2015-11-12  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement D0013R2, logical type traits.

	/libstdc++-v3
	* include/experimental/type_traits (conjunction_v, disjunction_v,
	negation_v): New.
	* include/std/type_traits (conjunction, disjunction, negation):
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/experimental/type_traits/value.cc: Likewise.
	* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: New.
	* testsuite/20_util/logical_traits/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/logical_traits/value.cc: Likewise.

	/testsuite
	* g++.dg/cpp0x/Wattributes1.C: Adjust.

From-SVN: r230258
2015-11-12 15:56:31 +02:00
Jonathan Wakely 53dc6fb862 * include/experimental/bits/string_view.tcc: Fix doxygen @file.
From-SVN: r230221
2015-11-12 10:08:49 +00:00
Jonathan Wakely c5bd8d521a * libsupc++/new_handler.cc: Fix for explicit constructor change.
From-SVN: r230184
2015-11-11 17:29:39 +00:00
Jonathan Wakely f55e699d3d Loop in std::this_thread sleep functions
PR libstdc++/60421
	* include/std/thread (this_thread::sleep_for): Retry on EINTR.
	(this_thread::sleep_until): Retry if time not reached.
	* src/c++11/thread.cc (__sleep_for): Retry on EINTR.
	* testsuite/30_threads/this_thread/60421.cc: Test interruption and
	non-steady clocks.

From-SVN: r230183
2015-11-11 17:08:51 +00:00
Ville Voutilainen e3907f12a5 Correct the Changelog date of the previous commit.
From-SVN: r230177
2015-11-11 16:56:17 +02:00
Ville Voutilainen 269fa2a91b LWG 2510, make the default constructors of library tag types explicit.
2015-11-10  Ville Voutilainen  <ville.voutilainen@gmail.com>

	LWG 2510, make the default constructors of library tag types
	explicit.
	* include/bits/mutex.h (defer_lock_t, try_lock_t,
	adopt_lock_t): Add an explicit default constructor.
	* include/bits/stl_pair.h (piecewise_construct_t): Likewise.
	* include/bits/uses_allocator.h (allocator_arg_t): Likewise.
	* libsupc++/new (nothrow_t): Likewise.
	* testsuite/17_intro/tag_type_explicit_ctor.cc: New.

From-SVN: r230175
2015-11-11 16:47:19 +02:00
Jonathan Wakely 832ca6ac72 re PR libstdc++/64651 (std::rethrow_exception not found by ADL)
PR libstdc++/64651
	* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
	to __exception_ptr namespace.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
	Remove unnecessary test variables.

From-SVN: r230147
2015-11-11 10:08:23 +00:00
Jonathan Wakely d4a9dffbaa Fix return type of heterogeneous find for sets
PR libstdc++/68190
	* include/bits/stl_multiset.h (multiset::find): Fix return types.
	* include/bits/stl_set.h (set::find): Likewise.
	* testsuite/23_containers/map/operations/2.cc: Test find return types.
	* testsuite/23_containers/multimap/operations/2.cc: Likewise.
	* testsuite/23_containers/multiset/operations/2.cc: Likewise.
	* testsuite/23_containers/set/operations/2.cc: Likewise.

From-SVN: r230113
2015-11-10 15:12:24 +00:00
Jonathan Wakely 60baa1883c Update C++17 library implementation status
* doc/xml/manual/status_cxx2017.xml: Update.
	* doc/html/*: Regenerate.

From-SVN: r230108
2015-11-10 14:05:01 +00:00
Jonathan Wakely fb9333352b * include/bits/functional_hash.h: Fix grammar in comment.
From-SVN: r230097
2015-11-10 11:12:33 +00:00