749c0e1d8b
The global locale::_Impl that represents the "C" locale is never destroyed, so there is no need to keep track of reference count updates for that object. This greatly reduce contention between threads that refer to the classic locale. Since the global std::locale initially uses the classic locale, this benefits the common case for any code using the global locale, such as construction/destruction of iostream objects. All these updates are done inside libstdc++.so so there's no need to worry about users' objects having inlined old versions of the code which still update the reference count for the classic locale. PR libstdc++/59439 * src/c++98/locale.cc (locale::locale(const locale&)): Bypass reference count updates for the classic locale. (locale::~locale()): Likewise. (locale::operator=(const locale&)): Likewise. * src/c++98/locale_init.cc (locale::locale()): Likewise. (locale::global(const locale&)): Likewise. From-SVN: r264811
4564 lines
199 KiB
Plaintext
4564 lines
199 KiB
Plaintext
2018-10-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/59439
|
||
* src/c++98/locale.cc (locale::locale(const locale&)): Bypass
|
||
reference count updates for the classic locale.
|
||
(locale::~locale()): Likewise.
|
||
(locale::operator=(const locale&)): Likewise.
|
||
* src/c++98/locale_init.cc (locale::locale()): Likewise.
|
||
(locale::global(const locale&)): Likewise.
|
||
|
||
2018-10-03 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/map.h
|
||
(map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
||
(map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
||
(map<>::insert(value_type&&)): Likewise.
|
||
(map<>::insert<>(_Pair&&)): Likewise.
|
||
(map<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
||
(map<>::try_emplace): Likewise.
|
||
(map<>::insert_or_assign): Likewise.
|
||
(map<>::insert(node_type&&)): Likewise.
|
||
(map<>::insert(const_iterator, node_type&&)): Likewise.
|
||
(map<>::erase(const_iterator)): Likewise.
|
||
(map<>::erase(const_iterator, const_iterator)): Likewise.
|
||
* include/debug/multimap.h
|
||
(multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
||
(multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
||
(multimap<>::insert<>(_Pair&&)): Likewise.
|
||
(multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
||
(multimap<>::insert(node_type&&)): Likewise.
|
||
(multimap<>::insert(const_iterator, node_type&&)): Likewise.
|
||
(multimap<>::erase(const_iterator)): Likewise.
|
||
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
|
||
* include/debug/set.h
|
||
(set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
||
(set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
||
(set<>::insert(value_type&&)): Likewise.
|
||
(set<>::insert<>(const_iterator, value_type&&)): Likewise.
|
||
(set<>::insert(const_iterator, node_type&&)): Likewise.
|
||
(set<>::erase(const_iterator)): Likewise.
|
||
(set<>::erase(const_iterator, const_iterator)): Likewise.
|
||
* include/debug/multiset.h
|
||
(multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
||
(multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
||
(multiset<>::insert<>(value_type&&)): Likewise.
|
||
(multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
|
||
(multiset<>::insert(node_type&&)): Likewise.
|
||
(multiset<>::insert(const_iterator, node_type&&)): Likewise.
|
||
(multiset<>::erase(const_iterator)): Likewise.
|
||
(multiset<>::erase(const_iterator, const_iterator)): Likewise.
|
||
|
||
2018-10-02 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/87258
|
||
* include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
|
||
Rebuild _M_start with an explicit 0 offset.
|
||
|
||
2018-10-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
|
||
directly instead of get, as caller ensures correct index is used.
|
||
(holds_alternative, get, get_if): Remove redundant inline specifiers.
|
||
(_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
|
||
|
||
2018-10-02 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* testsuite/lib/libstdc++.exp (libstdc++_init): Use
|
||
-fno-show-column in default cxxflags.
|
||
|
||
2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
||
|
||
* config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
|
||
|
||
2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
|
||
Custom Memory Allocation".
|
||
|
||
2018-10-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/html/*: Regenerate.
|
||
|
||
2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/messages.xml: Switch link to www.oracle.com
|
||
to https.
|
||
|
||
2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/policy_data_structures_biblio.xml: Update
|
||
link to Microsoft Component Model Object Technologies.
|
||
|
||
2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
|
||
site now uses https. Also omit the unnecessary trailing slash.
|
||
* doc/xml/gnu/gpl-3.0.xml: Ditto.
|
||
|
||
2018-09-28 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/functions.h
|
||
(__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
|
||
const _InputIter&, __true_type)): Use empty() rather than begin() ==
|
||
end().
|
||
|
||
2018-09-25 Mike Crowe <mac@mcrowe.com>
|
||
|
||
* include/std/condition_variable (condition_variable::wait_for): Use
|
||
steady clock in overload that uses a predicate.
|
||
|
||
2018-09-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87431
|
||
* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
|
||
Avoid runtime test when all alternatives are scalars and so cannot
|
||
throw during initialization.
|
||
|
||
2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
|
||
to https.
|
||
|
||
2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/policy_data_structures_biblio.xml: Update link
|
||
to "Priority Queues and the STL".
|
||
|
||
2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
|
||
https.
|
||
|
||
2018-09-21 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/87135
|
||
* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
|
||
Use __builtin_floor to compute _M_next_resize.
|
||
* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
|
||
* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
|
||
Adapt.
|
||
|
||
2018-09-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
|
||
* testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
|
||
long double unconditionally, but use lower tolerance when
|
||
sizeof(long double) == sizeof(double).
|
||
|
||
2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
|
||
on arm*.
|
||
|
||
2018-09-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
|
||
Remove __glibcxx_assert statements and use map::find instead of
|
||
map::operator[].
|
||
|
||
2018-09-18 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/87135
|
||
* src/c++11/hashtable_c++0x.cc:
|
||
(_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
|
||
requested size, but not necessarily greater.
|
||
(_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
|
||
strictly greater than next resize threshold.
|
||
* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
|
||
to validate that there is no rehash as long as number of insertion is
|
||
lower or equal to the reserved number of elements.
|
||
|
||
2018-09-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
|
||
checking invocable condition.
|
||
(unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
|
||
here, where types must be complete. Pass pointer to deleter as an
|
||
rvalue.
|
||
* testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
|
||
|
||
2018-09-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (variant) [__clang__]: Limit workaround to
|
||
Clang 7 and older.
|
||
|
||
2018-09-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87278
|
||
* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
|
||
remove_const.
|
||
* testsuite/20_util/shared_ptr/creation/87278.cc: New test.
|
||
|
||
Implement LWG 2905 changes to constrain unique_ptr constructors
|
||
* include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
|
||
check deleter type.
|
||
(unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
|
||
constructible constraint.
|
||
(unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
|
||
deleters of reference type and add move constructible constraint.
|
||
(unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
|
||
Disable for deleters of non-reference type. Define as deleted.
|
||
(unique_ptr<T[], D>): Likewise.
|
||
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
|
||
directives with unstable line numbers with dg-prune-output.
|
||
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
|
||
* testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
|
||
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
|
||
Make deleter types invocable.
|
||
|
||
2018-09-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
|
||
|
||
2018-09-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/78179
|
||
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
|
||
that runs the long double part of hypot.cc.
|
||
* testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
|
||
tests unless TEST_HYPOT_LONG_DOUBLE is defined.
|
||
|
||
* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
|
||
Return raw pointer not allocator's pointer type.
|
||
(vector::_Temporary_value::_M_val): Use _M_ptr.
|
||
|
||
PR libstdc++/87194
|
||
* include/bits/stl_map.h
|
||
(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
|
||
(map::map(initializer_list<value_type>, const Alloc&))
|
||
(map::map(InputIterator, InputIterator, const Alloc&))
|
||
(map::map(InputIterator, InputIterator))
|
||
(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
|
||
(map::insert(InputIterator, InputIterator)):
|
||
Call _M_insert_range_unique instead of _M_insert_unique.
|
||
* include/bits/stl_multimap.h
|
||
(multimap::multimap(initializer_list<value_type>, const C&, const A&))
|
||
(multimap::multimap(initializer_list<value_type>, const A&))
|
||
(multimap::multimap(InputIterator, InputIterator, const A&))
|
||
(multimap::multimap(InputIterator, InputIterator))
|
||
(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
|
||
(multimap::insert(InputIterator, InputIterator)): Call
|
||
_M_insert_range_equal instead of _M_insert_equal.
|
||
* include/bits/stl_multiset.h
|
||
(multiset::multiset(InputIterator, InputIterator))
|
||
(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
|
||
(multiset::multiset(initializer_list<value_type>, const C&, const A&))
|
||
(multiset::multiset(initializer_list<value_type>, const A&))
|
||
(multiset::multiset(InputIterator, InputIterator, const A&))
|
||
(multiset::insert(InputIterator, InputIterator)): Call
|
||
_M_insert_range_equal instead of _M_insert_equal.
|
||
* include/bits/stl_set.h
|
||
(set::set(InputIterator, InputIterator))
|
||
(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
|
||
(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
|
||
(set::set(initializer_list<value_type>, const Alloc&))
|
||
(set::set(InputIterator, InputIterator, const Alloc&))
|
||
(set::insert(InputIterator, InputIterator)):
|
||
Call _M_insert_range_unique instead of _M_insert_unique.
|
||
* include/bits/stl_tree.h
|
||
[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
|
||
template for SFINAE constraints.
|
||
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
|
||
constrained overloads that either insert or emplace, depending on
|
||
iterator's value_type.
|
||
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
|
||
[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
|
||
(_Rb_tree::_M_insert_range_equal): New functions replacing range
|
||
versions of _M_insert_unique and _M_insert_equal.
|
||
(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
|
||
(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
|
||
* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
|
||
* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
|
||
* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
|
||
* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
|
||
|
||
PR libstdc++/78595
|
||
* include/bits/stl_map.h (map::insert(_Pair&&))
|
||
(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
|
||
* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
|
||
(multimap::insert(const_iterator, _Pair&&)): Likewise.
|
||
* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
|
||
(unordered_map::insert(const_iterator, _Pair&&))
|
||
(unordered_multimap::insert(_Pair&&))
|
||
(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
|
||
* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
|
||
* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
|
||
* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
|
||
* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
|
||
test.
|
||
|
||
2018-09-02 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/safe_iterator.h
|
||
(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
|
||
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
|
||
New.
|
||
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
||
::_OtherSelf): New.
|
||
(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
|
||
(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
|
||
(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
|
||
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
||
::operator+(difference_type)): Use latters, inline as friend.
|
||
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
||
::operator-(difference_type)): Likewise.
|
||
(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
||
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
||
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
||
(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
|
||
(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
|
||
* include/debug/safe_iterator.tcc
|
||
(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
|
||
copy.
|
||
* include/debug/safe_local_iterator.h
|
||
(_Safe_local_iterator<_It, _Seq>::_Self): New.
|
||
(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
|
||
(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
|
||
(operator==(const _Safe_local_iterator<>&,
|
||
const _Safe_local_iterator<>&)): Use latter, inline as friend.
|
||
(operator!=(const _Safe_local_iterator<>&,
|
||
const _Safe_local_iterator<>&)): Likewise.
|
||
* testsuite/util/testsuite_containers.h: Include utility.
|
||
(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
|
||
parameter.
|
||
(forward_members_unordered<>::forward_members_unordered(value_type&)):
|
||
Add using namespace std::rel_ops.
|
||
Add iterator_concept_checks on local_iterator and const_local_iterator.
|
||
Add asserts on comparison between const_local_iterator and
|
||
local_iterator.
|
||
(struct forward_members_unordered<_Tp, false>): Remove partial
|
||
specialization.
|
||
* testsuite/23_containers/forward_list/types/1.cc: New.
|
||
* testsuite/23_containers/list/types/1.cc: New.
|
||
|
||
2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
|
||
references.
|
||
|
||
2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
|
||
Add dg-require-fileio.
|
||
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
|
||
Likewise.
|
||
* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
|
||
Likewise.
|
||
* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
|
||
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
|
||
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
|
||
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
|
||
Likewise.
|
||
* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
|
||
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
|
||
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
|
||
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
|
||
Likewise.
|
||
* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
|
||
* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
|
||
* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
|
||
* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
|
||
* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
|
||
* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
|
||
* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
|
||
Likewise.
|
||
* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
|
||
|
||
2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* testsuite/experimental/propagate_const/observers/1.cc: Make
|
||
dependence on -fdelete-null-pointer-checks explicit.
|
||
|
||
2018-08-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
|
||
targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
|
||
of the number of bits in the type.
|
||
* include/std/bit (__ceil2): Avoid undefined shifts.
|
||
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
|
||
the most signifiant bit set.
|
||
|
||
* config/abi/pre/gnu.ver: Add missing exports for mingw.
|
||
|
||
* include/ext/pointer.h (_Pointer_adapter): Define operators for
|
||
pointer arithmetic using long long offsets.
|
||
* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
|
||
long long values.
|
||
|
||
2018-08-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/31413
|
||
* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
|
||
string for alternative format.
|
||
|
||
2018-08-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87116
|
||
* src/filesystem/std-path.cc (path::lexically_normal): When handling
|
||
a dot-dot filename, preserve an empty final component in the iteration
|
||
sequence.
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
|
||
root-directory.
|
||
* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
|
||
for more than two adjacent dot-dot filenames.
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
|
||
preferred-separator in expected normalized strings.
|
||
|
||
2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
PR libstdc++/70694
|
||
* configure.host (OPT_LDFLAGS): Don't append
|
||
-fvisibility-inlines-hidden for newer Darwin.
|
||
|
||
2018-08-24 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/86822
|
||
* libsupc++/new (operator new(size_t, nothrow_t), operator
|
||
new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
|
||
operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
|
||
|
||
2018-08-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/debug/deque (std::__debug::deque): Declare.
|
||
* include/debug/forward_list (std::__debug::forward_list): Declare.
|
||
* include/debug/list (std::__debug::list): Declare.
|
||
* include/debug/map (std::__debug::map): Declare.
|
||
* include/debug/set (std::__debug::set): Declare.
|
||
* include/debug/unordered_map (std::__debug::unordered_map): Declare.
|
||
* include/debug/unordered_set (std::__debug::unordered_set): Declare.
|
||
* include/debug/vector (std::__debug::vector): Declare.
|
||
* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
|
||
test.
|
||
* testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
|
||
* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
|
||
test.
|
||
* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
|
||
New test.
|
||
* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
|
||
New test.
|
||
* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
|
||
test.
|
||
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
|
||
Adjust dg-error lineno.
|
||
* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
|
||
test.
|
||
|
||
2018-08-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
||
Only define when RTTI is enabled.
|
||
|
||
* include/debug/vector (__niter_base): Define for C++98.
|
||
|
||
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
|
||
Fix C++98 test to not use C++11 features.
|
||
* testsuite/25_algorithms/fill_n/2.cc: Likewise.
|
||
|
||
* scripts/check_compile: Fix comments.
|
||
|
||
* include/debug/string (insert(__const_iterator, _InIter, _InIter)):
|
||
[!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
|
||
begin(), for C++98 compatibility.
|
||
|
||
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::__const_iterator): Change access to protected.
|
||
[!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
|
||
as typedef for iterator.
|
||
* include/debug/string (__const_iterator): Use typedef from base.
|
||
(insert(const_iterator, _CharT))
|
||
(replace(const_iterator, const_iterator, const basic_string&))
|
||
(replace(const_iterator, const_iterator, const _CharT*, size_type))
|
||
(replace(const_iterator, const_iterator, const CharT*))
|
||
(replace(const_iterator, const_iterator, size_type, _CharT))
|
||
(replace(const_iterator, const_iterator, _InputIter, _InputIter))
|
||
(replace(const_iterator, const_iterator, initializer_list<_CharT>)):
|
||
Change const_iterator parameters to __const_iterator.
|
||
(insert(iterator, size_type, _CharT)): Add C++98 overload.
|
||
(insert(const_iterator, _InputIterator, _InputIterator)): Change
|
||
const_iterator parameter to __const_iterator.
|
||
[!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
|
||
of base's member function.
|
||
(insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
|
||
Likewise.
|
||
(insert(const_iterator, initializer_list<_CharT>))
|
||
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
|
||
* testsuite/21_strings/basic_string/init-list.cc: Remove effective
|
||
target directive.
|
||
|
||
* testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
|
||
not use C++14 feature.
|
||
* testsuite/23_containers/list/68222_neg.cc: Likewise.
|
||
|
||
* testsuite/21_strings/basic_string/init-list.cc:
|
||
Require cxx11-abi.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
|
||
Likewise.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
|
||
Likewise.
|
||
|
||
* testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
|
||
C++98 mode.
|
||
* testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
|
||
* testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
|
||
* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
|
||
* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
|
||
* testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
|
||
|
||
2018-08-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87061
|
||
* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
|
||
(experimental::pmr::match_results, experimental::pmr::cmatch)
|
||
(experimental::pmr::smatch, experimental::pmr::wcmatch)
|
||
(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
|
||
because COW strings don't support C++11 allocator model.
|
||
* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
|
||
(experimental::pmr::basic_string, experimental::pmr::string)
|
||
(experimental::pmr::u16string, experimental::pmr::u32string)
|
||
(experimental::pmr::wstring): Likewise.
|
||
* include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
|
||
(pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
|
||
* include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
|
||
(pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
|
||
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
|
||
cxx11-abi.
|
||
* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
|
||
|
||
PR libstdc++/78448
|
||
* include/bits/deque.tcc (deque::_M_range_initialize): Use
|
||
_S_check_init_len to check size.
|
||
(deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
|
||
error if size would exceed max_size().
|
||
* include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
|
||
(_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
|
||
size_t instead of size_type.
|
||
(deq(size_type, const allocator_type&)
|
||
(deq(size_type, const value_type&, const allocator_type&)
|
||
(deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
|
||
(deque::max_size): Call _S_max_size.
|
||
(deque::_S_check_init_len, deque::_S_max_size): New functions.
|
||
* include/bits/stl_vector.h (vector(size_type, const allocator_type&))
|
||
(vector(size_type, const value_type&, const allocator_type&))
|
||
(vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
|
||
_S_check_init_len to check size.
|
||
(vector::max_size): Call _S_max_size.
|
||
(vector::_M_check_len): Prevent max from being expanded as a
|
||
function-like macro.
|
||
(vector::_S_check_init_len, vector::_S_max_size): New functions.
|
||
* include/bits/vector.tcc (vector::_M_assign_aux): Use
|
||
_S_check_init_len to check size.
|
||
* testsuite/23_containers/deque/capacity/max_size.cc: New test.
|
||
* testsuite/23_containers/vector/capacity/max_size.cc: New test.
|
||
|
||
2018-08-22 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/68222
|
||
* include/debug/safe_iterator.h
|
||
(_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
|
||
(_Safe_iterator<>::_Const_iterator): Remove.
|
||
(_Safe_iterator<>::_IsConstant): New.
|
||
(_Safe_iterator<>::_OtherIterator): New.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
|
||
const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
|
||
__gnu_cxx::__enable_if condition.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
|
||
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
|
||
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
||
::operator--()): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
|
||
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
||
::operator--(int)): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
|
||
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
||
::_M_decrementable()): ...here.
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
|
||
Move...
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
||
::operator[](const difference_type&)): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
|
||
Move...
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
||
::operator+=(const difference_type&)): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
|
||
Move...
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
||
::operator+(const difference_type&)): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
|
||
Move...
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
||
::operator-=(const difference_type&)): ...here.
|
||
(_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
|
||
Move...
|
||
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
||
::operator-(const difference_type&)): ...here.
|
||
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Constraint to random access iterators.
|
||
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
||
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Likewise.
|
||
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
||
(operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
|
||
(__check_dereferenceable(const _Safe_iterator<>&)): Remove.
|
||
(__get_distance): Remove.
|
||
(__get_distance_from_begin): Remove.
|
||
(__get_distance_to_end): Remove.
|
||
(struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
|
||
specialization.
|
||
(__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
|
||
(__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
|
||
(__base(const _Safe_iterator<>&)): Constraint to random access iterator.
|
||
* include/debug/safe_iterator.tcc
|
||
(_Safe_iterator<>::_M_get_distance_from_begin()): New.
|
||
(_Safe_iterator<>::_M_get_distance_to_end()): New.
|
||
(_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
|
||
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
||
::_M_valid_range): New.
|
||
* include/debug/safe_local_iterator.h
|
||
(_Safe_local_iterator<>::_Const_local_iterator): Remove.
|
||
(_Safe_local_iterator<>::_IsConstant): New.
|
||
(_Safe_local_iterator<>::_OtherIterator): New.
|
||
(_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
|
||
const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
|
||
in __gnu_cxx::__enable_if condition. If singular compare base iterator
|
||
with _MutIte rather than _It.
|
||
(_Safe_local_iterator<>::_S_constant): Make constexpr.
|
||
(_Safe_local_iterator<>::_M_get_distance_to): New.
|
||
(__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
|
||
(__get_distance(const _Safe_local_iterator<>&,
|
||
const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
|
||
(__valid_range(const _Safe_local_iterator<>&,
|
||
const _Safe_local_iterator<>&)): New.
|
||
* include/debug/safe_local_iterator.tcc
|
||
(_Safe_local_iterator<>::_M_get_distance_to): New.
|
||
* include/debug/deque (std::__debug::deque<>): Add
|
||
::__gnu_debug::_Safe_iterator<> friend declaration.
|
||
* include/debug/forward_list (std::__debug::forward_list<>): Likewise.
|
||
* include/debug/list (std::__debug::list<>): Likewise.
|
||
* include/debug/map.h (std::__debug::map<>): Likewise.
|
||
* include/debug/multimap.h (std::__debug::multimap<>): Likewise.
|
||
* include/debug/set.h (std::__debug::set<>): Likewise.
|
||
* include/debug/multiset.h (std::__debug::multiset<>): Likewise.
|
||
* include/debug/string (std::__debug::basic_string<>): Likewise.
|
||
* include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
|
||
and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
|
||
(std::__debug::unordered_multimap<>): Likewise.
|
||
* include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
|
||
(std::__debug::unordered_multiset<>): Likewise.
|
||
* include/debug/formatter.h: Adapt.
|
||
* include/debug/helper_functions.h
|
||
(__gnu_debug::_Safe_local_iterator<>): Add declaration.
|
||
(__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
|
||
Pass parameter by copy.
|
||
(__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
|
||
(__get_distance<_Ite>(_Ite, _Ite): Likewise.
|
||
(__valid_range_aux<_Integral>): Pass _Integral by copy.
|
||
(__valid_range<_InputIterator>): Pass _InputIterator by copy.
|
||
(__valid_range<>(const _Safe_iterator<>&,
|
||
const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
|
||
Declare.
|
||
(__valid_range(const _Safe_local_iterator<>&,
|
||
const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
|
||
Declare.
|
||
(__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
||
Declare.
|
||
(__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
|
||
Declare.
|
||
(__can_advance): Adapt.
|
||
(struct __is_safe_random_iterator<>): Remove.
|
||
(struct _SIter_base<>): Remove.
|
||
* include/debug/functions.h: Include <bits/stl_iterator.h>.
|
||
(__check_dereferenceable): Remove.
|
||
(__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
|
||
(__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
|
||
(__foreign_iterator): Adapt.
|
||
* include/debug/stl_iterator.h
|
||
(__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
|
||
(__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
|
||
Constraint for random access iterators.
|
||
(__niter_base): Adapt.
|
||
* testsuite/util/testsuite_containers.h:
|
||
Include <bits/boost_concept_check.h>.
|
||
(iterator_concept_checks<_It, _Mutable, _Category>): New.
|
||
(citerator<_Cont>::forward_members::forward_members()): Instantiate
|
||
latter for container iterator and const_iterator.
|
||
* testsuite/23_containers/list/68222_neg.cc: New.
|
||
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
|
||
line number.
|
||
* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
|
||
(test01): Remove.
|
||
* testsuite/23_containers/vector/debug/debug_functions.cc (test01):
|
||
Remove.
|
||
|
||
2018-08-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/77854
|
||
* doc/xml/manual/status_cxx1998.xml: Document size_type and
|
||
difference_type for containers.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2018-08-21 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
P0646R1 Improving the Return Value of Erase-Like Algorithms I
|
||
* include/debug/forward_list (forward_list::__remove_return_type):
|
||
Define typedef as size_type or void, according to __cplusplus value.
|
||
(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
||
empty, according to __cplusplus value.
|
||
(_GLIBCXX20_ONLY): Define macro.
|
||
(forward_list::remove, forward_list::unique): Use typedef and macro
|
||
to change return type and add abi-tag for C++2a. Return number of
|
||
removed elements for C++2a.
|
||
(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
|
||
typedef to change return type for C++2a. Return number of removed
|
||
elements for C++2a.
|
||
* include/debug/list (list::__remove_return_type): Define typedef as
|
||
size_type or void, according to __cplusplus value.
|
||
(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
||
empty, according to __cplusplus value.
|
||
(_GLIBCXX20_ONLY): Define macro.
|
||
(list::remove, list::unique): Use typedef and macro to change return
|
||
type and add abi-tag for C++2a. Return number of removed elements for
|
||
C++2a.
|
||
(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
|
||
to change return type for C++2a. Return number of removed elements for
|
||
C++2a.
|
||
|
||
2018-08-21 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
|
||
|
||
2018-08-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
|
||
redundant dg-do directive.
|
||
* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
|
||
* testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
|
||
* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
|
||
* testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
|
||
|
||
2018-08-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86963
|
||
* include/std/tuple (_Tuple_impl::operator=): Define as deleted.
|
||
(_Tuple_impl::_M_assign): New functions to perform assignment instead
|
||
of assignment operators.
|
||
(_Tuple_impl::_M_swap): Remove exception specification.
|
||
(_Tuple_impl<_Idx, _Head>): Likewise.
|
||
(_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
|
||
(__tuple_base): Remove.
|
||
(tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
|
||
(tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
|
||
(tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
|
||
using __is_nothrow_swappable.
|
||
(tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
|
||
|
||
* include/std/optional (_Optional_payload): Use variable templates
|
||
for conditions in default template arguments and exception
|
||
specifications.
|
||
(optional): Likewise. Adjust indentation.
|
||
(optional::__not_self, optional::__not_tag, optional::_Requires): New
|
||
SFINAE helpers.
|
||
(optional::optional): Use new helpers in constructor constraints.
|
||
* include/std/type_traits (__or_v, __and_v): New variable templates.
|
||
* testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
|
||
dg-prune-output. Remove unused header.
|
||
|
||
2018-08-18 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
|
||
_GLIBCXX_DEBUG.
|
||
|
||
2018-08-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86963
|
||
* include/std/tuple (__tuple_base): New class template with deleted
|
||
copy assignment operator.
|
||
(tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
|
||
implicit copy/move assignment operator will be deleted/suppressed.
|
||
(tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
|
||
functions for SFINAE constraints on assignment operators.
|
||
(tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
|
||
New helper functions for exception specifications.
|
||
(tuple::operator=(const tuple&), tuple::operator=(tuple&&))
|
||
(tuple<_T1, _T2>::operator=(const tuple&))
|
||
(tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
|
||
__nonesuch_no_braces when the operator should be defined implicitly.
|
||
Use __nothrow_assignable for exception specifications.
|
||
(tuple::operator=(const tuple<_UElements...>&))
|
||
(tuple::operator=(tuple<_UElements...>&&))
|
||
(tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
|
||
(tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
|
||
(tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
|
||
(tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
|
||
__assignable and use __nothrow_assignable for exception
|
||
specifications.
|
||
* python/libstdcxx/v6/printers.py (is_specialization_of): Accept
|
||
gdb.Type as first argument, instead of a string.
|
||
(StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
|
||
tuple for expected structure.
|
||
(StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
|
||
* testsuite/20_util/tuple/dr2729.cc: New test.
|
||
* testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
|
||
to dg-prune-output.
|
||
|
||
2018-08-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
|
||
about signed/unsigned comparison.
|
||
|
||
* include/std/ostream (basic_ostream::sentry::~sentry): Suppress
|
||
deprecation warnings for using uncaught_exception().
|
||
|
||
PR libstdc++/86447
|
||
* src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
|
||
(logic_error::logic_error(logic_error&&))
|
||
(logic_error::operator=(logic_error&&))
|
||
(runtime_error::runtime_error(runtime_error&&))
|
||
(runtime_error::operator=(runtime_error&&)): Copy strings instead of
|
||
moving, to avoid allocating empty reps for moved-from strings.
|
||
|
||
2018-08-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/regex: Remove begin/end macros for namespace.
|
||
* include/experimental/string: Likewise.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_forward_list.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_multimap.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_multiset.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
|
||
New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_unordered_map.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_unordered_multimap.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_unordered_multiset.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/
|
||
pmr_typedefs_unordered_set.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
|
||
New test.
|
||
|
||
* include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
|
||
calls to __uses_allocator_construct_impl and __use_alloc.
|
||
* include/experimental/memory_resource
|
||
(polymorphic_allocator::_M_construct): Remove.
|
||
(polymorphic_allocator::construct): Call __uses_allocator_construct.
|
||
Qualify calls to __use_alloc.
|
||
* include/std/memory_resource (polymorphic_allocator::construct): Fix
|
||
type in SFINAE constraint. Use constexpr if instead of tag dispatching
|
||
to _S_construct overloads.
|
||
(polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
|
||
arguments to _S_construct_p.
|
||
(polymorphic_allocator::_S_construct): Remove.
|
||
(polymorphic_allocator::_S_construct_p): Return allocators by value
|
||
not by reference.
|
||
* include/std/scoped_allocator (scoped_allocator_adaptor::construct):
|
||
Qualify calls to __use_alloc.
|
||
* testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
|
||
copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
|
||
* testsuite/experimental/polymorphic_allocator/1.cc: New test.
|
||
* testsuite/experimental/polymorphic_allocator/construct_pair.cc:
|
||
New test.
|
||
|
||
* src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
|
||
(atomic_mem_res): Add unsynchronized definition for single-threaded.
|
||
|
||
2018-08-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86954
|
||
* include/bits/stl_tempbuf.h (return_temporary_buffer): Use
|
||
non-placement delete.
|
||
|
||
* include/std/chrono (__check_overflow): Simplify definition.
|
||
(_Checked_integral_constant): Remove.
|
||
|
||
PR libstdc++/86846
|
||
* src/c++17/default_resource.h: New file, defining default_res.
|
||
* src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
|
||
(atomic_mem_res): Define alternative for atomic<memory_resource*>
|
||
using a mutex instead of atomics.
|
||
|
||
PR libstdc++/85343
|
||
* config/abi/pre/gnu.ver: Export new symbol.
|
||
* doc/xml/manual/abi.xml: Document new versions.
|
||
* include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
|
||
(basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
|
||
* include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
|
||
Declare new overload.
|
||
* src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
|
||
and static member function.
|
||
(__throw_ios_failure(const char*, int)): Define.
|
||
* src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
|
||
(__throw_ios_failure(const char*, int)): Define.
|
||
|
||
2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
|
||
|
||
* include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
|
||
(_Rope_const_iterator::operator=(const _Rope_const_iterator&))
|
||
(_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
|
||
copied/assigned rope iterators don't retain pointers to the iterator
|
||
they were copied/assigned from.
|
||
* testsuite/ext/rope/7.cc: New.
|
||
|
||
2018-08-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/45093
|
||
* include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
|
||
Combine definitions to avoid --detect-odr-violations warning.
|
||
|
||
* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
|
||
__is_pow2 to check for valid alignment. Avoid branching when rounding
|
||
size to multiple of alignment.
|
||
|
||
* include/Makefile.am: Install <bit> and <version> for freestanding.
|
||
* include/Makefile.in: Regenerate.
|
||
* testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
|
||
|
||
Revert
|
||
2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
PR target/85904
|
||
* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
|
||
Newlib.
|
||
* configure: Regenerate.
|
||
|
||
2018-08-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/68210
|
||
* doc/xml/manual/intro.xml: Document LWG 206 change.
|
||
* libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
||
* libsupc++/del_opa.cc: Likewise.
|
||
* libsupc++/del_opant.cc: Likewise.
|
||
* libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
|
||
of free(ptr).
|
||
* libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
||
* libsupc++/del_opsa.cc: Likewise.
|
||
* libsupc++/del_opva.cc: Likewise.
|
||
* libsupc++/del_opvant.cc: Likewise.
|
||
* libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
|
||
instead of operator delete(ptr).
|
||
* libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
||
* libsupc++/del_opvsa.cc: Likewise.
|
||
* libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
|
||
* libsupc++/new_opa.cc: Use nullptr instead of literal 0.
|
||
* libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
|
||
with noexcept.
|
||
* libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
|
||
malloc(sz).
|
||
* libsupc++/new_opvant.cc: Use nullptr and noexcept.
|
||
* libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
|
||
operator new(sz, nothrow).
|
||
* testsuite/18_support/new_nothrow.cc: New test.
|
||
|
||
2018-08-10 Martin Liska <mliska@suse.cz>
|
||
|
||
* libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
|
||
predictor can handle that.
|
||
* libsupc++/new_opa.cc: Likewise.
|
||
* libsupc++/new_opnt.cc (new): Likewise.
|
||
|
||
2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
PR target/85904
|
||
* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
|
||
Newlib.
|
||
* configure: Regenerate.
|
||
|
||
2018-08-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/deque (std::pmr::deque): Declare alias.
|
||
* include/std/forward_list (std::pmr::forward_list): Likewise.
|
||
* include/std/list (std::pmr::list): Likewise.
|
||
* include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
|
||
* include/std/regex (std::pmr::match_results, std::pmr::cmatch)
|
||
(std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
|
||
* include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
|
||
* include/std/string (std::pmr::basic_string, std::pmr::string)
|
||
(std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
|
||
Likewise.
|
||
* include/std/unordered_map (std::pmr::unordered_map)
|
||
(std::pmr::unordered_multimap): Likewise.
|
||
* include/std/unordered_set (std::pmr::unordered_set)
|
||
(std::pmr::unordered_multiset): Likewise.
|
||
* include/std/vector (std::pmr::vector): Likewise.
|
||
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/list/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/map/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/set/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
|
||
test.
|
||
* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
|
||
test.
|
||
* testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
|
||
* testsuite/23_containers/vector/pmr_typedefs.cc: New test.
|
||
* testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
|
||
|
||
2018-08-08 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_algo.h
|
||
(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
|
||
(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
|
||
(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
|
||
duplication...
|
||
(rotate(_Ite, _Ite, _Ite)): ...here.
|
||
(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
|
||
Simplify rotate call.
|
||
(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
|
||
Likewise.
|
||
(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
|
||
Likewise.
|
||
|
||
2018-08-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
|
||
avoid clashing with an ::aligned_alloc function that was not detected
|
||
by configure.
|
||
|
||
* doc/xml/manual/using.xml: Fix markup for empty table entry.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* doc/xml/manual/using.xml: Add missing header to table and fix typo.
|
||
* doc/html/*: Regenerate.
|
||
|
||
PR libstdc++/86597
|
||
* include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
|
||
Clear error_code when cached type is used.
|
||
* testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
|
||
|
||
2018-08-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86874
|
||
* include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
|
||
here instead of in _Move_assign_base.
|
||
(_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
|
||
(_Copy_assign_base::operator=): Use _M_destructive_move when changing
|
||
the contained value to another alternative.
|
||
(_Move_assign_base::operator=): Likewise.
|
||
(_Move_assign_base::_M_destructive_move): Remove.
|
||
* testsuite/20_util/variant/86874.cc: New test.
|
||
|
||
PR libstdc++/86861
|
||
* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
|
||
Replace macro with inline function.
|
||
[__sun]: Increase alignment to meet memalign precondition.
|
||
[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
|
||
(aligned_alloc): Move check for valid alignment to operator new.
|
||
Remove redundant check for non-zero size, it's enforced by the caller.
|
||
(operator new): Move check for valid alignment here. Use
|
||
__builtin_expect on check for zero size.
|
||
|
||
* config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
|
||
* include/std/memory_resource (monotonic_buffer_resource::release):
|
||
Call _M_release_buffers to free buffers.
|
||
(monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
|
||
allocate a new buffer from upstream.
|
||
(monotonic_buffer_resource::_M_new_buffer): Declare.
|
||
(monotonic_buffer_resource::_M_release_buffers): Declare.
|
||
(monotonic_buffer_resource::_Chunk): Replace definition with
|
||
declaration as opaque type.
|
||
* src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
|
||
Define.
|
||
(monotonic_buffer_resource::_M_new_buffer): Define.
|
||
(monotonic_buffer_resource::_M_release_buffers): Define.
|
||
|
||
2018-08-05 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_iterator.h: Fix comment.
|
||
|
||
2018-08-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/system_error.cc
|
||
(system_error_category::default_error_condition): Add workaround for
|
||
ENOTEMPTY and EEXIST having the same value on AIX.
|
||
* testsuite/19_diagnostics/error_category/system_category.cc: Add
|
||
extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
|
||
|
||
2018-08-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* configure: Regenerate.
|
||
* configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
|
||
* src/c++11/futex.cc: Use __glibcxx_assert instead of
|
||
_GLIBCXX_DEBUG_ASSERT.
|
||
|
||
2018-08-01 Mike Crowe <mac@mcrowe.com>
|
||
|
||
* include/std/condition_variable (wait_for): Use steady_clock.
|
||
|
||
2018-08-01 Mike Crowe <mac@mcrowe.com>
|
||
|
||
* include/std/condition_variable (wait_until): Only report timeout
|
||
if we really have timed out when measured against the
|
||
caller-supplied clock.
|
||
* testsuite/30_threads/condition_variable/members/2.cc: Add test
|
||
case to confirm above behaviour.
|
||
|
||
2018-08-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/60555
|
||
* src/c++11/system_error.cc
|
||
(system_error_category::default_error_condition): New override to
|
||
check for POSIX errno values.
|
||
* testsuite/19_diagnostics/error_category/generic_category.cc: New
|
||
* testsuite/19_diagnostics/error_category/system_category.cc: New
|
||
test.
|
||
|
||
2018-07-31 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86751
|
||
* include/bits/stl_pair.h (__pair_base): New class with deleted copy
|
||
assignment operator.
|
||
(pair): Derive from __pair_base.
|
||
(pair::operator=): Remove deleted overload.
|
||
* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
|
||
so that new base class isn't shown in GDB.
|
||
* testsuite/20_util/pair/86751.cc: New test.
|
||
* testsuite/20_util/pair/ref_assign.cc: New test.
|
||
|
||
* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
|
||
(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
|
||
(_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
|
||
instead of __has_builtin.
|
||
* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
|
||
(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
|
||
* include/std/version [!_GLIBCXX_HAS_GTHREADS]
|
||
(__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
|
||
(__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
|
||
[!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
|
||
(__cpp_lib_has_unique_object_representations): Don't define when
|
||
builtin not available.
|
||
[!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
|
||
Likewise.
|
||
[!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
|
||
* libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
|
||
from here.
|
||
|
||
* doc/xml/manual/test.xml: Improve documentation on writing tests for
|
||
newer standards.
|
||
* doc/xml/manual/using.xml: Document all headers for C++11 and later.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* include/ext/pointer.h [__cplusplus >= 201103L]
|
||
(_Pointer_adapter::operator bool): Add explicit conversion operator
|
||
to replace safe bool idiom.
|
||
|
||
2018-07-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86734
|
||
* include/bits/stl_iterator.h (reverse_iterator::operator->): Call
|
||
_S_to_pointer (LWG 1052, LWG 2118).
|
||
(reverse_iterator::_S_to_pointer): Define overloaded helper functions.
|
||
* testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
|
||
* testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
|
||
|
||
* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
|
||
workaround for aligned_alloc bug on AIX.
|
||
* testsuite/18_support/new_aligned.cc: New test.
|
||
|
||
2018-07-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
* testsuite/30_threads/condition_variable_any/cond.cc: New.
|
||
|
||
2018-07-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
* src/c++98/locale_init.cc: Fix #ifdef condition.
|
||
|
||
2018-07-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
|
||
dg-require-cstdint directive.
|
||
* testsuite/20_util/allocator/overaligned.cc: Likewise.
|
||
* testsuite/20_util/any/cons/aligned.cc: Likewise.
|
||
* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
|
||
* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
|
||
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
|
||
Likewise.
|
||
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
|
||
* testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
|
||
* testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
|
||
* testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
|
||
* testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
|
||
random_device effective-target.
|
||
* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
|
||
* testsuite/25_algorithms/sample/1.cc: Require cstdint.
|
||
* testsuite/25_algorithms/sample/2.cc: Likewise.
|
||
* testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
|
||
and random_device.
|
||
* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
|
||
cstdint.
|
||
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/discard_block_engine/requirements/
|
||
constexpr_data.cc: Likewise.
|
||
* testsuite/26_numerics/random/discard_block_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/independent_bits_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
|
||
constexpr_data.cc: Likewise.
|
||
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
|
||
constexpr_data.cc: Likewise.
|
||
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
|
||
* testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
|
||
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
|
||
constexpr_data.cc: Add dg-require-cstdint directive.
|
||
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
|
||
constexpr_data.cc: Likewise.
|
||
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
|
||
constexpr_functions.cc: Likewise.
|
||
* testsuite/26_numerics/random/uniform_real_distribution/operators/
|
||
64351.cc: Likewise.
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
|
||
* testsuite/experimental/algorithm/sample-2.cc: Likewise.
|
||
* testsuite/experimental/algorithm/sample.cc: Likewise.
|
||
* testsuite/experimental/algorithm/search.cc: Likewise.
|
||
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
||
* testsuite/experimental/any/cons/aligned.cc: Likewise.
|
||
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
||
Likewise.
|
||
* testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
|
||
* testsuite/experimental/random/randint.cc: Likewise.
|
||
* testsuite/experimental/source_location/1.cc: Likewise.
|
||
* testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
|
||
* testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
|
||
* testsuite/ext/mt_allocator/overaligned.cc: Likewise.
|
||
* testsuite/ext/new_allocator/overaligned.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
|
||
* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
|
||
* testsuite/ext/pool_allocator/overaligned.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/check_delete.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/check_new.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
|
||
* testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
|
||
* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
|
||
|
||
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/dest/
|
||
destructor_locked.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/native_handle/
|
||
typesizes.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
|
||
* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/scoped_lock/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/default.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
|
||
* testsuite/30_threads/shared_future/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/requirements/
|
||
standard_layout.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
|
||
* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/this_thread/1.cc: Likewise.
|
||
* testsuite/30_threads/this_thread/2.cc: Likewise.
|
||
* testsuite/30_threads/this_thread/3.cc: Likewise.
|
||
* testsuite/30_threads/this_thread/4.cc: Likewise.
|
||
* testsuite/30_threads/this_thread/58038.cc: Likewise.
|
||
* testsuite/30_threads/thread/70503.cc: Likewise.
|
||
* testsuite/30_threads/thread/84532.cc: Likewise.
|
||
* testsuite/30_threads/thread/adl.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/2.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/3.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/4.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/5.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/6.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/7.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/8.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/84535.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/9.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
|
||
* testsuite/30_threads/thread/cons/terminate.cc: Likewise.
|
||
* testsuite/30_threads/thread/id/operators.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/1.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/2.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/3.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/4.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/5.cc: Likewise.
|
||
* testsuite/30_threads/thread/members/hardware_concurrency.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
|
||
* testsuite/30_threads/thread/swap/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/timed_mutex/requirements/
|
||
standard_layout.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
|
||
* testsuite/30_threads/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/try_lock/3.cc: Likewise.
|
||
* testsuite/30_threads/try_lock/4.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
|
||
|
||
* testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
|
||
directive.
|
||
* testsuite/30_threads/async/49668.cc: Likewise.
|
||
* testsuite/30_threads/async/54297.cc: Likewise.
|
||
* testsuite/30_threads/async/84532.cc: Likewise.
|
||
* testsuite/30_threads/async/any.cc: Likewise.
|
||
* testsuite/30_threads/async/async.cc: Likewise.
|
||
* testsuite/30_threads/async/except.cc: Likewise.
|
||
* testsuite/30_threads/async/forced_unwind.cc: Likewise.
|
||
* testsuite/30_threads/async/launch.cc: Likewise.
|
||
* testsuite/30_threads/async/lwg2021.cc: Likewise.
|
||
* testsuite/30_threads/async/sync.cc: Likewise.
|
||
* testsuite/30_threads/call_once/39909.cc: Likewise.
|
||
* testsuite/30_threads/call_once/49668.cc: Likewise.
|
||
* testsuite/30_threads/call_once/60497.cc: Likewise.
|
||
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
|
||
* testsuite/30_threads/call_once/constexpr.cc: Likewise.
|
||
* testsuite/30_threads/call_once/dr2442.cc: Likewise.
|
||
* testsuite/30_threads/call_once/once_flag.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/54185.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/cons/assign_neg.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/condition_variable/requirements/
|
||
standard_layout.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable/requirements/typedefs.cc:
|
||
* Likewise.
|
||
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
|
||
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/default.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/move.cc: Likewise.
|
||
* testsuite/30_threads/future/cons/move_assign.cc: Likewise.
|
||
* testsuite/30_threads/future/members/45133.cc: Likewise.
|
||
* testsuite/30_threads/future/members/get.cc: Likewise.
|
||
* testsuite/30_threads/future/members/get2.cc: Likewise.
|
||
* testsuite/30_threads/future/members/share.cc: Likewise.
|
||
* testsuite/30_threads/future/members/valid.cc: Likewise.
|
||
* testsuite/30_threads/future/members/wait.cc: Likewise.
|
||
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
|
||
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
|
||
* testsuite/30_threads/future/requirements/explicit_instantiation.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
|
||
* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
|
||
* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
|
||
* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
|
||
* testsuite/30_threads/lock/1.cc: Likewise.
|
||
* testsuite/30_threads/lock/2.cc: Likewise.
|
||
* testsuite/30_threads/lock/3.cc: Likewise.
|
||
* testsuite/30_threads/lock/4.cc: Likewise.
|
||
* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/lock_guard/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
|
||
* testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
|
||
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
|
||
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
|
||
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
|
||
* testsuite/30_threads/mutex/requirements/standard_layout.cc::
|
||
Likewise.
|
||
* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
|
||
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
|
||
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
|
||
* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
|
||
* testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/60564.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
|
||
Likewise.
|
||
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/requirements/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
|
||
* testsuite/30_threads/promise/60966.cc: Likewise.
|
||
* testsuite/30_threads/promise/69106.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/1.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/move.cc: Likewise.
|
||
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
|
||
* testsuite/30_threads/promise/members/swap.cc: Likewise.
|
||
* testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
|
||
* Likewise.
|
||
* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
|
||
|
||
* testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
|
||
from namespace std.
|
||
* testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
|
||
* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
|
||
* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
|
||
* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
|
||
* testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
|
||
* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
|
||
* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
|
||
* testsuite/20_util/duration/cons/1.cc: Likewise.
|
||
* testsuite/20_util/duration/cons/1_neg.cc: Likewise.
|
||
* testsuite/20_util/duration/cons/2.cc: Likewise.
|
||
* testsuite/20_util/duration/cons/54025.cc: Likewise.
|
||
* testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/explicit_instantiation/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
|
||
* testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
|
||
* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
|
||
* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
|
||
* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
|
||
* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
|
||
* testsuite/20_util/ratio/operations/45866.cc: Likewise.
|
||
* testsuite/20_util/ratio/operations/47913.cc: Likewise.
|
||
* testsuite/20_util/ratio/operations/53840.cc: Likewise.
|
||
* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
|
||
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
|
||
* testsuite/20_util/system_clock/1.cc: Likewise.
|
||
* testsuite/20_util/time_point/1.cc: Likewise.
|
||
* testsuite/20_util/time_point/2.cc: Likewise.
|
||
* testsuite/20_util/time_point/3.cc: Likewise.
|
||
* testsuite/20_util/time_point/requirements/explicit_instantiation/
|
||
explicit_instantiation.cc: Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/
|
||
explicit_instantiation/char16_t/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/
|
||
explicit_instantiation/char32_t/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string_view/requirements/
|
||
explicit_instantiation/char16_t/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string_view/requirements/
|
||
explicit_instantiation/char32_t/1.cc: Likewise.
|
||
* testsuite/21_strings/char_traits/requirements/
|
||
explicit_instantiation/char16_t/1.cc: Likewise.
|
||
* testsuite/21_strings/char_traits/requirements/
|
||
explicit_instantiation/char32_t/1.cc: Likewise.
|
||
* testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
|
||
* testsuite/22_locale/codecvt/char16_t.cc: Likewise.
|
||
* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
|
||
* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
|
||
Likewise.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
|
||
Likewise.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
|
||
Likewise.
|
||
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
|
||
* testsuite/23_containers/vector/bool/72847.cc: Likewise.
|
||
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
|
||
Likewise.
|
||
* testsuite/experimental/string_view/requirements/
|
||
explicit_instantiation/char16_t/1.cc: Likewise.
|
||
* testsuite/experimental/string_view/requirements/
|
||
explicit_instantiation/char32_t/1.cc: Likewise.
|
||
* testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
|
||
1.cc: Likewise.
|
||
* testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
|
||
1.cc: Likewise.
|
||
|
||
* include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(random_condition, throw_value_random, throw_allocator_random)
|
||
(std::hash<throw_value_random>): Do not define when <tr1/random> is
|
||
not usable.
|
||
* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
|
||
define transactional memory support when <stdint.h> is not usable.
|
||
|
||
* include/bits/hashtable_policy.h (__detail::__clp2): Use faster
|
||
implementation that doesn't depend on <stdint.h> types.
|
||
* include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
|
||
std::size_t when std::uintptr_t is not usable.
|
||
[!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
|
||
(undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
|
||
Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
|
||
|
||
* include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(hash<u16string>, hash<u32string>): Remove dependency on
|
||
_GLIBCXX_USE_C99_STDINT_TR1.
|
||
* include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
|
||
_GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
|
||
__UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
|
||
* include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(codecvt<char16_t, char, mbstate_t>)
|
||
(codecvt<char32_t, char, mbstate_t>)
|
||
(codecvt_byname<char16_t, char, mbstate_t>)
|
||
(codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
|
||
on _GLIBCXX_USE_C99_STDINT_TR1.
|
||
* include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
|
||
* include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(char_traits<char16_t>, char_traits<char32_t>)
|
||
(basic_string<char16_t>, basic_string<char32_t>): Remove dependency
|
||
on _GLIBCXX_USE_C99_STDINT_TR1.
|
||
* include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(u16string_view, u32string_view, hash<u16string_view>)
|
||
(hash<u32string_view>, operator""sv(const char16_t, size_t))
|
||
(operator""sv(const char32_t, size_t)): Likewise.
|
||
* include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(hash<__u16vstring>, hash<__u32vstring>): Likewise.
|
||
* include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
|
||
(__u32sso_string, __u32rc_string): Likewise.
|
||
* include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
|
||
(codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
|
||
* include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(u16string_view, u32string_view, hash<u16string_view>)
|
||
(hash<u32string_view>, operator""sv(const char16_t, size_t))
|
||
(operator""sv(const char32_t, size_t)): Likewise.
|
||
* src/c++11/codecvt.cc: Likewise.
|
||
* src/c++98/locale_init.cc: Likewise.
|
||
* src/c++98/localename.cc: Likewise.
|
||
|
||
* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(__atomic_futex_unsigned_base): Remove dependency on
|
||
_GLIBCXX_USE_C99_STDINT_TR1 macro.
|
||
* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
|
||
* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
|
||
(uintmax_t): Define using predefined macros.
|
||
* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
|
||
(time_point, system_clock, high_resolution_clock, steady_clock): Remove
|
||
dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
|
||
(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
|
||
[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
|
||
long long when <stdint.h> is not usable.
|
||
* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(condition_variable, condition_variable_any): Remove dependency on
|
||
_GLIBCXX_USE_C99_STDINT_TR1.
|
||
* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
|
||
(packaged_task, async): Likewise.
|
||
* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
|
||
(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
|
||
(once_flag, call_once): Likewise.
|
||
* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
|
||
* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
|
||
(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
|
||
* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
|
||
(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
|
||
(this_thread::sleep_until): Likewise.
|
||
* src/c++11/chrono.cc: Remove dependency on
|
||
_GLIBCXX_USE_C99_STDINT_TR1 macro.
|
||
* src/c++11/condition_variable.cc: Likewise.
|
||
* src/c++11/futex.cc: Likewise.
|
||
* src/c++11/future.cc: Likewise.
|
||
* src/c++11/mutex.cc: Likewise.
|
||
* src/c++11/thread.cc: Likewise.
|
||
* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
|
||
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
|
||
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
|
||
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
|
||
|
||
2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR libstdc++/77691
|
||
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
||
xfail execution on 32-bit Solaris/x86.
|
||
|
||
2018-07-26 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
|
||
(_Vector_impl_data::_M_swap_data): Use _M_copy_data.
|
||
(vector::_M_move_assign): Reorder the swaps.
|
||
|
||
2018-07-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86676
|
||
* testsuite/20_util/monotonic_buffer_resource/release.cc: Request
|
||
same alignment for post-release allocation.
|
||
|
||
2018-07-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86676
|
||
* testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
|
||
buffer being misaligned and so returned pointer not being at start.
|
||
|
||
* include/experimental/memory_resource: Include <cstddef> header.
|
||
|
||
* acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
|
||
* src/Makefile.am: Add comment.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
|
||
* include/Makefile.am: Add new <bits/unique_lock.h> header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
|
||
(lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
|
||
(unique_lock): Move definition to ...
|
||
* include/bits/unique_lock.h: New header.
|
||
[!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
|
||
[_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
|
||
(unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
|
||
(unique_lock::try_lock_for): Define only when <chrono> is usable.
|
||
* include/std/condition_variable: Include <bits/unique_lock.h>.
|
||
* include/std/mutex: Likewise.
|
||
|
||
2018-07-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver: Export new symbols.
|
||
* configure: Regenerate.
|
||
* include/Makefile.am: Add new <memory_resource> header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/precompiled/stdc++.h: Include <memory_resource> for C++17.
|
||
* include/std/memory_resource: New header.
|
||
(memory_resource, polymorphic_allocator, new_delete_resource)
|
||
(null_memory_resource, set_default_resource, get_default_resource)
|
||
(pool_options, monotonic_buffer_resource): Define.
|
||
* src/Makefile.am: Add c++17 directory.
|
||
* src/Makefile.in: Regenerate.
|
||
* src/c++11/Makefile.am: Fix comment.
|
||
* src/c++17/Makefile.am: Add makefile for new sub-directory.
|
||
* src/c++17/Makefile.in: Generate.
|
||
* src/c++17/memory_resource.cc: New.
|
||
(newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
|
||
(default_res, new_delete_resource, null_memory_resource)
|
||
(set_default_resource, get_default_resource): Define.
|
||
* testsuite/20_util/memory_resource/1.cc: New test.
|
||
* testsuite/20_util/memory_resource/2.cc: New test.
|
||
* testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
|
||
* testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
|
||
* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
|
||
* testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
|
||
* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
|
||
New test.
|
||
* testsuite/20_util/polymorphic_allocator/1.cc: New test.
|
||
* testsuite/20_util/polymorphic_allocator/resource.cc: New test.
|
||
* testsuite/20_util/polymorphic_allocator/select.cc: New test.
|
||
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
||
Define concrete memory resource for testing.
|
||
(__gnu_test::default_resource_mgr): Define RAII helper for changing
|
||
default resource.
|
||
|
||
PR libstdc++/86658
|
||
* include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
|
||
parameter by reference, to avoid copying invalid iterators.
|
||
* testsuite/25_algorithms/copy/86658.cc: New test.
|
||
|
||
* include/std/bit (__countl_zero, __countr_zero, __popcount): Use
|
||
local variables for number of digits instead of type aliases.
|
||
(__log2p1): Remove redundant branch also checked in __countl_zero.
|
||
|
||
* include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
|
||
conditions. Add comments.
|
||
* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
|
||
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
|
||
* testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
|
||
|
||
* include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
|
||
(__uses_allocator_helper): Check conditions directly instead of
|
||
using __is_erased_or_convertible.
|
||
|
||
* include/experimental/memory_resource: Adjust comments and
|
||
whitespace.
|
||
(__resource_adaptor_imp): Add second template parameter for type of
|
||
memory resource base class.
|
||
(memory_resource): Define default constructor, destructor, copy
|
||
constructor and copy assignment operator as defaulted.
|
||
|
||
PR libstdc++/70966
|
||
* include/experimental/memory_resource (__get_default_resource): Use
|
||
placement new to create an object with dynamic storage duration.
|
||
|
||
2018-07-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/70940
|
||
* include/experimental/memory_resource
|
||
(__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
|
||
(__resource_adaptor_common::__guaranteed_alignment): New helper to
|
||
give maximum alignment an allocator guarantees. Specialize for known
|
||
allocators using new and malloc.
|
||
(__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
|
||
(__resource_adaptor_imp::do_deallocate): Likewise.
|
||
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
||
Check that new and delete are called with expected sizes.
|
||
|
||
2018-07-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86595
|
||
* include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
|
||
noexcept.
|
||
|
||
2018-07-20 Fangrui Song <maskray@google.com>
|
||
|
||
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
|
||
_GLIBCXX_VISIBILITY(default).
|
||
|
||
2018-07-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86603
|
||
* include/std/version: Move __cpp_lib_list_remove_return_type macro.
|
||
|
||
2018-07-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (__is_member_object_pointer_helper): Use
|
||
__not_<is_function<_Tp>>::type instead of integral_constant.
|
||
(__is_member_function_pointer_helper): Likewise for
|
||
is_function<_Tp>::type.
|
||
(is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
|
||
(__do_is_nt_destructible_impl): Use __bool_constant and reindent.
|
||
(is_trivially_constructible): Remove redundant use of
|
||
is_constructible.
|
||
(__is_trivially_copy_assignable_impl): Remove redundant use of
|
||
is_copy_assignable.
|
||
(__is_trivially_move_assignable_impl): Remove redundant use of
|
||
is_move_assignable.
|
||
(is_trivially_destructible): Use __bool_constant.
|
||
* testsuite/20_util/is_trivially_assignable/value.cc: Add some more
|
||
tests for scalar types.
|
||
|
||
2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
|
||
|
||
* include/bits/stl_algobase.h (__copy_move_a): Used
|
||
__is_trivially_copyable.
|
||
(__copy_move_backward_a): Likewise.
|
||
* testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
|
||
New test.
|
||
|
||
2018-07-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86450
|
||
* acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
|
||
(GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
|
||
* configure: Regenerate.
|
||
* configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
|
||
* doc/Makefile.in: Regenerate.
|
||
* fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
|
||
* include/Makefile.in: Regenerate.
|
||
* libsupc++/Makefile.in: Regenerate.
|
||
* po/Makefile.in: Regenerate.
|
||
* python/Makefile.in: Regenerate.
|
||
* src/Makefile.in: Regenerate.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
* src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
|
||
from -Wabi=2 that don't affect exported symbols.
|
||
* src/c++98/Makefile.in: Regenerate.
|
||
* src/filesystem/Makefile.in: Regenerate.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
* src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
|
||
(_Async_state_common::_M_join): Simplify use of std::call_once and
|
||
corresponding explicit instantiation.
|
||
(_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
|
||
(__bind_simple): Remove definitions and explicit instantiation that
|
||
are not required by exported symbols.
|
||
|
||
2018-07-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* scripts/create_testsuite_files: Fix typo in comment.
|
||
|
||
PR libstdc++/86537
|
||
* include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
|
||
non-standard partial specialization.
|
||
* include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
|
||
(less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
|
||
* testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
|
||
|
||
2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
|
||
|
||
* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
|
||
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2018-07-06 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/functions.h (__gnu_debug::__check_string): Move...
|
||
* include/debug/string (__gnu_debug::__check_string): ... here.
|
||
(_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
|
||
(__glibcxx_check_string_n_constructor): New.
|
||
(__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
|
||
Use latter.
|
||
(__glibcxx_check_string_constructor): New.
|
||
(__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
|
||
Use latter.
|
||
* testsuite/21_strings/basic_string/debug/1_neg.cc: New.
|
||
* testsuite/21_strings/basic_string/debug/2_neg.cc: New.
|
||
|
||
2018-07-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84928 use std::move in <numeric> algorithms
|
||
* include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
|
||
conditionally move, according to __cplusplus value.
|
||
(accumulate, inner_product, partial_sum, adjacent_difference): Use
|
||
_GLIBCXX_MOVE_IF_20.
|
||
* testsuite/26_numerics/accumulate/lwg2055.cc: New test.
|
||
* testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
|
||
* testsuite/26_numerics/inner_product/lwg2055.cc: New test.
|
||
* testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
|
||
|
||
* config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
|
||
|
||
P0935R0 Eradicating unnecessarily explicit default constructors
|
||
* config/abi/pre/gnu.ver: Tighten existing patterns and export new
|
||
default constructor symbols.
|
||
* include/std/sstream (basic_stringbuf, basic_istringstream)
|
||
(basic_ostringstream, basic_stringstream): Remove default arguments
|
||
from explicit constructors taking ios_base::openmode and add separate
|
||
non-explicit default constructors.
|
||
* testsuite/27_io/basic_istringstream/cons/default.cc: New.
|
||
* testsuite/27_io/basic_ostringstream/cons/default.cc: New.
|
||
* testsuite/27_io/basic_stringstream/cons/default.cc: New.
|
||
* testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
|
||
* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
|
||
|
||
* include/std/variant (__accepted_index): Use void_t.
|
||
|
||
2018-07-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85831
|
||
* config/abi/pre/gnu.ver: Export move constructors and move
|
||
assignment operators for std::logic_error and std::runtime_error.
|
||
* include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
|
||
_GLIBCXX_USE_NOEXCEPT.
|
||
(logic_error, runtime_error): Declare move constructors and move
|
||
assignment operators. When not declared already, define copy
|
||
constructors and copy assignment operators as explicit-defaulted.
|
||
(domain_error, invalid_argument, length_error, out_of_range)
|
||
(overflow_error, underflow_error): Define move constructors and move
|
||
assignment operators as explicitly-defaulted.
|
||
* libsupc++/exception.h (exception): Likewise.
|
||
* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
|
||
move constructors and move assignment operators as defaulted.
|
||
* testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
|
||
assignment operators are defined.
|
||
|
||
* testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
|
||
COW strings.
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/requirements/
|
||
explicit_instantiation/debug.cc: Likewise.
|
||
|
||
PR libstdc++/58265
|
||
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::assign(basic_string&&)): Add conditional noexcept
|
||
depending on the allocator's is_always_equal property (LWG 2063).
|
||
* testsuite/21_strings/basic_string/modifiers/assign/char/
|
||
move_assign.cc: Check for non-throwing exception specification.
|
||
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
|
||
move_assign.cc: Likewise.
|
||
|
||
PR libstdc++/58265
|
||
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
||
[_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
|
||
Add GLIBCXX_NOEXCEPT.
|
||
(basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
|
||
to depend on the allocator's is_always_equal property (LWG 2063).
|
||
(basic_string::swap(basic_string&)): Likewise.
|
||
* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::swap(basic_string&)): Likewise.
|
||
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
|
||
Check is_nothrow_move_assignable.
|
||
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
|
||
Check is_nothrow_move_assignable.
|
||
* testsuite/21_strings/basic_string/cons/char/
|
||
noexcept_move_construct.cc: Likewise.
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/
|
||
noexcept_move_construct.cc: Likewise.
|
||
|
||
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
P0646R1 Improving the Return Value of Erase-Like Algorithms I
|
||
* include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
|
||
Define.
|
||
(forward_list::__remove_return_type): Define typedef as size_type or
|
||
void, according to __cplusplus value.
|
||
(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
||
empty, according to __cplusplus value.
|
||
(forward_list::remove, forward_list::unique): Use typedef and macro
|
||
to change return type and add abi-tag for C++2a.
|
||
(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
|
||
typedef to change return type for C++2a.
|
||
* include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
|
||
(forward_list::remove, forward_list::remove_if<Pred>)
|
||
(forward_list::unique<BinPred>): Return number of removed elements
|
||
for C++2a.
|
||
* include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
|
||
(list::remove, list::unique, list::remove_if<Predicate>)
|
||
(list::unique<BinaryPredicate>): Return number of removed elements
|
||
for C++2a.
|
||
* include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
|
||
(list::__remove_return_type): Define typedef as size_type or
|
||
void, according to __cplusplus value.
|
||
(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
||
empty, according to __cplusplus value.
|
||
(list::remove, list::unique): Use typedef and macro to change return
|
||
type and add abi-tag for C++2a.
|
||
(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
|
||
typedef to change return type for C++2a.
|
||
* include/std/version (__cpp_lib_list_remove_return_type): Define.
|
||
* testsuite/23_containers/forward_list/operations/
|
||
remove_cxx20_return.cc: New.
|
||
* testsuite/23_containers/forward_list/operations/
|
||
unique_cxx20_return.cc: New.
|
||
|
||
P0458R2 Checking for Existence of an Element in Associative Containers
|
||
* include/bits/stl_map.h (map::contains): Add for C++2a.
|
||
* include/bits/stl_multimap.h (multimap::contains): Likewise.
|
||
* include/bits/stl_multiset.h (multiset::contains): Likewise.
|
||
* include/bits/stl_set.h (set::contains): Likewise.
|
||
* include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
|
||
(_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
|
||
(_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
|
||
(_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
|
||
* include/bits/unordered_map.h (unordered_map::contains)
|
||
(unordered_multimap::contains): Add for C++2a.
|
||
* include/bits/unordered_set.h (unordered_set::contains)
|
||
(unordered_multiset::contains): Likewise.
|
||
* testsuite/23_containers/map/operations/contains.cc: New.
|
||
* testsuite/23_containers/multimap/operations/contains.cc: New.
|
||
* testsuite/23_containers/multiset/operations/contains.cc: New.
|
||
* testsuite/23_containers/set/operations/contains.cc: New.
|
||
* testsuite/23_containers/unordered_map/operations/contains.cc: New.
|
||
* testsuite/23_containers/unordered_multimap/operations/contains.cc:
|
||
New.
|
||
* testsuite/23_containers/unordered_multiset/operations/contains.cc:
|
||
New.
|
||
* testsuite/23_containers/unordered_set/operations/contains.cc: New.
|
||
|
||
2018-07-04 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/86272
|
||
* include/debug/string
|
||
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
|
||
Use __glibcxx_check_insert_range.
|
||
* 21_strings/basic_string/cons/char/1.cc: Adapt test to use
|
||
__gnu_debug::string when _GLIBCXX_DEBUG.
|
||
* 21_strings/basic_string/init-list.cc: Likewise.
|
||
* 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
|
||
* 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
|
||
* 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
|
||
* 21_strings/basic_string/types/1.cc: Likewise.
|
||
|
||
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/25_algorithms/make_heap/complexity.cc: Require effective
|
||
target for std::random_device.
|
||
* testsuite/26_numerics/random/random_device/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/experimental/algorithm/sample-2.cc: Likewise.
|
||
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
||
* testsuite/experimental/random/randint.cc: Likewise.
|
||
* testsuite/lib/libstdc++.exp
|
||
(check_effective_target_random_device): New proc.
|
||
|
||
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
|
||
|
||
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86398
|
||
* include/std/type_traits (is_trivially_constructible): Check
|
||
is_constructible before __is_trivially_constructible.
|
||
* testsuite/20_util/is_trivially_constructible/value.cc: Add more
|
||
tests, including negative cases.
|
||
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
|
||
zero for dg-error lineno.
|
||
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
|
||
Likewise.
|
||
|
||
* include/std/bit (__rotl, __rotr): Avoid branch.
|
||
(_If_is_unsigned_integer): Use remove_cv_t.
|
||
* testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
|
||
|
||
2018-07-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
|
||
* include/Makefile.am: Add new header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/precompiled/stdc++.h: Include new header.
|
||
* include/std/bit: New header.
|
||
(__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
|
||
(__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
|
||
Define for C++14.
|
||
[!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
|
||
(countr_one, popcount): Define for C++2a. Also overload for std::byte.
|
||
(ispow2, ceil2, floor2, log2p1): Define for C++2a.
|
||
[!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
|
||
std::byte.
|
||
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
|
||
* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
|
||
* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
|
||
* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
|
||
* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
|
||
|
||
* include/bits/alloc_traits.h: Remove redundant preprocessor
|
||
condition.
|
||
|
||
2018-07-03 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_algobase.h (__niter_wrap): New.
|
||
(__copy_move_a2(_II, _II, _OI)): Use latter.
|
||
(__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
|
||
(fill_n(_OI, _Size, const _Tp&)): Likewise.
|
||
(equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
|
||
* include/debug/stl_iterator.h
|
||
(std::__niter_base(const __gnu_cxx::_Safe_iterator<
|
||
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
|
||
* include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
|
||
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
|
||
|
||
2018-07-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
P0758R1 Implicit conversion traits
|
||
* include/std/type_traits [__cplusplus > 201703]
|
||
(__is_convertible_helper::__is_nothrow_type): Define new member.
|
||
(__is_convertible_helper<_From, _To, false>::__test_aux1): Add
|
||
noexcept.
|
||
(__is_convertible_helper<_From, _To, false>::__test_nothrow)
|
||
(__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
|
||
new members.
|
||
(is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
|
||
* testsuite/20_util/is_nothrow_convertible/value.cc: New.
|
||
* testsuite/20_util/is_nothrow_convertible/requirements/
|
||
explicit_instantiation.cc: New.
|
||
* testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
|
||
New.
|
||
|
||
P0887R1 The identity metafunction
|
||
* include/std/type_traits (type_identity, type_identity_t): Define
|
||
for C++2a.
|
||
* testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
|
||
* testsuite/20_util/type_identity/requirements/
|
||
explicit_instantiation.cc:New.
|
||
* testsuite/20_util/type_identity/requirements/typedefs.cc: New.
|
||
|
||
* include/bits/regex.h (sub_match::operator string_type): Call str().
|
||
(sub_match::compare): Use _M_str() instead of str().
|
||
(sub_match::_M_compare): New public function.
|
||
(sub_match::__string_view): New helper type.
|
||
(sub_match::_M_str): New overloaded functions to avoid creating a
|
||
string_type object when not needed.
|
||
(operator==, operator!=, operator<, operator>, operator<=, operator>=):
|
||
Use sub_match::_M_compare instead of creating string_type objects.
|
||
Fix Doxygen comments.
|
||
* include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
|
||
(__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
|
||
simplify.
|
||
(__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
|
||
__enable_if_t.
|
||
* include/std/type_traits (__enable_if_t): Define for C++11.
|
||
* testsuite/28_regex/sub_match/compare.cc: New.
|
||
* testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
|
||
trait.
|
||
(input_iterator_wrapper): Use remove_cv for value_type argument of
|
||
std::iterator base class.
|
||
|
||
2018-06-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
|
||
Add whitespace to dejagnu directive.
|
||
* testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
|
||
|
||
2018-06-27 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_vector.h
|
||
(struct _Vector_base<>::_Vector_impl_data): New.
|
||
(struct _Vector_base<>::_Vector_impl): Inherit from latter.
|
||
(_Vector_base<>::_Vector_impl::_M_swap_data): Move...
|
||
(_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
|
||
(_Vector_base<>::_Vector_impl()): Add noexcept qualification.
|
||
(_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
|
||
(_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
|
||
(_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
|
||
(_Vector_base()): Default.
|
||
(_Vector_base(_Vector_base&&)): Default.
|
||
(_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
|
||
(_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
|
||
(_Vector_base::_M_create_storage(size_t)): Make protected.
|
||
(vector()): Default.
|
||
(vector(vector&&)): Default.
|
||
(vector(vector&&, const allocator_type&, true_type)): New.
|
||
(vector(vector&&, const allocator_type&, false_type)): New.
|
||
(vector(vector&&, const allocator_type&)): Use latters.
|
||
(vector(_InputIte, _InputIte, const allocator_type&)): Call
|
||
_M_range_initialize directly.
|
||
* include/debug/vector
|
||
(vector(vector&&, const allocator_type&)): Add noexcept qualification.
|
||
* testsuite/23_containers/vector/allocator/default_init.cc: New.
|
||
* testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
|
||
static assertions.
|
||
|
||
2018-06-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
|
||
(__is_byte<byte>): Define specialization for std::byte.
|
||
|
||
PR libstdc++/86138
|
||
* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
|
||
Declare explicit instantiations of COW empty reps and I/O functions.
|
||
|
||
2018-06-26 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
|
||
directives.
|
||
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
||
|
||
2018-06-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex.tcc (regex_iterator::operator==): Add missing
|
||
noexcept.
|
||
|
||
2018-06-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86112
|
||
* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
|
||
Replace dict comprehension.
|
||
|
||
PR libstdc++/81092
|
||
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
PR libstdc++/86292
|
||
* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
|
||
Add try-catch block.
|
||
* testsuite/23_containers/vector/cons/86292.cc: New.
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
|
||
|
||
* include/experimental/algorithm (sample, shuffle): Add new overloads
|
||
using per-thread random number engine.
|
||
* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
|
||
dependencies by using __gnu_test::test_container.
|
||
* testsuite/experimental/algorithm/sample-2.cc: New.
|
||
* testsuite/experimental/algorithm/shuffle.cc: New.
|
||
|
||
2018-06-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
|
||
different size_t mangling on 32-bit targets.
|
||
|
||
PR libstdc++/86280
|
||
* include/experimental/memory_resource
|
||
(__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
|
||
enough for result of left shift.
|
||
|
||
PR libstdc++/86138
|
||
* include/bits/basic_string.tcc:
|
||
[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string<char>::_Rep::_S_empty_rep_storage)
|
||
(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
|
||
instantiation declarations.
|
||
[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
|
||
explicit instantiation declarations.
|
||
* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
|
||
|
||
2018-06-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83328
|
||
* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
|
||
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
|
||
* configure: Regenerate.
|
||
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::insert(const_iterator, initializer_list<C>)): Add.
|
||
[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
|
||
(basic_string::insert(iterator, initializer_list<C>)): Suppress
|
||
definition.
|
||
* include/debug/string (basic_string::insert(iterator, C)): Change
|
||
first parameter to const_iterator.
|
||
(basic_string::insert(iterator, size_type, C)): Likewise. Change
|
||
return type to iterator.
|
||
(basic_string::insert(iterator, InputIterator, InputIterator)):
|
||
Likewise.
|
||
(basic_string::insert(iterator, initializer_list<C>)): Change first
|
||
parameter to const_iterator and return type to iterator.
|
||
* src/c++11/string-inst.cc: Extend comment.
|
||
* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
|
||
New.
|
||
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
|
||
New.
|
||
* testsuite/util/testsuite_abi.cc: Add new symbol version.
|
||
|
||
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
PR libstdc++/70940
|
||
* include/experimental/memory_resource
|
||
(__resource_adaptor_imp::do_deallocate): Add missing return.
|
||
* testsuite/experimental/memory_resource/new_delete_resource.cc: New.
|
||
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
|
||
resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
|
||
__gnu_cxx::malloc_allocator.
|
||
|
||
PR libstdc++/70940
|
||
* include/experimental/memory_resource (__resource_adaptor_common):
|
||
New base class.
|
||
(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
|
||
pointer from unaligned, and vice versa.
|
||
(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
|
||
allocated pointer to meet alignment request.
|
||
(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
|
||
original pointer for deallocation.
|
||
(__resource_adaptor_imp::do_is_equal): Reformat.
|
||
(__resource_adaptor_imp::_S_aligned_size): Remove.
|
||
(__resource_adaptor_imp::_S_supported): Remove.
|
||
(new_delete_resource): Use __gnu_cxx::new_allocator.
|
||
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
|
||
extended alignments and use debug_allocator to check for matching
|
||
allocate/deallocate pairs.
|
||
|
||
2018-06-21 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/safe_iterator.h
|
||
(_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
|
||
Compare __x base iterator with a value-initialized iterator of the
|
||
same type.
|
||
|
||
2018-06-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/70966
|
||
* include/experimental/memory_resource (__resource_adaptor_imp): Add
|
||
static assertions to enforce requirements on pointer types.
|
||
(__resource_adaptor_imp::get_allocator()): Add noexcept.
|
||
(new_delete_resource, null_memory_resource): Return address of an
|
||
object with dynamic storage duration.
|
||
(__null_memory_resource): Remove.
|
||
* testsuite/experimental/memory_resource/70966.cc: New.
|
||
|
||
* testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
|
||
missed from recent commit.
|
||
|
||
2018-06-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/utility: Remove unused <exception> header.
|
||
|
||
2018-06-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
|
||
* include/std/scoped_allocator (__not_pair): Define SFINAE helper.
|
||
(construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
|
||
a specialization of std::pair.
|
||
* testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
|
||
pair elements are constructed correctly.
|
||
|
||
LWG 2989 hide path iostream operators from normal lookup
|
||
* include/bits/fs_path.h (operator<<, operator>>): Define inline as
|
||
friends.
|
||
* testsuite/27_io/filesystem/path/io/dr2989.cc: New.
|
||
|
||
LWG 3050 Fix cv-qualification of convertibility constraints
|
||
* include/std/chrono (duration, operator*, operator/, operator%): Use
|
||
const-qualified type as source type in is_convertible constraints.
|
||
* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
|
||
* testsuite/20_util/duration/cons/dr3050.cc: New.
|
||
* testsuite/20_util/duration/literals/range.cc: Rename to...
|
||
* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
|
||
dg-error lineno.
|
||
|
||
2018-06-18 Maya Rashish <coypu@sdf.org>
|
||
|
||
* crossconfig.m4: Handle OpenBSD just like NetBSD.
|
||
* configure: Rebuilt.
|
||
|
||
2018-06-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
P0754R2 <version> header
|
||
* include/Makefile.am: Add new header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/c++config: Change doxygen comment to suggest <version>
|
||
instead of <iosfwd>.
|
||
* include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
|
||
unconditionally. Add C++17 and C++20 headers.
|
||
* include/std/version: New header.
|
||
* testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/operator_names.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/stdc++.cc: New.
|
||
* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
|
||
New.
|
||
* testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/operator_names.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/stdc++.cc: New.
|
||
* testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
|
||
New.
|
||
* testsuite/18_support/headers/version/macros.cc: New.
|
||
* testsuite/18_support/headers/version/macros.cc: New.
|
||
|
||
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
|
||
enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
|
||
symlink.
|
||
* config.h.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
|
||
|
||
LWG 3035. std::allocator's constructors should be constexpr
|
||
* include/bits/allocator.h (allocator): Add constexpr to constructors
|
||
for C++2a. Replace dynamic exception specifications with NOTHROW
|
||
macro.
|
||
(allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
|
||
NOTHROW.
|
||
* include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
|
||
* include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
|
||
to constructors for C++2a.
|
||
* include/ext/new_allocator.h (new_allocator): Likewise.
|
||
|
||
2018-06-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
LWG 3076 basic_string CTAD ambiguity
|
||
* doc/xml/manual/intro.xml: Document LWG 3076 change.
|
||
* include/bits/basic_string.h
|
||
[__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
|
||
(basic_string(const _CharT*, const _Alloc&)): Turn into a function
|
||
template constrained by _RequireAllocator.
|
||
(basic_string(size_type, _CharT, const _Alloc&)): Likewise.
|
||
* src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
|
||
Define.
|
||
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
|
||
deduction
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
||
Likewise.
|
||
|
||
2018-06-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86169
|
||
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::data()): Unshare string.
|
||
* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
|
||
New.
|
||
|
||
* include/std/string_view (basic_string_view(const CharT*)): Remove
|
||
check for null pointer and add nonnull attribute.
|
||
(compare(const CharT*), compare(size_type, size_type, const CharT*))
|
||
(find(const CharT*, size_type), rfind(const CharT*, size_type))
|
||
(find_first_of(const CharT*, size_type))
|
||
(find_last_of(const CharT*, size_type))
|
||
(find_first_not_of(const CharT*, size_type))
|
||
(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
|
||
* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
|
||
* testsuite/21_strings/basic_string_view/operations/compare/char/
|
||
nonnull.cc: New.
|
||
* testsuite/21_strings/basic_string_view/operations/find/char/
|
||
nonnull.cc: New.
|
||
* testsuite/21_strings/basic_string_view/operations/rfind/char/
|
||
nonnull.cc: New.
|
||
|
||
PR libstdc++/86168
|
||
* include/bits/random.h (random_device(const string&)): Remove
|
||
default argument.
|
||
|
||
* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
|
||
define for C++17 and above.
|
||
|
||
LWG 2993 reference_wrapper<T> conversion from T&&
|
||
* doc/xml/manual/intro.xml: Document LWG 2993 change.
|
||
* include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
|
||
(reference_wrapper(_Tp&&)): Remove.
|
||
(reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
|
||
template.
|
||
(reference_wrapper): Add deduction guide.
|
||
* testsuite/20_util/reference_wrapper/deduction.cc: New.
|
||
* testsuite/20_util/reference_wrapper/lwg2993.cc: New.
|
||
|
||
LWG 3039 Unnecessary decay in thread and packaged_task
|
||
* include/std/future (__constrain_pkgdtask): Replace with ...
|
||
(packaged_task::__not_same): New alias template, using
|
||
__remove_cvref_t instead of decay.
|
||
* include/std/thread (thread::__not_same): Add comment.
|
||
|
||
2018-06-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
LWG 3075 basic_string needs deduction guides from basic_string_view
|
||
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
|
||
deduction from string views.
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
||
Likewise.
|
||
|
||
LWG 3074 make scalar types non-deduced in valarray non-member functions
|
||
* include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
|
||
scalar parameters to be a non-deduced context.
|
||
* include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
|
||
whitespace.
|
||
* testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
|
||
* testsuite/26_numerics/valarray/transcend.cc: New.
|
||
|
||
* include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
|
||
Move back to <utility>.
|
||
* include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
|
||
Restore to here.
|
||
|
||
P0935R0 Eradicating unnecessarily explicit default constructors
|
||
* include/backward/strstream (strstreambuf): Add non-explicit default
|
||
constructor.
|
||
* include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
|
||
Likewise.
|
||
* include/bits/regex.h (match_results): Likewise.
|
||
* testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
|
||
default constructor.
|
||
* testsuite/22_locale/conversions/string/1.cc: Likewise.
|
||
* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
|
||
* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
|
||
|
||
* include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
|
||
macro from <utility> and change type to long.
|
||
* include/std/utility (__cpp_lib_tuple_element_t): Remove.
|
||
* testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
|
||
macro.
|
||
|
||
P0935R0 Eradicating unnecessarily explicit default constructors
|
||
* include/bits/random.h (uniform_real_distribution::param_type)
|
||
(normal_distribution::param_type, lognormal_distribution::param_type)
|
||
(gamma_distribution::param_type, chi_squared_distribution::param_type)
|
||
(cauchy_distribution::param_type, fisher_f_distribution::param_type)
|
||
(student_t_distribution::param_type)
|
||
(bernoulli_distribution::param_type)
|
||
(binomial_distribution::param_type)
|
||
(geometric_distribution::param_type)
|
||
(negative_binomial_distribution::param_type)
|
||
(poisson_distribution::param_type)
|
||
(exponential_distribution::param_type)
|
||
(weibull_distribution::param_type)
|
||
(extreme_value_distribution::param_type): Add non-explicit default
|
||
constructors. Remove default argument for first parameter of explicit
|
||
constructors.
|
||
* include/bits/uniform_int_dist.h
|
||
(uniform_int_distribution::param_type): Likewise.
|
||
* include/ext/random
|
||
(beta_distribution::param_type, rice_distribution::param_type)
|
||
(nakagami_distribution::param_type, pareto_distribution::param_type)
|
||
(k_distribution::param_type, arcsine_distribution::param_type)
|
||
(hoyt_distribution::param_type, triangular_distribution::param_type)
|
||
(von_mises_distribution::param_type)
|
||
(hypergeometric_distribution::param_type)
|
||
(logistic_distribution::param_type)
|
||
(uniform_inside_sphere_distribution::param_type): Likewise.
|
||
(uniform_on_sphere_distribution::param_type): Make default constructor
|
||
non-explicit.
|
||
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
|
||
Test param_type for non-explicit default constructor.
|
||
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/triangular_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
|
||
Likewise.
|
||
|
||
2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83982
|
||
* include/bits/vector.tcc (vector::_M_default_append(size_type)):
|
||
Default-construct new elements before moving existing ones.
|
||
* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
|
||
New.
|
||
|
||
2018-06-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86127
|
||
* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
|
||
unused typedef.
|
||
(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
|
||
Use node allocator to create and destroy elements.
|
||
(forward_list::_Tp_alloc_type): Remove unused typedef.
|
||
(forward_list::_Alloc_traits): Use allocator_traits instead of
|
||
__gnu_cxx::__alloc_traits.
|
||
|
||
2018-06-13 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/helper_functions.h
|
||
(__gnu_debug::_Safe_iterator<>): Add declaration.
|
||
(__can_advance(_Ite, _Size)): New.
|
||
(__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
|
||
* include/debug/functions.h
|
||
(__gnu_debug::_Safe_iterator<>): Remove declaration.
|
||
* include/debug/stl_iterator.h
|
||
(__can_advance(const _Safe_iterator<>&)): New definition.
|
||
* include/debug/stl_iterator.h
|
||
(__can_advance(const std::reverse_iterator<>&, _Size)): New.
|
||
(__can_advance(const std::move_iterator<>&, _Size)): New.
|
||
* include/debug/macros.h (__glibcxx_check_can_increment): New.
|
||
* include/debug/debug.h (__glibcxx_requires_can_increment): New.
|
||
* include/bits/stl_algobase.h (fill_n): Use latter.
|
||
* testsuite/25_algorithms/fill_n/2.cc: New.
|
||
* testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
|
||
* testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
|
||
* testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
|
||
* testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
|
||
|
||
* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
|
||
(__glibcxx_requires_can_decrement_range): New.
|
||
|
||
2018-06-12 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/macros.h (__glibcxx_check_can_increment_range): New.
|
||
(__glibcxx_check_can_decrement_range): New.
|
||
* include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
|
||
__glibcxx_requires_can_increment_range.
|
||
(std::move(_II, _II, _OI)): Likewise.
|
||
(std::copy_backward(_BI, _BI, _BI2)): Use
|
||
__glibcxx_requires_can_decrement_range.
|
||
(std::move_backward(_BI, _BI, _BI2)): Likewise.
|
||
* testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
|
||
* testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
|
||
* testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
|
||
* testsuite/25_algorithms/equal/debug/1_neg.cc: New.
|
||
* testsuite/25_algorithms/equal/debug/2_neg.cc: New.
|
||
* testsuite/25_algorithms/equal/debug/3_neg.cc: New.
|
||
|
||
2018-06-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
P0935R0 Eradicating unnecessarily explicit default constructors
|
||
* include/bits/random.h (linear_congruential_engine)
|
||
(mersenne_twister_engine, subtract_with_carry_engine, random_device)
|
||
(uniform_real_distribution, normal_distribution)
|
||
(lognormal_distribution, gamma_distribution, chi_squared_distribution)
|
||
(cauchy_distribution, fisher_f_distribution, student_t_distribution)
|
||
(bernoulli_distribution, binomial_distribution,geometric_distribution)
|
||
(negative_binomial_distribution, exponential_distribution)
|
||
(weibull_distribution, extreme_value_distribution): Add non-explicit
|
||
default constructors. Remove default argument for first parameter of
|
||
explicit constructors.
|
||
(piecewise_constant_distribution, piecewise_linear_distribution):
|
||
Make default constructor non-explicit.
|
||
* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
|
||
non-explicit default constructors. Remove default argument for first
|
||
parameter of explicit constructor.
|
||
* include/ext/random
|
||
(simd_fast_mersenne_twister_engine, beta_distribution)
|
||
(rice_distribution, nakagami_distribution, pareto_distribution)
|
||
(k_distribution, arcsine_distribution, hoyt_distribution)
|
||
(triangular_distribution, von_mises_distribution)
|
||
(hypergeometric_distribution, logistic_distribution)
|
||
(uniform_inside_sphere_distribution): Likewise.
|
||
(uniform_on_sphere_distribution): Make default constructor
|
||
non-explicit.
|
||
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
|
||
Test for non-explicit default constructor. Fix references to standard.
|
||
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
|
||
* testsuite/ext/random/triangular_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
|
||
Likewise.
|
||
* testsuite/util/testsuite_common_types.h
|
||
(implicitly_default_constructible): New helper.
|
||
|
||
2018-06-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/ios_base.h (ios::Init::Init(const Init&))
|
||
(ios::Init::operator=): Define as defaulted.
|
||
* include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
|
||
Likewise.
|
||
* include/bits/stream_iterator.h (istream_iterator::operator=)
|
||
(ostream_iterator::operator=): Likewise.
|
||
* include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
|
||
Likewise.
|
||
* include/std/bitset (bitset::reference::reference(const reference&)):
|
||
Likewise.
|
||
* include/std/complex (complex<float>::complex(const complex&))
|
||
(complex<double>::complex(const complex&))
|
||
(complex<long double>::complex(const complex&)): Likewise.
|
||
|
||
2018-06-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex.h (sub_match): Add noexcept to default
|
||
constructor and length observer.
|
||
(match_results): Add noexcept to default constructor and observers
|
||
with no preconditions. Define destructor as defaulted.
|
||
(operator==, operator!=, swap): Add noexcept.
|
||
(regex_iterator): Add default member initializers and define default
|
||
constructor and destructor as defaulted. Add noexcept to equality
|
||
and dereference operators.
|
||
|
||
2018-06-07 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* src/c++11/debug.cc
|
||
(_Safe_iterator_base::_M_detach()): Reset state only if needed.
|
||
(_Safe_iterator_base::_M_detach_single()): Likewise.
|
||
(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
|
||
(_Safe_local_iterator_base::_M_detach_single()): Likewise.
|
||
|
||
2018-06-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
|
||
move of const value.
|
||
|
||
2018-06-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/86068
|
||
* include/bits/c++config: Check __cpp_transactional_memory >= 201500L
|
||
rather than __cpp_transactional_memory >= 201505L.
|
||
|
||
2018-06-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86008
|
||
* include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
|
||
Define new partial specialization.
|
||
* include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
|
||
new overload.
|
||
(operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
|
||
value not reference for iteration.
|
||
* testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
|
||
comment.
|
||
* testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
|
||
* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
|
||
comment.
|
||
|
||
2018-06-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits: Fix comment typos.
|
||
|
||
* testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
|
||
mingw* targets.
|
||
* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/read_symlink.cc:
|
||
Likewise.
|
||
|
||
2018-06-05 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_tempbuf.h
|
||
(_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
|
||
(_Temporary_buffer(_FwdIte, size_type)): ...this, new.
|
||
* include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
|
||
* include/bits/stl_algo.h (__stable_partition): Adapt.
|
||
(__inplace_merge): Adapt.
|
||
(__stable_sort): Adapt.
|
||
|
||
2018-06-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85930
|
||
* include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
|
||
unconditionally. Remove redundant declaration.
|
||
[!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
|
||
alignment-specifier.
|
||
|
||
* include/bits/postypes.h (fpos): Define special members as defaulted.
|
||
|
||
PR libstdc++/85930
|
||
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
|
||
the static variable correctly.
|
||
|
||
2018-05-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/78870 support std::filesystem on Windows
|
||
* config.h.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* configure.ac: Check for link, readlink and symlink.
|
||
* include/bits/fs_path.h (path::operator/=(const path&)): Move
|
||
definition out of class body.
|
||
(path::is_absolute(), path::_M_append(path)): Likewise.
|
||
(operator<<(basic_ostream, const path&)): Use std::quoted directly.
|
||
(operator>>(basic_istream, path&)): Likewise.
|
||
(u8path): Reorder definitions and fix Windows implementation.
|
||
(path::is_absolute()): Define inline and fix for Windows.
|
||
[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
|
||
Define POSIX version inline.
|
||
(path::_M_append(path)): Define inline.
|
||
* include/experimental/bits/fs_path.h (path::is_absolute()): Move
|
||
definition out of class body.
|
||
(operator<<(basic_ostream, const path&)): Fix type of delimiter and
|
||
escape characters.
|
||
(operator>>(basic_istream, path&)): Likewise.
|
||
(path::is_absolute()): Define inline and fix for Windows.
|
||
* src/filesystem/dir-common.h (__gnu_posix): New namespace.
|
||
(__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
|
||
(__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
|
||
Define as adaptors for Windows functions/types or as
|
||
using-declarations for POSIX functions/types.
|
||
(_Dir_base, get_file_type): Qualify names to use declarations from
|
||
__gnu_posix namespace.
|
||
(_Dir_base::is_dor_or_dotdot): New helper functions.
|
||
* src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
|
||
names to use declarations from __gnu_posix namespace.
|
||
* src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
|
||
(__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
|
||
(__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
|
||
(__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
|
||
(__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
|
||
(__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
|
||
Define as adaptors for Windows functions/types or as
|
||
using-declarations for POSIX functions/types.
|
||
(stat_type, do_copy_file): Qualify names to use declarations from
|
||
__gnu_posix namespace.
|
||
(do_space): Declare new function.
|
||
(make_file_type): Only use S_ISLNK if defined.
|
||
* src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
|
||
path::value_type not char.
|
||
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
|
||
names to use declarations from __gnu_posix namespace.
|
||
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
|
||
add implementation for Windows.
|
||
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
|
||
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
|
||
[!_PC_PATH_MAX]: Don't use pathconf.
|
||
[PATH_MAX]: Use if defined.
|
||
(filesystem::current_path(const path&, error_code&))
|
||
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
|
||
(filesystem::last_write_time, filesystem::permissions): Use names
|
||
from __gnu_posix.
|
||
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
|
||
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
|
||
implementation for Windows.
|
||
(filesystem::rename, filesystem::resize_file): Use names from
|
||
__gnu_posix.
|
||
(filesystem::space): Use do_space.
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
|
||
(filesystem::status, filesystem::symlink_status): Use names from
|
||
__gnu_posix.
|
||
(filesystem::temp_directory_path): Add implementation for Windows.
|
||
* src/filesystem/path.cc (dot): Define constant.
|
||
(path::replace_extension): Use dot.
|
||
(path::_M_find_extension): Likewise. Use path::string_type not
|
||
std::string.
|
||
(path::_M_split_cmpts): Use dot.
|
||
(filesystem_error::_M_get_what): Use u8string() not native().
|
||
* src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
|
||
Qualify names to use declarations from __gnu_posix namespace.
|
||
* src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
|
||
correct error_code.
|
||
(filesystem::absolute(const path&, error_code&)): Add implementation
|
||
for Windows.
|
||
(char_ptr, filesystem::canonical): Use path::value_type not char.
|
||
(do_copy_file): Use names from __gnu_posix.
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
|
||
sendfile.
|
||
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
|
||
names to use declarations from __gnu_posix namespace.
|
||
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
|
||
add implementation for Windows.
|
||
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
|
||
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
|
||
[!_PC_PATH_MAX]: Don't use pathconf.
|
||
[PATH_MAX]: Use if defined.
|
||
(filesystem::current_path(const path&, error_code&))
|
||
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
|
||
(filesystem::last_write_time, filesystem::permissions): Use names
|
||
from __gnu_posix.
|
||
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
|
||
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
|
||
implementation for Windows.
|
||
(filesystem::rename, filesystem::resize_file): Use names from
|
||
__gnu_posix.
|
||
(do_space): Define.
|
||
(filesystem::space): Use do_space.
|
||
(filesystem::status, filesystem::symlink_status): Use names from
|
||
__gnu_posix.
|
||
(filesystem::temp_directory_path): Add implementation for Windows.
|
||
* src/filesystem/std-path.cc
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
|
||
Define for Windows.
|
||
(dot): Define constant.
|
||
(path::replace_extension, is_dot): Use dot.
|
||
(path::lexically_normal): Check _M_type instead of calling
|
||
non-existent function.
|
||
(path::_M_find_extension): Use dot. Use path::string_type not
|
||
std::string.
|
||
(path::_M_split_cmpts): Use dot.
|
||
(filesystem_error::_M_get_what): Use u8string() not native().
|
||
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
|
||
use symlinks.
|
||
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/absolute.cc: Use
|
||
__gnu_test::root_path() instead of "/" and add Windows-specific tests.
|
||
* testsuite/27_io/filesystem/operations/canonical.cc: Use
|
||
path::string() to get narrow string, not path::native().
|
||
* testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
|
||
with std::filesystem::path not std::basic_string.
|
||
* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/exists.cc: Use
|
||
__gnu_test::root_path() instead of "/".
|
||
* testsuite/27_io/filesystem/operations/is_empty.cc: Construct
|
||
fstreams with std::filesystem::path not std::basic_string.
|
||
* testsuite/27_io/filesystem/operations/last_write_time.cc: Use
|
||
path::string() to get narrow string.
|
||
* testsuite/27_io/filesystem/operations/space.cc: Check results for
|
||
errors, expect sensible values otherwise.
|
||
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
|
||
helpers for adjusting the environment on Windows.
|
||
* testsuite/27_io/filesystem/path/append/path.cc: Test
|
||
Windows-specific behaviour.
|
||
* testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
|
||
of path::string_type objects.
|
||
* testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
|
||
string to wide string on Windows.
|
||
* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
|
||
for backslash as root-directory.
|
||
* testsuite/27_io/filesystem/path/decompose/stem.cc: Use
|
||
path::string() to get narrow string.
|
||
* testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
|
||
paths.
|
||
* testsuite/27_io/filesystem/path/native/string.cc: Use string_type
|
||
not std::string.
|
||
* testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
|
||
different definintion of absolute paths on Windows.
|
||
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
|
||
Do not use symlinks.
|
||
* testsuite/experimental/filesystem/operations/absolute.cc: Test
|
||
Windows behaviour.
|
||
* testsuite/experimental/filesystem/operations/copy.cc: Construct
|
||
fstreams with NTCTS not std::basic_string.
|
||
* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/exists.cc: Use
|
||
__gnu_test::root_path() instead of "/".
|
||
* testsuite/experimental/filesystem/operations/is_empty.cc: Construct
|
||
fstreams with NTCTS not std::basic_string.
|
||
* testsuite/experimental/filesystem/operations/last_write_time.cc:
|
||
Use path::string() to get narrow string.
|
||
* testsuite/experimental/filesystem/operations/space.cc: Use
|
||
__gnu_test::root_path() instead of "/".
|
||
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
|
||
Add helpers for adjusting the environment on Windows.
|
||
* testsuite/experimental/filesystem/path/append/path.cc: Use
|
||
path::string() to get narrow strings for comparisons.
|
||
* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/native/string.cc: Use
|
||
string_type not std::string.
|
||
* testsuite/experimental/filesystem/path/query/is_absolute.cc:
|
||
Adjust for different definintion of absolute paths on Windows.
|
||
* testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
|
||
function.
|
||
(__gnu_test::scoped_file): Construct fstreams with NTCTS not
|
||
std::basic_string.
|
||
|
||
2018-05-31 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85951
|
||
* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
|
||
uint_least16_t and uint_least32_t.
|
||
(__make_unsigned<wchar_t>): Define unconditionally.
|
||
(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
|
||
typedefs.
|
||
(__make_unsigned_selector_base): New type to provide helper templates.
|
||
(__make_unsigned_selector<_Tp, false, true>): Reimplement using
|
||
__make_unsigned_selector_base helpers.
|
||
(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
|
||
(__make_signed_selector<_Tp, true, false>): Remove intermediate
|
||
typedefs.
|
||
(__make_signed<wchar_t>, __make_signed<char16_t>)
|
||
(__make_signed<char32_t>)): Define unconditionally.
|
||
* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
|
||
wchar_t, char16_t and char32_t are transformed correctly.
|
||
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
|
||
dg-error lineno.
|
||
* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
|
||
wchar_t, char16_t and char32_t are transformed correctly.
|
||
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
|
||
dg-error lineno.
|
||
|
||
2018-05-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (__erased_dtor): Qualify call to __get.
|
||
|
||
2018-05-27 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
|
||
(_Rb_tree(const allocator_type&)): Use latter.
|
||
* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
|
||
(map(initializer_list<value_type>, const allocator_type&)): Likewise.
|
||
(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
|
||
* include/bits/stl_multimap.h
|
||
(multimap(const allocator_type&)): Likewise.
|
||
(multimap(initializer_list<value_type>, const allocator_type&)):
|
||
Likewise.
|
||
(multimap(_InputIterator, _InputIterator, const allocator_type&)):
|
||
Likewise.
|
||
* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
|
||
(set(initializer_list<value_type>, const allocator_type&)): Likewise.
|
||
(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
|
||
* include/bits/stl_multiset.h
|
||
(multiset(const allocator_type&)): Likewise.
|
||
(multiset(initializer_list<value_type>, const allocator_type&)):
|
||
Likewise.
|
||
(multiset(_InputIterator, _InputIterator, const allocator_type&)):
|
||
Likewise.
|
||
|
||
2018-05-25 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/85768
|
||
* src/c++11/debug.cc: Remove backtrace usage.
|
||
|
||
2018-05-24 Maya Rashish <coypu@sdf.org>
|
||
|
||
PR target/85904
|
||
* crossconfig.m4: Test for aligned_alloc on netbsd.
|
||
* configure: Regenerate.
|
||
|
||
2018-05-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/69769
|
||
PR libstdc++/85886
|
||
* include/bits/atomic_base.h (__atomic_base::value_type)
|
||
(__atomic_base::difference_type): Add new typedefs.
|
||
* include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
|
||
(atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
|
||
(atomic<T*>::operator++, atomic<T*>::operator--)
|
||
(atomic<T*>::operator+=, atomic<T*>::operator-=)
|
||
(atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
|
||
to enforce C++17 requirement on pointer arithmetic.
|
||
(__atomic_val_t, __atomic_diff_t): New alias templates.
|
||
(atomic_init, atomic_store_explicit, atomic_exchange_explicit)
|
||
(atomic_compare_exchange_weak_explicit)
|
||
(atomic_compare_exchange_strong_explicit, atomic_store)
|
||
(atomic_exchange, atomic_compare_exchange_weak)
|
||
(atomic_compare_exchange_strong): Use __atomic_val_t to make
|
||
scalar parameters be non-deduced contexts.
|
||
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
|
||
(atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
|
||
atomic instead of __atomic_base, and use __atomic_diff_t for scalar
|
||
parameters.
|
||
(atomic_fetch_and_explicit, atomic_fetch_or_explicit)
|
||
(atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
|
||
(atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
|
||
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
|
||
(atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
|
||
address types.
|
||
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
|
||
* testsuite/29_atomics/atomic/69769.cc: New test.
|
||
* testsuite/29_atomics/atomic/nonmembers.cc: New test.
|
||
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
|
||
Disable test for C++17 and later.
|
||
* testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
|
||
* testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
|
||
* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
|
||
test.
|
||
|
||
2018-05-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/fs_path.h (path::__is_encoded_char): Change from class
|
||
template to alias template.
|
||
(path::__value_type_is_char): Use remove_const_t.
|
||
(path:_S_string_from_iter): New helper function.
|
||
(path::_S_convert(InputIter, __null_terminated))
|
||
(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
|
||
Use _S_string_from_iter.
|
||
(path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
|
||
rep for COW strings.
|
||
* include/experimental/bits/fs_path.h (path::__is_encoded_char):
|
||
Change from class template to alias template.
|
||
(path::__value_type_is_char): Use remove_const.
|
||
(path:_S_string_from_iter): New helper function.
|
||
(path::_S_convert(InputIter, __null_terminated))
|
||
(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
|
||
Use _S_string_from_iter.
|
||
* testsuite/27_io/filesystem/path/append/source.cc: Test appending
|
||
wide strings.
|
||
* testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
|
||
string equality, not path equivalence.
|
||
* testsuite/27_io/filesystem/path/construct/format.cc: Check
|
||
construction from std::string and std::wstring and input iterators.
|
||
* testsuite/27_io/filesystem/path/construct/locale.cc: Check
|
||
construction from iterators.
|
||
* testsuite/experimental/filesystem/path/concat/strings.cc: Check for
|
||
exact string equality, not path equivalence.
|
||
* testsuite/experimental/filesystem/path/construct/locale.cc: Check
|
||
construction from iterators.
|
||
|
||
* include/bits/fs_path.h (path::_M_type): Change default member
|
||
initializer to _Filename.
|
||
(path::begin): Create past-the-end iterator for empty path.
|
||
* src/filesystem/std-path.cc (path::remove_filename()): Remove
|
||
debugging check.
|
||
(path::has_relative_path()): Return false for empty filenames.
|
||
(path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
|
||
Fix offset of empty final component.
|
||
* testsuite/27_io/filesystem/path/itr/components.cc: New.
|
||
* testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
|
||
|
||
2018-05-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
Add support for opening file streams from wide character strings.
|
||
* config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
|
||
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
|
||
Define new overload.
|
||
* config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
|
||
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
|
||
Declare new overload.
|
||
* configure.ac: Check for _wfopen.
|
||
* crossconfig.m4: Likewise.
|
||
* configure: Regenerate.
|
||
* config.h.in: Regenerate.
|
||
* include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
|
||
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
|
||
Define new overload.
|
||
* include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
|
||
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
|
||
Declare new overload.
|
||
[_GLIBCXX_HAVE__WFOPEN]
|
||
(basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
||
(basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
|
||
(basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
||
(basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
|
||
(basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
||
(basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
|
||
new overloads.
|
||
* testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
|
||
* testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
|
||
|
||
2018-05-21 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/85845
|
||
* include/bits/stl_tree.h
|
||
(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
|
||
qualification.
|
||
|
||
2018-05-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/filesystem/std-ops.cc (absolute): Report an error for empty
|
||
paths.
|
||
(weakly_canonical(const path&)): Do not call canonical on empty path.
|
||
(weakly_canonical(const path&, error_code&)): Likewise.
|
||
* testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
|
||
|
||
PR libstdc++/85818
|
||
* testsuite/experimental/filesystem/path/preferred_separator.cc: Add
|
||
dg-require-filesystem-ts.
|
||
|
||
PR libstdc++/85843
|
||
* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
|
||
initialize base class to avoid warnings.
|
||
|
||
2018-05-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
|
||
[__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
|
||
little_endian element in bitmask.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
|
||
|
||
2018-05-18 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/stl_tree.h
|
||
(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
|
||
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
|
||
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
|
||
(_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
|
||
* include/debug/map.h
|
||
(map(map&&, const_allocator_type&)): Add noexcept qualitication.
|
||
* include/debug/multimap.h
|
||
(multimap(multimap&&, const_allocator_type&)): Likewise.
|
||
* include/debug/set.h
|
||
(set(set&&, const_allocator_type&)): Likewise.
|
||
* include/debug/multiset.h
|
||
(multiset(multiset&&, const_allocator_type&)): Likewise.
|
||
* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/map/cons/noexcept_move_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
|
||
Add checks.
|
||
* testsuite/23_containers/set/cons/noexcept_move_construct.cc:
|
||
Add checks.
|
||
|
||
2018-05-18 Jason Merrill <jason@redhat.com>
|
||
|
||
* include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
|
||
for conversion to const_iterator. Add defaulted copy ops.
|
||
* libsupc++/new (bad_alloc): Add defaulted copy ops.
|
||
* libsupc++/exception.h (exception): Add defaulted copy ops.
|
||
* include/std/system_error (system_error): Add defaulted copy ops.
|
||
* include/std/stdexcept (domain_error, invalid_argument)
|
||
(length_error, out_of_range, range_error, overflow_error)
|
||
(underflow_error): Add defaulted copy ops.
|
||
* include/bits/stl_iterator.h (reverse_iterator): Add defaulted
|
||
copy assignment.
|
||
* include/bits/allocator.h (allocator): Add defaulted copy assignment.
|
||
* include/ext/throw_allocator.h (condition_base): Add defaulted
|
||
default and copy ctor and copy assignment.
|
||
|
||
2018-05-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85098
|
||
* include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
|
||
(basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
|
||
(basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
|
||
(basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
|
||
definitions.
|
||
* include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
|
||
whitespace.
|
||
* include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
|
||
braces around body of do-while.
|
||
* testsuite/28_regex/basic_regex/85098.cc: New
|
||
|
||
2018-05-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85818
|
||
* src/filesystem/path.cc (path::preferred_separator): Add used
|
||
attribute.
|
||
* testsuite/experimental/filesystem/path/preferred_separator.cc: New.
|
||
|
||
PR libstdc++/85812
|
||
* libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
|
||
* libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
|
||
Refactor to separate non-throwing and throwing implementations.
|
||
[__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
|
||
if constructing the object throws.
|
||
|
||
2018-05-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85749
|
||
* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
|
||
(linear_congruential_engine, mersenne_twister_engine)
|
||
(subtract_with_carry_engine, discard_block_engine)
|
||
(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
|
||
constrain function templates taking seed sequences.
|
||
* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
|
||
(mersenne_twister_engine::seed(_Sseq&))
|
||
(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
|
||
match declarations.
|
||
* include/ext/random (simd_fast_mersenne_twister_engine): Use
|
||
__is_seed_seq to constrain function templates taking seed sequences.
|
||
* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
|
||
Change return type to match declaration.
|
||
* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
|
||
New.
|
||
* testsuite/26_numerics/random/independent_bits_engine/cons/
|
||
seed_seq2.cc: New.
|
||
* testsuite/26_numerics/random/linear_congruential_engine/cons/
|
||
seed_seq2.cc: New.
|
||
* testsuite/26_numerics/random/mersenne_twister_engine/cons/
|
||
seed_seq2.cc: New.
|
||
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
|
||
* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
|
||
New.
|
||
* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
|
||
seed_seq2.cc: New.
|
||
* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
|
||
seed_seq2.cc: New.
|
||
|
||
PR libstdc++/83891
|
||
* include/bits/fs_path.h (path::is_absolute()): Use same definition
|
||
for all operating systems.
|
||
* include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
|
||
* testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
|
||
* testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
|
||
* testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
|
||
|
||
* testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
|
||
unused <vector> header.
|
||
* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/extension.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_extension.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_filename.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_name.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/query/is_relative.cc:
|
||
Likewise.
|
||
|
||
PR libstdc++/84159
|
||
* include/bits/fs_path.h (path::operator/=, path::append): Construct
|
||
temporary path before calling _M_append.
|
||
(path::_M_append): Change parameter to path and implement C++17
|
||
semantics.
|
||
* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
|
||
and more examples from the standard.
|
||
* testsuite/27_io/filesystem/path/append/source.cc: New.
|
||
* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
|
||
* testsuite/27_io/filesystem/path/nonmember/append.cc: New.
|
||
|
||
* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
|
||
__invoke to prevent ADL.
|
||
|
||
2018-05-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/81256
|
||
* include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
|
||
exceptions from _M_terminate_output().
|
||
* include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
|
||
exceptions from close().
|
||
* testsuite/27_io/basic_filebuf/close/81256.cc: New.
|
||
|
||
* include/bits/valarray_array.h (__valarray_get_memory): Remove.
|
||
(__valarray_get_storage): Call operator new directly. Remove ignored
|
||
top-level restrict qualifier and add malloc attribute instead.
|
||
(_Array<_Tp>::_Array(size_t)): Remove unused constructor.
|
||
|
||
PR libstdc++/67554
|
||
* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
|
||
(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
|
||
|
||
PR libstdc++/82966
|
||
* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
|
||
instead of type.
|
||
* testsuite/23_containers/set/modifiers/node_swap.cc: New.
|
||
|
||
2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR libstdc++/80165
|
||
* testsuite/20_util/variant/80165.cc: New.
|
||
|
||
2018-05-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
|
||
* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
|
||
of C++11 containers with Debug Mode support.
|
||
* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2018-05-10 Jason Merrill <jason@redhat.com>
|
||
|
||
* include/bits/regex_compiler.h (_S_cache_size): Change from
|
||
function to variable.
|
||
|
||
2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
|
||
|
||
PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
|
||
* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
|
||
argument defaulted to +1. Doxy comments on same.
|
||
* testsuite/special_functions/02_assoc_legendre/
|
||
check_value.cc: Regen.
|
||
* testsuite/tr1/5_numerical_facilities/special_functions/
|
||
02_assoc_legendre/check_value.cc: Regen.
|
||
|
||
2018-05-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85729
|
||
* include/bits/c++config.h (__replacement_assert): Add linkage
|
||
specification.
|
||
* include/bits/std_abs.h: Add comment to closing brace of block.
|
||
* include/c_global/cstddef: Add linkage specification.
|
||
* include/c_global/cstring: Likewise.
|
||
* include/c_global/cwchar: Likewise.
|
||
|
||
2018-05-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
|
||
Rename in...
|
||
(_Safe_iterator<>::_S_constant()): ...that.
|
||
* include/debug/safe_local_iterator.h
|
||
(_Safe_local_iterator<>::_M_constant()): Rename in...
|
||
(_Safe_local_iterator<>::_S_constant()): ...that.
|
||
* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
|
||
(_Iterator_state::__rbegin): New.
|
||
(_Iterator_state::__rmiddle): New.
|
||
(_Iterator_state::__rend): New.
|
||
(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
|
||
_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
|
||
iterator type.
|
||
(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
|
||
_Is_iterator)): Likewise.
|
||
(_Parameter::_S_reverse_state(_Iterator_state)): New.
|
||
(_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
|
||
_Is_iterator)): New.
|
||
(_Parameter(std::reverse_iterator<> const&, const char*,
|
||
_Is_iterator)): New.
|
||
(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
|
||
const char*, _Is_iterator)): New.
|
||
(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
|
||
New.
|
||
(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
|
||
_Is_iterator)): New.
|
||
* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
|
||
* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
|
||
* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
|
||
|
||
2018-05-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/std_function.h (_Base_manager::_M_get_pointer):
|
||
Use constexpr if in C++17 mode.
|
||
(_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
|
||
Copy from const object.
|
||
* testsuite/20_util/function/cons/non_copyconstructible.cc: New.
|
||
|
||
2018-05-08 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
|
||
[_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
|
||
backtrace.
|
||
|
||
* include/debug/macros.h (__glibcxx_check_valid_range_at): New.
|
||
* include/debug/functions.h (__check_valid_range): Use latter.
|
||
* include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
|
||
use latter.
|
||
* include/debug/deque
|
||
(deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
|
||
* include/debug/forward_list
|
||
(forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
|
||
Likewise.
|
||
* include/debug/list
|
||
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
* include/debug/list
|
||
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
* include/debug/map.h
|
||
(map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
(map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
|
||
Likewise.
|
||
* include/debug/multimap.h
|
||
(multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
(multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
|
||
const _Alloc&)): Likewise.
|
||
* include/debug/set.h
|
||
(set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
(set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
|
||
Likewise.
|
||
* include/debug/multiset.h
|
||
(multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
||
(multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
|
||
const _Alloc&)): Likewise.
|
||
* include/debug/string
|
||
(basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
|
||
Likewise.
|
||
* include/debug/unordered_map
|
||
(unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
|
||
Likewise.
|
||
(unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
|
||
const _Alloc&)): Likewise.
|
||
* include/debug/unordered_set
|
||
(unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
|
||
Likewise.
|
||
(unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
|
||
const _Alloc&)): Likewise.
|
||
* include/debug/vector
|
||
(vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
|
||
|
||
* include/debug/formatter.h (_Error_formatter::_M_function): New.
|
||
(_Error_formatter(const char*, unsigned int)): Adapt.
|
||
(_Error_formatter::_M_at): Rename in...
|
||
(_Error_formatter::_S_at): ...that and adapt.
|
||
* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
|
||
(_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
|
||
* src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
|
||
when available.
|
||
|
||
2018-05-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
|
||
Use normal std::vector even in Debug Mode.
|
||
|
||
PR libstdc++/85672
|
||
* include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
|
||
to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
|
||
within conditional block.
|
||
|
||
2018-05-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/using.xml (table.cmd_options): Document that the
|
||
C++17 Filesystem implementation also needs -lstdc++fs.
|
||
|
||
PR libstdc++/85671
|
||
* include/bits/fs_path.h (operator/): Permit copy elision.
|
||
* include/experimental/bits/fs_path.h (operator/): Likewise.
|
||
|
||
2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
|
||
|
||
Moar PR libstdc++/80506
|
||
* include/bits/random.tcc (gamma_distribution::__generate_impl()):
|
||
Fix magic number used in loop condition.
|
||
|
||
2018-05-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
|
||
* include/std/optional (_Optional_payload): Add noexcept to default
|
||
constructor. Re-indent.
|
||
(_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
|
||
constructor for copying disengaged payloads.
|
||
(_Optional_payload<_Tp, true, false, true>): Likewise.
|
||
(_Optional_payload<_Tp, true, true, false>): Likewise.
|
||
(_Optional_payload<_Tp, true, false, false>): Likewise.
|
||
* testsuite/20_util/optional/cons/85642.cc: New.
|
||
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
|
||
|
||
2018-05-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/82644
|
||
* include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
|
||
inline definitions instead of using-declarations.
|
||
[__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
|
||
* testsuite/tr1/5_numerical_facilities/special_functions/
|
||
07_conf_hyperg/compile_cxx17.cc: New.
|
||
* testsuite/tr1/5_numerical_facilities/special_functions/
|
||
17_hyperg/compile_cxx17.cc: New.
|
||
|
||
PR libstdc++/84769
|
||
* include/std/variant (visit): Qualify std::get call.
|
||
|
||
PR libstdc++/85632 use uintmax_t for arithmetic
|
||
* src/filesystem/ops.cc (experimental::filesystem::space): Perform
|
||
arithmetic in result type.
|
||
* src/filesystem/std-ops.cc (filesystem::space): Likewise.
|
||
* testsuite/27_io/filesystem/operations/space.cc: Check total capacity
|
||
is greater than free space.
|
||
* testsuite/experimental/filesystem/operations/space.cc: New.
|
||
|
||
* testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
|
||
* testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
|
||
New.
|
||
* testsuite/20_util/remove_cvref/value.cc: New.
|
||
* testsuite/20_util/remove_cvref/value_ext.cc: New.
|
||
|
||
PR libstdc++/84087 LWG DR 2268 basic_string default arguments
|
||
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
|
||
(append(const basic_string&, size_type, size_type)
|
||
(assign(const basic_string&, size_type, size_type)
|
||
(insert(size_type, const basic_string&, size_type, size_type)
|
||
(replace(size_type,size_type,const basic_string&,size_type,size_type)
|
||
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
|
||
Add default arguments (LWG 2268).
|
||
[_GLIBCXX_USE_CXX11_ABI=0]
|
||
(append(const basic_string&, size_type, size_type)
|
||
(assign(const basic_string&, size_type, size_type)
|
||
(insert(size_type, const basic_string&, size_type, size_type)
|
||
(replace(size_type,size_type,const basic_string&,size_type,size_type)
|
||
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/dr2268.cc: New test.
|
||
|
||
PR libstdc++/84535
|
||
* include/std/thread (thread::__not_same): New SFINAE helper.
|
||
(thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
|
||
first argument is not a std::thread. Add static assertion to check
|
||
INVOKE expression is valid.
|
||
(thread::thread(thread&), thread::thread(const thread&&)): Remove.
|
||
(thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
|
||
__invoke_result for return types and remove exception specifications.
|
||
* testsuite/30_threads/thread/cons/84535.cc: New.
|
||
|
||
* include/std/future (__async_result_of): Use __invoke_result instead
|
||
of result_of.
|
||
|
||
* include/std/any (any_cast): Use __remove_cvref_t.
|
||
* include/std/tuple (__make_tuple): Likewise.
|
||
* include/std/type_traits (__remove_cvref_t): Define.
|
||
(__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
|
||
[__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
|
||
* include/std/variant (__erased_hash): Use __remove_cvref_t.
|
||
|
||
2018-05-02 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
|
||
ensure overloaded comma not used.
|
||
* include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
|
||
* include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
|
||
* include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
|
||
* testsuite/23_containers/deque/modifiers/assign/1.cc: New.
|
||
* testsuite/23_containers/list/modifiers/assign/1.cc: New.
|
||
* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
|
||
* testsuite/23_containers/vector/modifiers/assign/1.cc: New.
|
||
|
||
2018-05-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/68197
|
||
* include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
|
||
indices to unsigned.
|
||
* src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
|
||
as failure. Refactor error handling.
|
||
* testsuite/27_io/ios_base/storage/68197.cc: New.
|
||
|
||
PR libstdc++/57997
|
||
PR libstdc++/83860
|
||
* include/bits/gslice_array.h (gslice_array): Define default
|
||
constructor as deleted, as per C++11 standard.
|
||
* include/bits/mask_array.h (mask_array): Likewise.
|
||
* include/bits/slice_array.h (slice_array): Likewise.
|
||
* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
|
||
to namespace __detail.
|
||
(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
|
||
members.
|
||
* include/bits/valarray_before.h (_ValArrayRef): New helper for type
|
||
of data members in closure objects.
|
||
(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
|
||
(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
|
||
__detail.
|
||
(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
|
||
(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
|
||
(_SBase::_M_expr): Use _ValArrayRef for type of data members.
|
||
* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
|
||
(_ValFunClos, _RefFunClos): Move to namespace __detail and add
|
||
using-declarations to namespace std.
|
||
* testsuite/26_numerics/valarray/83860.cc: New.
|
||
|
||
* testsuite/backward/strstream_move.cc: Remove duplicate function
|
||
call.
|
||
|
||
PR libstdc++/69608
|
||
* include/backward/strstream (strstreambuf): Define move constructor
|
||
and move assignment operator.
|
||
(istrstream, ostrstream, strstream): Likewise.
|
||
* testsuite/backward/strstream_move.cc: New.
|
||
|
||
2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
|
||
|
||
PR libstdc++/84654
|
||
* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
|
||
* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
|
||
* configure: Regenerate.
|
||
* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
|
||
based on ENABLE_FLOAT128.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
|
||
[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
|
||
_GLIBCXX_USE_FLOAT128.
|
||
|
||
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* configure: Regenerated.
|
||
|
||
2018-04-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* configure: Regenerated.
|
||
|
||
2018-04-18 Jonathan Wakely <jwakely@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/85442
|
||
* src/c++11/Makefile.am: Don't generate debuginfo again for
|
||
cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
|
||
2018-04-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84442
|
||
* testsuite/30_threads/thread/cons/terminate.cc
|
||
[!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
|
||
|
||
2018-04-18 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR jit/85384
|
||
* configure: Regenerate.
|
||
|
||
2018-04-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/experimental/filesystem/file_status/1.cc: Add
|
||
-DUSE_FILESYSTEM_TS to dg-options.
|
||
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
|
||
* testsuite/experimental/filesystem/iterators/
|
||
recursive_directory_iterator.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/create_directories.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/create_directory.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/create_symlink.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/current_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/last_write_time.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/permissions.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/read_symlink.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/status.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/append/path.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/construct/default.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/construct/string_view.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/extension.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/filename.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/root_name.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/root_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/generic/generic_string.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/native/string.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_extension.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_filename.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_name.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_root_path.cc:
|
||
Likewise.
|
||
* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
|
||
* testsuite/experimental/filesystem/path/query/is_relative.cc:
|
||
Likewise.
|
||
|
||
2018-04-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/Makefile.am: Fix sed command.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
|
||
* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
|
||
handle mangled names starting with double underscores on darwin.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
|
||
2018-04-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/Makefile.am: Fix comment.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
* src/c++11/cxx11-ios_failure.cc: Fix comment.
|
||
* src/c++98/ios_failure.cc: Likewise.
|
||
|
||
* src/c++11/ios.cc: Remove redundant macro definition.
|
||
|
||
2018-04-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/abi.xml: Document header locations in recent
|
||
releases.
|
||
* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
|
||
* doc/xml/manual/spine.xml: Update copyright years.
|
||
* doc/xml/manual/strings.xml: Adjust tolower example to avoid
|
||
undefined behaviour.
|
||
* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2018-04-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
|
||
* doc/xml/manual/backwards_compatibility.xml: Likewise.
|
||
* doc/xml/manual/containers.xml: Likewise.
|
||
* doc/xml/manual/debug_mode.xml: Likewise.
|
||
* doc/xml/manual/extensions.xml: Likewise.
|
||
* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
|
||
* doc/xml/manual/using.xml: Likewise.
|
||
* doc/xml/manual/utilities.xml: Likewise.
|
||
|
||
PR libstdc++/85222
|
||
* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
|
||
cxx11-ios_failure.cc to rewrite type info for __ios_failure.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
|
||
New types.
|
||
[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
|
||
* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
|
||
* src/c++98/ios_failure.cc (__construct_ios_failure)
|
||
(__destroy_ios_failure, is_ios_failure_handler): New functions.
|
||
[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
|
||
* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
|
||
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
|
||
handler types, to always catch std::ios_base::failure.
|
||
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
|
||
exceptions_failbit.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
|
||
exceptions_failbit.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_other/char/
|
||
exceptions_null.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
|
||
exceptions_null.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
|
||
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
|
||
* testsuite/27_io/basic_ostream/inserters_other/char/
|
||
exceptions_null.cc: Likewise.
|
||
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
|
||
exceptions_null.cc: Likewise.
|
||
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
|
||
|
||
2018-04-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
|
||
__get calls to avoid ADL and avoid ambiguity due to Clang bug.
|
||
|
||
2018-04-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85183
|
||
* include/std/variant (_Move_assign_base::operator=): Fix incorrect
|
||
value categories.
|
||
* testsuite/20_util/variant/85183.cc: New.
|
||
|
||
2018-03-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (__get): Qualify calls to avoid ADL.
|
||
(__select_index): Adjust whitespace.
|
||
(variant): Add using-declaration to workaround Clang bug.
|
||
|
||
2018-03-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85040
|
||
* include/bits/stl_function.h (greater::__not_overloaded)
|
||
(less::__not_overloaded, greater_equal::__not_overloaded)
|
||
(less_equal::__not_overloaded): Fix ambiguous specializations.
|
||
* testsuite/20_util/function_objects/comparisons_pointer.cc: Add
|
||
tests for type with overloaded operators.
|
||
|
||
2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR libstdc++/77691
|
||
* testsuite/experimental/memory_resource/resource_adaptor.cc:
|
||
xfail execution on 32-bit Solaris/x86.
|
||
|
||
2018-03-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/20_util/function_objects/comparisons_pointer.cc: Use
|
||
VERIFY instead of assert.
|
||
* testsuite/20_util/hash/84998.cc: New test.
|
||
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
|
||
copy of test adjusted for Debug Mode.
|
||
* testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
|
||
test in Debug Mode.
|
||
|
||
2018-03-20 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/84998
|
||
* include/bits/stl_bvector.h: Fix std::hash friend declaration.
|
||
* include/std/bitset: Likewise.
|
||
* include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
|
||
declaration.
|
||
* include/bits/stl_multimap.h (std::multimap<>): Likewise.
|
||
* include/bits/stl_multiset.h (std::multiset<>): Likewise.
|
||
* include/bits/stl_set.h (std::set<>): Likewise.
|
||
* include/bits/unordered_map.h (std::unordered_map<>): Fix
|
||
_Hash_merge_helper friend declaration.
|
||
(std::unordered_multimap<>): Likewise.
|
||
* include/bits/unordered_set.h (std::unordered_set<>): Likewise.
|
||
(std::unordered_multiset<>): Likewise.
|
||
|
||
2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/api.xml: www.fsf.org has moved to https. Also omit
|
||
trailing slash for domain level link.
|
||
* doc/xml/faq.xml: Ditto.
|
||
* doc/xml/manual/appendix_free.xml (software): Ditto.
|
||
* doc/xml/manual/intro.xml: Ditto.
|
||
* doc/xml/manual/spine.xml: Ditto.
|
||
* doc/xml/spine.xml: Ditto.
|
||
|
||
2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/xml/manual/documentation_hacking.xml: Adjust link to
|
||
docbook.org.
|
||
|
||
2018-03-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
|
||
to compile as C++98.
|
||
|
||
2018-03-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/78420
|
||
* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
|
||
(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
|
||
to ensure total order for pointers.
|
||
(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
|
||
Add operator() overloads for pointer arguments and make generic
|
||
overloads dispatch to new _S_cmp functions when comparisons would
|
||
use built-in operators for pointers.
|
||
* testsuite/20_util/function_objects/comparisons_pointer.cc: New.
|
||
|
||
2018-03-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84773
|
||
PR libstdc++/83662
|
||
* crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
|
||
* configure: Regenerate.
|
||
* include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
|
||
(aligned_alloc): Add using-declaration.
|
||
* testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
|
||
|
||
2018-03-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
|
||
Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
|
||
registration.
|
||
|
||
2018-03-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84769
|
||
* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
|
||
Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
|
||
|
||
src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
|
||
src/filesystem/std-ops.cc (create_dir): Likewise.
|
||
|
||
2018-03-08 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
|
||
(StdListIteratorPrinter): Inherit from latter.
|
||
(StdFwdListIteratorPrinter): New, inherit from latter.
|
||
(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
|
||
when iterator has no associated container.
|
||
(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
|
||
__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
|
||
registrations.
|
||
* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
|
||
* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
|
||
|
||
2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR libstdc++/84601
|
||
* include/std/optional (_Optional_payload): Split into multiple
|
||
specializations that can handle different cases of trivial or
|
||
non-trivial assignment operators.
|
||
* testsuite/20_util/optional/84601.cc: New.
|
||
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
|
||
|
||
2018-03-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84671
|
||
* include/bits/parse_numbers.h (_Number_help): Add partial
|
||
specialization to handle digit separators. Adjust partial
|
||
specialization for recursion temrination to require _Pow == 1ULL.
|
||
* testsuite/20_util/duration/literals/84671.cc: New
|
||
|
||
2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Implement the missing bits of LWG 2769
|
||
* include/std/any (any_cast(const any&)): Add static_assert.
|
||
(any_cast(any&)): Likewise.
|
||
(any_cast(any&&)): Likewise, and remove the handling
|
||
for copyable-but-not-movable type.
|
||
* testsuite/20_util/any/misc/any_cast.cc: Adjust.
|
||
* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
|
||
add new tests.
|
||
|
||
2018-02-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/84532
|
||
* include/std/thread (thread::__make_invoker): Construct tuple
|
||
directly instead of using make_tuple.
|
||
* testsuite/30_threads/async/84532.cc: New.
|
||
* testsuite/30_threads/thread/84532.cc: New.
|
||
|
||
2018-02-20 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
|
||
(template<> __aligned_buffer): Define as __aligned_membuf alias.
|
||
|
||
2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
|
||
|
||
PR target/84148
|
||
* configure: Regenerate.
|
||
|
||
2018-02-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/81797
|
||
* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
|
||
* configure: Regenerate.
|
||
* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
|
||
defined.
|
||
* include/Makefile.in: Regenerate.
|
||
|
||
2018-01-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83833
|
||
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
|
||
Add -ffloat-store to options for m68k and ia32.
|
||
|
||
* doc/xml/faq.xml: Update copyright years.
|
||
* doc/html/*: Regenerate.
|
||
|
||
PR libstdc++/83658
|
||
* include/std/any (any::__do_emplace): Only set _M_manager after
|
||
constructing the contained object.
|
||
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
|
||
* testsuite/20_util/any/modifiers/83658.cc: New test.
|
||
|
||
2018-01-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/81076
|
||
* include/c_global/cstddef (__byte_operand): Define primary template.
|
||
* testsuite/18_support/byte/81076.cc: New test.
|
||
|
||
2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
|
||
dg-options and dg-add-options order.
|
||
* testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
|
||
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/10_cyl_neumann/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
|
||
* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
|
||
* testsuite/special_functions/18_riemann_zeta/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/19_sph_bessel/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/20_sph_legendre/check_nan.cc:
|
||
Likewise.
|
||
* testsuite/special_functions/21_sph_neumann/check_nan.cc:
|
||
Likewise.
|
||
|
||
2018-01-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
|
||
include linux/types.h when checking linux/random.h header.
|
||
* config.h.in: Regenerate.
|
||
* configure: Ditto.
|
||
* src/c++11/random.cc: Conditionally include linux/types.h.
|
||
|
||
2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
|
||
|
||
2018-01-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83834
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
|
||
pattern with exact match for std::cerr.
|
||
|
||
2018-01-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83833
|
||
* include/bits/random.h (chi_squared_distribution::param): Update
|
||
gamma distribution parameter.
|
||
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
|
||
test.
|
||
|
||
PR libstdc++/83830
|
||
* include/std/type_traits (has_unique_object_representations_v): Add
|
||
variable template.
|
||
* testsuite/20_util/has_unique_object_representations/value.cc: Check
|
||
variable template.
|
||
|
||
2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Make optional conditionally
|
||
trivially_{copy,move}_{constructible,assignable}
|
||
* include/std/optional (_Optional_payload): Fix the comment in
|
||
the class head and turn into a primary and one specialization.
|
||
(_Optional_payload::_M_engaged): Strike the NSDMI.
|
||
(_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
|
||
New.
|
||
(_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
|
||
Likewise.
|
||
(_Optional_payload<_Tp, false>::_M_get): Likewise.
|
||
(_Optional_payload<_Tp, false>::_M_reset): Likewise.
|
||
(_Optional_base_impl): Likewise.
|
||
(_Optional_base): Turn into a primary and three specializations.
|
||
(optional(nullopt)): Change the base init.
|
||
* testsuite/20_util/optional/assignment/8.cc: New.
|
||
* testsuite/20_util/optional/cons/trivial.cc: Likewise.
|
||
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
|
||
|
||
2018-01-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/80276
|
||
* python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
|
||
(get_template_arg_list): New.
|
||
(StdVariantPrinter._template_args): Remove, use get_template_arg_list
|
||
instead.
|
||
(TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
|
||
of strings and regular expressions.
|
||
(add_one_template_type_printer): Adapt to new TemplateTypePrinter.
|
||
(FilteringTypePrinter): Add docstring. Match using startswith. Use
|
||
strip_inline_namespaces instead of strip_versioned_namespace.
|
||
(add_one_type_printer): Prepend namespace to match argument.
|
||
(register_type_printers): Add type printers for char16_t and char32_t
|
||
string types and for types using cxx11 ABI. Update calls to
|
||
add_one_template_type_printer to provide default argument dicts.
|
||
* testsuite/libstdc++-prettyprinters/80276.cc: New test.
|
||
* testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
|
||
basic_string<unsigned char> and basic_string<signed char>.
|
||
* testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
|
||
to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
|
||
|
||
2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
|
||
|
||
PR libstdc++/81092
|
||
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2018-01-13 Tim Shen <timshen@google.com>
|
||
|
||
PR libstdc++/83601
|
||
* include/bits/regex.tcc (regex_replace): Fix escaping in sed.
|
||
* testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
|
||
* testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
|
||
|
||
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR libstdc++/64054
|
||
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
|
||
Remove dg-xfail-run-if.
|
||
|
||
2018-01-10 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
* include/bits/forward_list.h
|
||
(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
|
||
(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
|
||
(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
|
||
(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
|
||
(_Fwd_list_impl()): Add noexcept qualification.
|
||
(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
|
||
(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
|
||
(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
|
||
(_Fwd_list_base()): Default.
|
||
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
|
||
(_Fwd_list_base(_Fwd_list_base&&)): Default.
|
||
(forward_list<>()): Default.
|
||
(forward_list<>(forward_list&&)): Default.
|
||
(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
|
||
(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
|
||
(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
|
||
* include/bits/forward_list.tcc
|
||
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
|
||
_M_impl._M_head move assignment.
|
||
(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
|
||
* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
|
||
|
||
2018-01-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/80276
|
||
* python/libstdcxx/v6/printers.py (SharedPointerPrinter)
|
||
(UniquePointerPrinter): Print correct template argument, not type of
|
||
the pointer.
|
||
(TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
|
||
a type.
|
||
* testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
|
||
array type.
|
||
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
|
||
weak_ptr of array types.
|
||
|
||
2018-01-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/83709
|
||
* include/bits/hashtable_policy.h
|
||
(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
|
||
__first != __last.
|
||
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
|
||
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
|
||
Add false_type parameter.
|
||
(_Insert_base::insert): Adapt.
|
||
* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
|
||
Adapt.
|
||
(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
|
||
Add __n_elt parameter, defaulted to 1.
|
||
(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
|
||
policy _M_need_rehash.
|
||
(_Hashtable::_M_merge_unique): Pass target number of elements to add to
|
||
produce only 1 rehash if necessary.
|
||
* testsuite/23_containers/unordered_map/insert/83709.cc: New.
|
||
* testsuite/23_containers/unordered_set/insert/83709.cc: New.
|
||
|
||
2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/59253 (partial)
|
||
* python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
|
||
type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
|
||
(SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
|
||
children.
|
||
* testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
|
||
of unique_ptr printer.
|
||
* testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
|
||
output of shared_ptr printer.
|
||
|
||
2018-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83626
|
||
* src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
|
||
unnecessary symlink_status call.
|
||
(remove_all(const path&, error_code&)): Use filesystem::remove.
|
||
* src/filesystem/std-ops.cc: Likewise.
|
||
|
||
PR libstdc++/83279
|
||
* src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
|
||
sendfile.
|
||
|
||
PR libstdc++/83626
|
||
* src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
|
||
report an error for ENOENT.
|
||
(remove_all(const path&)): Fix type of result variable.
|
||
(remove_all(const path&, error_code&)): Use non-throwing increment
|
||
for directory iterator. Call POSIX remove directly to avoid redundant
|
||
calls to symlink_status. Do not report errors for ENOENT.
|
||
* src/filesystem/std-ops.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
|
||
overload.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc:
|
||
Likewise.
|
||
|
||
2018-01-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/83626
|
||
* src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
|
||
redundant call to ec.clear().
|
||
(remove_all(const path&, error_code&))): Do not return an error for
|
||
non-existent paths.
|
||
* src/filesystem/std-ops.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove.cc: New test.
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
|
||
results for non-existent paths.
|
||
* testsuite/experimental/filesystem/operations/remove.cc: New test.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc: Fix
|
||
expected results for non-existent paths.
|
||
|
||
* include/bits/fs_ops.h (exists(const path&, error_code&))): Only
|
||
check status_known once.
|
||
* include/experimental/bits/fs_ops.h: Likewise.
|
||
|
||
PR libstdc++/83607
|
||
* include/std/functional (__is_byte_like): New trait.
|
||
(__is_std_equal_to): Remove.
|
||
(__boyer_moore_base_t): Use __is_byte_like instead of
|
||
__is_std_equal_to.
|
||
* include/experimental/functional (__is_std_equal_to): Remove.
|
||
(__boyer_moore_base_t): Use __is_byte_like instead of
|
||
__is_std_equal_to.
|
||
* testsuite/20_util/function_objects/83607.cc: New test.
|
||
|
||
2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Protect optional's deduction guide with the feature macro
|
||
* include/std/optional: Use the feature macro.
|
||
|
||
2018-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
Copyright (C) 2018 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|