2019-05-23 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-02-27 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89466 * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local stylesheet directories before check for xsltproc. Try to use xmlcatalog to find local stylesheet directory before trying hardcoded paths. Add path used by suse to hardcoded paths. Adjust xsltproc check to look for the same stylesheet as doc/Makefile.am uses. Don't use xsltproc if xmlcatalog fails to find a local stylesheet. * configure.ac: Check for xmlcatalog. * Makefile.in: Regenerate. * configure: Likewise. * doc/Makefile.in: Likewise. * include/Makefile.in: Likewise. * libsupc++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * python/Makefile.in: Likewise. * src/Makefile.in: Likewise. * src/c++11/Makefile.in: Likewise. * src/c++17/Makefile.in: Likewise. * src/c++98/Makefile.in: Likewise. * src/filesystem/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. 2019-05-23 Jonathan Wakely <jwakely@redhat.com> * doc/html/*: Regenerate. 2019-05-23 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-05-23 Jonathan Wakely <jwakely@redhat.com> * include/experimental/any (__any_caster): Use RTTI if comparing addresses fails, to support non-unique addresses in shared libraries. * include/std/any (__any_caster): Likewise. * testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error line number. 2019-05-23 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-05-23 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90220 * include/experimental/any (__any_caster): Constrain to only be callable for object types. Use remove_cv_t instead of decay_t. If the type decays or isn't copy constructible, compare the manager function to a dummy specialization. (__any_caster): Add overload constrained for non-object types. (any::_Manager_internal<_Op>): Add dummy specialization. * testsuite/experimental/any/misc/any_cast.cc: Test function types and array types. Backport from mainline 2019-04-24 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90220 * include/std/any (__any_caster): Use remove_cv_t instead of decay_t. Avoid a runtime check for types that can never be stored in std::any. * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with array types. Backport from mainline 2019-04-24 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90220 (partial) * include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do not attempt ill-formed static_cast to pointers to non-object types. * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with function types. 2019-05-23 Jonathan Wakely <jwakely@redhat.com> Backported from mainline 2019-01-15 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2 status. * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms): Define. * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3 changes are supported. * include/std/optional (__cpp_lib_optional): Likewise. * include/std/variant (__cpp_lib_variant): Likewise. * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long integer. 2019-05-20 Jonathan Wakely <jwakely@redhat.com> Backported from mainline 2019-05-20 Jonathan Wakely <jwakely@redhat.com> PR c++/90532 Ensure __is_constructible(T[]) is false * include/std/type_traits (__do_is_default_constructible_impl) (__is_default_constructible_atom, __is_default_constructible_safe): Remove. (is_default_constructible): Use is_constructible. * testsuite/20_util/is_constructible/value.cc: Check int[] case. * testsuite/20_util/is_default_constructible/value.cc: Likewise. * testsuite/20_util/is_trivially_constructible/value.cc: Likewise. * testsuite/20_util/is_trivially_default_constructible/value.cc: Likewise. 2019-05-17 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-05-04 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90299 * src/filesystem/std-ops.cc (absolute(const path&)): Report an error if the argument is an empty path. (absolute(const path&, error_code&)): Use invalid_argument as error code instead of no_such_file_or_directory. * testsuite/27_io/filesystem/operations/absolute.cc: Check handling of non-existent paths and empty paths with both overloads of absolute. 2019-05-15 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-04-30 Jonathan Wakely <jwakely@redhat.com> * testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove macros accidentally left in. Backport from mainline 2019-05-13 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90454.cc path construction from void* * include/bits/fs_path.h (path::_Path): Use remove_pointer so that pointers to void are rejected as well as void. * include/experimental/bits/fs_path.h (path::_Path): Likewise. * testsuite/27_io/filesystem/path/construct/80762.cc: Also check pointers to void. * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise. 2019-05-11 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-05-10 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/81266 * testsuite/util/thread/all.h: Do not use remove_pointer for std::thread::native_handle_type. 2019-05-07 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-02-06 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89102 (partial) * include/std/type_traits (common_type<>): Define. (common_type<T>): Derive from common_type<T, T>. * testsuite/20_util/common_type/requirements/explicit_instantiation.cc: Test zero-length template argument list. * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: Test additional single argument cases. * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc: Adjust expected error. Backport from mainline 2019-01-22 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/88740 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to write to stderr instead of using printf. Backport from mainline 2019-04-23 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90165 * include/std/variant (variant::__is_in_place_tag) (variant::__not_in_place_tag): New helpers for variant(T&&) constructor constraint. (variant::variant(T&&)): Use __not_in_place_tag in constraints. * testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor isn't used for in_place_type or in_place_index arguments. Backport from mainline 2019-04-17 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90105 * include/bits/forward_list.tcc (operator==): Do not use operator!= to compare elements. (forward_list<T, A>::sort(Comp)): When elements are equal take the one earlier in the list, so that sort is stable. * testsuite/23_containers/forward_list/operations/90105.cc: New test. * testsuite/23_containers/forward_list/comparable.cc: Test with types that meet the minimum EqualityComparable and LessThanComparable requirements. Remove irrelevant comment. Backport from mainline 2019-04-17 Jonathan Wakely <jwakely@redhat.com> * include/std/optional (optional::value_or(U&&) &&): Add missing constexpr specifier. * testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or for disengaged optionals and rvalue optionals. * testsuite/20_util/optional/observers/4.cc: Likewise. Backport from mainline 2019-04-10 Jonathan Wakely <jwakely@redhat.com> * doc/xml/faq.xml: Add information about emergency EH pool. * doc/xml/manual/debug.xml: Update list of memory debugging tools. Move outdated information on mt_allocator to a separate section. * doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW doesn't affect the default allocator. Backport from mainline 2019-04-05 Jonathan Wakely <jwakely@redhat.com> * src/filesystem/std-dir.cc (_Dir::advance(bool, error_code&)): Handle d_type == DT_UNKNOWN immediately. (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown handling here. * testsuite/27_io/filesystem/iterators/caching.cc: New test. Backport from mainline 2019-04-05 Jonathan Wakely <jwakely@redhat.com> * include/bits/fs_path.h (path::operator=(path&&)): Check for self assignment. * testsuite/27_io/filesystem/path/assign/copy.cc: Test self assignment. Backport from mainline 2019-03-26 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/85965 * include/bits/hashtable.h (_Hashtable): Move static assertions to destructor so they are not evaluated until the _Key type is complete. * include/bits/stl_tree.h (_Rb_tree): Likewise. * testsuite/23_containers/set/85965.cc: New test. * testsuite/23_containers/unordered_set/85965.cc: New test. * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors with regexp matching the corresponding _Rb_tree specialization. * testsuite/23_containers/multimap/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. Backport from mainline 2019-03-11 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89629 * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes): Use correct type for len_aligned. * testsuite/20_util/hash/89629.cc: New test. Backport from mainline 2019-03-08 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/using.xml: Use link element instead of xref. Backport from mainline 2019-02-14 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/intro.xml: Document LWG 2586 status. * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue allocator type in is_constructible checks. * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error. * testsuite/20_util/scoped_allocator/dr2586.cc: New test. * testsuite/20_util/tuple/cons/allocators.cc: Add test using problematic type from LWG 2586 discussion. * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error. * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. Backport from mainline 2019-02-14 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/intro.xml: Document LWG 2537 status. * include/bits/stl_queue.h (priority_queue(const Compare&, const Container&, const Alloc&)) (priority_queue(const Compare&, Container&&, const Alloc&)): Call make_heap. * testsuite/23_containers/priority_queue/dr2537.cc: New test. 2019-02-22 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89446 * include/bits/char_traits.h (__constant_char_array): Check index is in range before dereferencing. * testsuite/21_strings/basic_string_view/operators/char/89446.cc: New test. 2019-02-22 Release Manager * GCC 8.3.0 released. 2019-02-14 Jonathan Wakely <jwakely@redhat.com> PR middle-end/89303 * testsuite/20_util/enable_shared_from_this/89303.cc: New test. 2019-02-09 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-01-08 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/88066 * include/bits/locale_conv.h: Use <> for includes not "". * include/ext/random: Likewise. * include/ext/vstring.h: Likewise. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> * doc/html/*: Regenerate. * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing if the path is already absolute. [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path. Backport from mainline 2019-01-11 Jonathan Wakely <jwakely@redhat.com> * include/std/chrono (duration_values::zero(), duration_values::min()) (duration_values::max()): Add noexcept. (duration::zero(), duration::min(), duration::max()): Likewise. (time_point::zero(), time_point::min(), time_point::max()): Likewise. * testsuite/20_util/duration/requirements/noexcept.cc: New test. * testsuite/20_util/time_point/requirements/noexcept.cc: New test. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-01-07 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87787 * include/bits/char_traits.h (char_traits::move): Do not pass null pointers to memmove. * include/bits/locale_facets.h (ctype<char>::widen(const char*, const char*, char*)): Do not pass null pointers to memcpy. (ctype<char>::narrow(const char*, const char*, char, char*)): Likewise. (ctype<char>::do_widen(const char*, const char*, char*)): Likewise. (ctype<char>::do_narrow(const char*, const char*, char, char*)): Likewise. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-23 Martin Sebor <msebor@redhat.com> Jonathan Wakely <jwakely@redhat.com> PR libstdc++/65229 * python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle exception thrown for std::bitset<0>. * testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-23 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87308 (partial) * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to work around PR 88166. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-02-05 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89128 * include/bits/stl_queue.h (queue, priority_queue): Add deduction guides. * include/bits/stl_stack.h (stack): Likewise. * testsuite/23_containers/priority_queue/deduction.cc: New test. * testsuite/23_containers/queue/deduction.cc: New test. * testsuite/23_containers/stack/deduction.cc: New test. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-29 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/88119 * include/ext/aligned_buffer.h (__aligned_membuf): Add comment. (__aligned_buffer): Use __alignof__ instead of std::alignment_of. * include/std/type_traits (alignment_of): Use alignof instead of __alignof__. * testsuite/20_util/alignment_of/value.cc: Fix test to check values match alignof not __alignof__, as required by the standard. 2019-02-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-28 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/83511 * include/std/string_view (basic_string_view::substr): Add default argument to first parameter. * include/experimental/string_view (basic_string_view::substr): Likewise. * testsuite/21_strings/basic_string_view/operations/substr/char/ 83511.cc: New test. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/ 83511.cc: New test. * testsuite/experimental/string_view/operations/substr/char/83511.cc: New test. * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc: New test. Backport from mainline 2018-11-19 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/88084 - Implement LWG 2777 * include/std/string_view (basic_string_view::copy): Use traits to copy. * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: New test. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: New test. Backport from mainline 2018-11-29 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/86910 PR libstdc++/87846 * src/filesystem/ops.cc (experimental::create_directories): Report an error when the path resolves to an existing non-directory (P1164). * src/filesystem/std-ops.cc (create_directories): Likewise. Handle empty filenames due to trailing slashes. * testsuite/27_io/filesystem/operations/create_directories.cc: Test when some component of the path exists and is not a directory. Test trailing slashes. * testsuite/experimental/filesystem/operations/create_directories.cc: Likewise. Backport from mainline 2018-11-28 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/intro.xml: Document LWG 3096 change. * src/filesystem/std-path.cc (path::lexically_relative(const path&)): Treat a final empty element equivalently to a final dot element. * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks for the examples in the DR. Backport from mainline 2018-07-20 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/86595 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add noexcept. Backport from mainline 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. Backport from mainline 2019-01-30 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/89117 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from final component as well as from _M_pathname. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: Add more test cases. 2019-01-21 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-01-18 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87514 PR libstdc++/87520 PR libstdc++/88782 * include/bits/shared_ptr.h (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)) (allocate_shared): Change to use new tag type. (_Sp_alloc_shared_tag): Define new type. (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend. (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)): Constrain to prevent being called with _Sp_alloc_shared_tag. (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)): Replace constructor with ... (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use reference parameter so address of the new object can be returned to the caller. Obtain the allocator from the tag type. (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace constructor with ... (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr to the __shared_count constructor. (__allocate_shared): Change to use new tag type. 2019-01-14 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/80762 * testsuite/experimental/filesystem/path/construct/80762.cc: Add dg-require-filesystem-ts directive. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-01-04 Jonathan Wakely <jwakely@redhat.com> (path::lexically_normal()): Use std::vector iterators instead of path::iterator. Use pop_back to remove components from the end. Clear trailing filename, instead of using erase(const_iterator) to remove a non-final component. * testsuite/27_io/filesystem/path/generation/normal.cc: Test additional cases. * testsuite/27_io/filesystem/path/generation/normal2.cc: New test. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-12-12 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/80762 * include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void. * include/experimental/bits/fs_path.h (path::_Path): Likewise. * testsuite/27_io/filesystem/path/construct/80762.cc: New test. * testsuite/experimental/filesystem/path/construct/80762.cc: New test. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-05-23 Jonathan Wakely <jwakely@redhat.com> * include/bits/fs_path.h (path::_M_type): Change default member initializer to _Filename. (path::begin): Create past-the-end iterator for empty path. (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. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2019-01-10 Jonathan Wakely <jwakely@redhat.com> * testsuite/util/testsuite_fs.h (nonexistent_path): Include name of the source file containing the caller. * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove directories created by test. * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: Likewise. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Likewise. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Likewise. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-27 Jonathan Wakely <jwakely@redhat.com> * testsuite/27_io/filesystem/operations/canonical.cc: Remove directory created by test. * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove symlink created by test. 2019-01-10 Jonathan Wakely <jwakely@redhat.com> * src/filesystem/std-path.cc (path::remove_filename()): Remove debug check that prevents building with -fno-exceptions. 2019-01-09 Jonathan Wakely <jwakely@redhat.com> * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to dg-prune-output. Remove unused header. Backport from mainline 2019-01-08 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87855 * include/std/optional (_Optional_payload_base): New class template for common code hoisted from _Optional_payload specializations. Use a template for the union, to allow a partial specialization for types with non-trivial destructors. Add constructors for in-place initialization to the union. (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct to perform non-trivial copy construction, instead of relying on non-standard copy elision in a delegating constructor. (_Optional_payload(bool, _Optional_payload&&)): Likewise for non-trivial move construction. (_Optional_payload): Derive from _Optional_payload_base and use it for everything except the non-trivial assignment operators, which are defined as needed. (_Optional_payload<false, C, M>): Derive from the specialization _Optional_payload<true, false, false> and add a destructor. (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset): Forward to corresponding members of _Optional_payload. (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get): Hoist common members from _Optional_base. (_Optional_base): Make all members and base class public. (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to _Optional_base_impl. * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add support for new std::optional layout. * testsuite/libstdc++-prettyprinters/compat.cc: New test. Backport from mainline 2018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com> PR libstdc++/87855 Also implement P0602R4 (variant and optional should propagate copy/move triviality) for std::optional. * include/std/optional (_Optional_payload): Change the main constraints to check constructibility in addition to assignability. (operator=): Make constexpr. (_M_reset): Likewise. (_M_construct): Likewise. (operator->): Likewise. * testsuite/20_util/optional/assignment/8.cc: Adjust. * testsuite/20_util/optional/assignment/9.cc: New. 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> Backport from mainline 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> * scripts/make_exports.pl (check names): Donât try to export construction vtable symbols. 2018-12-22 Iain Sandoe <iain@sandoe.co.uk> Backport from mainline 2018-12-06 Jonathan Wakely <jwakely@redhat.com> Iain Sandoe <iain@sandoe.co.uk> PR libstdc++/64883 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test always_inline on Darwin. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise. 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> Backport from mainline 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-11-28 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/88199 * include/bits/hashtable.h (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate former buckets after assignment. * testsuite/23_containers/unordered_set/allocator/move_assign.cc (test03): New. 2018-11-22 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-11-22 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/85930 PR libstdc++/87520 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti) [__cpp_rtti]: Define even when RTTI is enabled. Use array of sizeof(type_info) so that type-punned reference binds to an object of the correct size as well as correct alignment. (_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for _S_ti() reference even when RTTI is enabled. (__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...)) [__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag). 2018-10-31 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-10-31 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87822 * include/bits/stl_pair.h (__pair_base): Change to class template. (pair): Make base class type depend on template parameters. * testsuite/20_util/pair/87822.cc: New test. 2018-10-30 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-10-30 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87809 * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use trait in exception-specification instead of possibly invalid expression. * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): Likewise. * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise. * testsuite/23_containers/forward_list/cons/87809.cc: New test. * testsuite/23_containers/list/cons/87809.cc: New test. * testsuite/23_containers/vector/bool/cons/87809.cc: New test. * testsuite/23_containers/vector/cons/87809.cc: New test. 2018-10-25 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87749 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string::operator=(basic_string&&)): For short strings copy the buffer inline. Only fall back to using assign(const basic_string&) to do a deep copy when reallocation is needed. * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: New test. * testsuite/21_strings/basic_string/modifiers/assign/char/ move_assign_optim.cc: New test. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: New test. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ move_assign_optim.cc: New test. 2018-10-23 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87704 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do not delegate to default constructor. (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. 2018-10-19 Jonathan Wakely <jwakely@redhat.com> * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use _GLIBCXX_STD_A to refer to normal mode algorithms. * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty whitespace. 2018-10-18 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-10-18 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87641 * include/bits/valarray_array.h (__valarray_sum): Use first element to initialize accumulator instead of value-initializing it. * testsuite/26_numerics/valarray/87641.cc: New test. 2018-10-15 Jonathan Wakely <jwakely@redhat.com> * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to account for change to glibc it_IT localedata (glibc bz#10797). 2018-10-12 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 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. 2018-10-12 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-09-03 Jonathan Wakely <jwakely@redhat.com> 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. * include/std/type_traits (__enable_if_t): Define for C++11. * 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-10-12 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-08-30 Jonathan Wakely <jwakely@redhat.com> * 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-10-12 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-08-23 Jonathan Wakely <jwakely@redhat.com> * 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. Backport from mainline 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. Backport from mainline 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. 2018-10-12 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-07-24 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/70966 * include/experimental/memory_resource (__get_default_resource): Use placement new to create an object with dynamic storage duration. Backport from mainline 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. 2018-10-12 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-10-08 Joseph Myers <joseph@codesourcery.com> Backport from mainline 2018-10-02 Joseph Myers <joseph@codesourcery.com> * testsuite/lib/libstdc++.exp (libstdc++_init): Use -fno-show-column in default cxxflags. 2018-10-08 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-10-08 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/87538 * include/std/functional (_Not_fn::operator()): Check value of __is_nothrow_invocable as well. * testsuite/20_util/function_objects/not_fn/87538.cc: New test. * testsuite/experimental/functional/87538.cc: New test. 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. 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-13 Jonathan Wakely <jwakely@redhat.com> 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 Sebastian Huber <sebastian.huber@embedded-brains.de> Backport from mainline 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-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. 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. * doc/xml/manual/using.xml: Remove C++2a headers not on gcc-8-branch. * doc/html/*: Regenerate. * doc/xml/manual/using.xml: Add missing header to table and fix typo. Remove C++17 headers not present on gcc-8-branch. * doc/html/*: Regenerate. 2018-08-07 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-07-31 Jonathan Wakely <jwakely@redhat.com> * 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. Backport from mainline 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 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. * testsuite/30_threads/thread/cons/84535.cc: New. Backport from mainline 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. Backport from mainline 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. Backport from mainline 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. Backport from mainline 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 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. 2018-07-31 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-07-30 Jonathan Wakely <jwakely@redhat.com> * 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. Backport from mainline 2018-07-20 Fangrui Song <maskray@google.com> * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use _GLIBCXX_VISIBILITY(default). Backport from mainline 2018-07-30 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/86734 * include/bits/stl_iterator.h (reverse_iterator::operator->): Use addressof (LWG 2188). * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. Backport from mainline 2018-05-08 Jonathan Wakely <jwakely@redhat.com> 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. Backport from mainline 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-07-26 Marek Polacek <polacek@redhat.com> * testsuite/30_threads/condition_variable_any/cond.cc: New. 2018-07-26 Release Manager * GCC 8.2.0 released. 2018-07-18 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-07-05 Jonathan Wakely <jwakely@redhat.com> * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for COW strings. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. Backport from mainline 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. Backport from mainline 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. Backport from mainline 2018-06-25 Jonathan Wakely <jwakely@redhat.com> * 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-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-05 François Dumont <fdumont@gcc.gnu.org> Backport from mainline 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. 2018-07-04 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 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. Backport from mainline 2018-07-03 Jonathan Wakely <jwakely@redhat.com> * include/bits/alloc_traits.h: Remove redundant preprocessor condition. Backport from mainline 2018-06-27 Jonathan Wakely <jwakely@redhat.com> * include/bits/cpp_type_traits.h [__cplusplus >= 201703] (__is_byte<byte>): Define specialization for std::byte. Backport from mainline 2018-06-18 Jonathan Wakely <jwakely@redhat.com> 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. Backport from mainline 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. Backport from mainline 2018-05-29 Jonathan Wakely <jwakely@redhat.com> * include/std/variant (__erased_dtor): Qualify call to __get. Backport from mainline 2018-05-15 Jonathan Wakely <jwakely@redhat.com> * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify __invoke to prevent ADL. Backport from mainline 2018-05-24 Maya Rashish <coypu@sdf.org> PR target/85904 * crossconfig.m4: Test for aligned_alloc on netbsd. * configure: Regenerate. Backport from mainline 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 Backport from mainline 2018-05-07 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/85671 * include/bits/fs_path.h (operator/): Permit copy elision. * include/experimental/bits/fs_path.h (operator/): Likewise. Backport from mainline 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. Backport from mainline 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 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. Backport from mainline 2018-06-27 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/86138 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0] Declare explicit instantiations of COW empty reps and I/O functions. Backport from mainline 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. Backport from mainline 2018-06-14 Jonathan Wakely <jwakely@redhat.com> LWG 3075 basic_string needs deduction guides from basic_string_view * include/bits/basic_string.h: Add deduction guides from 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. Backport from mainline 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 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++/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. 2018-06-25 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/86112 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Replace dict comprehension. 2018-06-25 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/81092 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 2018-06-22 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 2018-06-22 Jonathan Wakely <jwakely@redhat.com> 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> * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 2018-06-19 Jonathan Wakely <jwakely@redhat.com> * include/std/utility: Remove unused <exception> header. 2018-06-19 Jonathan Wakely <jwakely@redhat.com> Backport from mainline 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. 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. 2018-06-15 Jonathan Wakely <jwakely@redhat.com> * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only define for C++17 and above. 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 typo. 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): Align the static variable correctly. 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<char16_t>, __make_unsigned<char32_t>): Define. (__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-21 François Dumont <fdumont@gcc.gnu.org> * 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. 2018-05-21 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/85818 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add dg-require-filesystem-ts. 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++/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. 2018-05-14 Jonathan Wakely <jwakely@redhat.com> 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-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 that the C++17 Filesystem implementation also needs -lstdc++fs. Document Dual ABI for ios_base::failure. * doc/html/*: Regenerate. 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> Backport from mainline 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++/84769 * include/std/variant (visit): Qualify std::get call. 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 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. 2018-05-02 Release Manager * GCC 8.1.0 released. 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.