fe6fb0d159
The hash value should be based on the identity (i.e. address) of the error_category member, not its object representation (i.e. underlying bytes). * include/std/system_error (error_code): Remove friend declaration for hash<error_code>. (hash<error_code>::operator()): Use public member functions to access value and category. (hash<error_condition>::operator()): Use address of category, not its object representation. * src/c++11/compatibility-c++0x.cc (hash<error_code>::operator()): Use public member functions to access value and category. * testsuite/19_diagnostics/error_condition/hash.cc: New test. From-SVN: r270872
2724 lines
120 KiB
Plaintext
2724 lines
120 KiB
Plaintext
2019-05-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/system_error (error_code): Remove friend declaration
|
||
for hash<error_code>.
|
||
(hash<error_code>::operator()): Use public member functions to access
|
||
value and category.
|
||
(hash<error_condition>::operator()): Use address of category, not
|
||
its object representation.
|
||
* src/c++11/compatibility-c++0x.cc (hash<error_code>::operator()):
|
||
Use public member functions to access value and category.
|
||
* testsuite/19_diagnostics/error_condition/hash.cc: New test.
|
||
|
||
2019-05-04 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/90277
|
||
* include/bits/hashtable.h (_Hashtable<>::rehash): Review comment.
|
||
* include/bits/hashtable_policy.h
|
||
(_Prime_rehash_policy::_M_bkt_for_elements): Use __builtin_ceill.
|
||
(_Power2_rehash_policy::_M_bkt_for_elements): Likewise.
|
||
(_Power2_rehash_policy::_M_next_bkt): Enforce returning a result not
|
||
smaller than input value rather than always greater. Preserve
|
||
_M_next_resize if called with 0 input. Use __builtin_floorl.
|
||
(_Power2_rehash_policy::_M_need_rehash): Rehash only if number of
|
||
elements + number of insertions is greater than _M_next_resize. Start
|
||
with 11 buckets if not told otherwise. Use __builtin_floorl.
|
||
(_Rehash_base<>::reserve): Use rehash policy _M_bkt_for_elements.
|
||
* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
|
||
Preserve _M_next_resize if called with 0 input. Use __builtin_floorl.
|
||
(_Prime_rehash_policy::_M_need_rehash): Start with 11 buckets if not
|
||
told otherwise. Use __builtin_floorl.
|
||
* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt test
|
||
to also validate _Power2_rehash_policy.
|
||
* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
|
||
Adapt.
|
||
|
||
2019-05-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/61761
|
||
* testsuite/26_numerics/complex/proj.cc: Don't assume <cmath> defines
|
||
std::copysign.
|
||
|
||
PR libstdc++/52119
|
||
* include/ext/numeric_traits.h (__glibcxx_min): Avoid integer
|
||
overflow warning with -Wpedantic -Wsystem-headers.
|
||
|
||
2019-05-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/90314
|
||
* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Use variadic macro.
|
||
* include/bits/move.h (swap): Remove extra parentheses.
|
||
|
||
* include/experimental/bits/lfts_config.h: Improve doc markup.
|
||
* include/experimental/optional: Improve docs.
|
||
(_Has_addressof_mem, _Has_addressof_free, _Has_addressof)
|
||
(__constexpr_addressof): Remove.
|
||
(optional::operator->()): Use std::__addressof().
|
||
* include/std/optional (optional::operator->()): Adjust whitespace.
|
||
* testsuite/experimental/optional/constexpr/observers/2.cc: Check
|
||
that operator-> is still constexpr with overloaded operator&. Change
|
||
to compile-only test.
|
||
* testsuite/experimental/optional/constexpr/observers/3.cc: Change to
|
||
compile-only test.
|
||
|
||
* include/bits/shared_ptr.h: Improve docs.
|
||
* include/bits/shared_ptr_atomic.h: Likewise.
|
||
* include/bits/unique_ptr.h: Likewise. Adjust whitespace.
|
||
|
||
* include/bits/basic_string.h: Fix iterator/index confusion in
|
||
Doxygen comments.
|
||
* include/bits/range_access.h: Fix Doxygen warnings.
|
||
* include/bits/refwrap.h: Do not document implementation details.
|
||
(ref, cref): Group docs with reference_wrapper.
|
||
* include/std/fstream: Fix Doxygen markup.
|
||
* libsupc++/initializer_list (begin, end): Group docs with
|
||
initializer_list.
|
||
|
||
* doc/doxygen/user.cfg.in: Set MARKDOWN_SUPPORT=YES.
|
||
|
||
* include/bits/unique_lock.h: Fix/improve doxygen markup.
|
||
* include/std/mutex: Likewise.
|
||
* include/std/shared_mutex: Likewise.
|
||
|
||
* include/bits/fs_dir.h: Fix/improve doxygen markup.
|
||
* include/bits/fs_fwd.h: Likewise.
|
||
* include/bits/fs_ops.h: Likewise.
|
||
* include/bits/fs_path.h: Likewise.
|
||
* include/std/filesystem: Likewise.
|
||
|
||
* include/experimental/bits/net.h: Fix/improve doxygen markup.
|
||
* include/experimental/buffer: Likewise.
|
||
* include/experimental/executor: Likewise.
|
||
* include/experimental/internet: Likewise.
|
||
* include/experimental/io_context: Likewise.
|
||
* include/experimental/net: Likewise.
|
||
* include/experimental/netfwd: Likewise.
|
||
* include/experimental/socket: Likewise.
|
||
* include/experimental/timer: Likewise.
|
||
|
||
* doc/doxygen/doxygroups.cc: Move description of experimental group
|
||
here.
|
||
* include/experimental/algorithm: Add to libfund-ts doc group.
|
||
* include/experimental/any: Likewise. Do not document implementation
|
||
details.
|
||
* include/experimental/array: Add to libfund-ts doc group.
|
||
* include/experimental/bits/lfts_config.h: Define libfund-ts doc group
|
||
for Library Fundamentals.
|
||
* include/experimental/chrono: Add to libfund-ts doc group.
|
||
* include/experimental/deque: Likewise.
|
||
* include/experimental/forward_list: Likewise.
|
||
* include/experimental/functional: Likewise.
|
||
* include/experimental/iterator: Likewise.
|
||
* include/experimental/list: Likewise.
|
||
* include/experimental/map: Likewise.
|
||
* include/experimental/memory: Likewise.
|
||
* include/experimental/memory_resource: Likewise. Improve docs.
|
||
details.
|
||
* include/experimental/numeric: Add to libfund-ts doc group.
|
||
* include/experimental/optional: Likewise.
|
||
* include/experimental/propagate_const: Likewise.
|
||
* include/experimental/random: Likewise.
|
||
* include/experimental/ratio: Likewise.
|
||
* include/experimental/regex: Likewise.
|
||
* include/experimental/set: Likewise.
|
||
* include/experimental/source_location: Likewise.
|
||
* include/experimental/string: Likewise.
|
||
* include/experimental/string_view: Likewise.
|
||
* include/experimental/system_error: Likewise.
|
||
* include/experimental/tuple: Likewise.
|
||
* include/experimental/type_traits: Likewise.
|
||
* include/experimental/unordered_map: Likewise.
|
||
* include/experimental/unordered_set: Likewise.
|
||
* include/experimental/utility: Likewise.
|
||
* include/experimental/vector: Likewise.
|
||
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
|
||
* testsuite/experimental/array/neg.cc: Adjust dg-error.
|
||
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
|
||
Likewise.
|
||
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
|
||
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
|
||
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
|
||
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
|
||
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
|
||
|
||
* include/experimental/bits/fs_dir.h: Fix Doxygen markup.
|
||
* include/experimental/bits/fs_fwd.h: Improve docs.
|
||
* include/experimental/bits/fs_ops.h: fix Doxygen markup.
|
||
* include/experimental/bits/fs_path.h: Likewise.
|
||
(path, filesystem_error, u8path): Improve docs.
|
||
* include/experimental/filesystem: Link to docs for TS.
|
||
|
||
* config/allocator/new_allocator_base.h (__allocator_base): Add
|
||
workaround for Doxygen bug #6945.
|
||
* include/std/memory: Improve docs. Define group for pointer safety.
|
||
* include/std/scoped_allocator: Improve docs. Use "undocumented"
|
||
conditional to suppress documentation for implementation details.
|
||
|
||
* include/bits/specfun.h: Improve docs.
|
||
* include/tr1/cmath: Likewise. Fix nesting of preprocessor conditions
|
||
and namespaces.
|
||
|
||
* doc/doxygen/doxygroups.cc (std::tr2, std::__gnu_cxx): Improve docs.
|
||
(std::experimental): Add docs.
|
||
* doc/doxygen/user.cfg.in (PREDEFINED): Expand macros for __cxx11
|
||
namespace to nothing when generating docs.
|
||
* include/bits/regex_constants.h (std::regex_constants): Improve docs.
|
||
* include/std/chrono (std::chrono): Likewise.
|
||
* include/std/functional (std::placeholders): Likewise.
|
||
* include/std/thread (std::this_thread): Likewise.
|
||
|
||
* include/parallel/settings.h: Fix Doxygen markup.
|
||
|
||
* include/ext/pb_ds/detail/bin_search_tree_/*_imps.hpp: Do not define
|
||
anything unless PB_DS_CLASS_C_DEC is defined.
|
||
* include/ext/pb_ds/detail/binary_heap_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/binomial_heap_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/binomial_heap_base_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/cc_hash_table_map_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/gp_hash_table_map_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/hash_fn/*_imp.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/*_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/list_update_map_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/ov_tree_map_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/pairing_heap_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/pat_trie_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/rb_tree_map_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/rc_binomial_heap_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/resize_policy*_imp.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/splay_tree_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/thin_heap_/*_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/trie_policy*_imp.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp:
|
||
Likewise.
|
||
|
||
* doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.8.14 and set
|
||
GROUP_NESTED_COMPOUNDS=YES and SORT_BY_SCOPE_NAME=NO. Add various
|
||
_GLIBCXX_xxx macros and __attribute__(X) to PREDEFINED macros that
|
||
Doxygen expands.
|
||
|
||
2019-05-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
|
||
* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
|
||
Likewise.
|
||
* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
|
||
* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
|
||
Likewise.
|
||
|
||
2019-05-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/61761
|
||
* include/std/complex (__complex_proj): Return parameter unchanged.
|
||
[_GLIBCXX_USE_C99_COMPLEX] (__complex_proj): Change overloads for
|
||
floating-point types to take std::complex arguments.
|
||
[_GLIBCXX_USE_C99_MATH_TR1] (__complex_proj): Add overloads for
|
||
floating-point types.
|
||
* testsuite/26_numerics/complex/proj.cc: New test.
|
||
|
||
2019-04-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
|
||
to _Lock_policyE[012].
|
||
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2019-04-30 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
|
||
macros accidentally left in.
|
||
* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove
|
||
unnecessary -lstdc++fs option. Fix test for mingw.
|
||
* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
|
||
Fix test for mingw.
|
||
|
||
2019-04-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2019-04-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_algo.h (generate_n): Adjust doxygen comment.
|
||
|
||
* include/bits/move.h (swap(T&, T&), swap(T (&)[N], T (&)[N])): Use
|
||
_GLIBCXX_NOEXCEPT_IF to simplify declarations.
|
||
|
||
PR libstdc++/71312
|
||
* src/c++11/shared_ptr.cc (get_mutex): Align pool mutexes to 64 bytes.
|
||
|
||
* include/bits/stl_bvector.h (vector<bool>::empty()): Add nodiscard
|
||
attribute.
|
||
|
||
* include/bits/stl_iterator_base_types.h (_Iter_base): Remove unused
|
||
class template and partial specialization.
|
||
|
||
PR libstdc++/87982
|
||
* include/bits/stl_algo.h (generate_n): Convert _Size parameter to
|
||
an integral type.
|
||
* include/bits/stl_algobase.h (__size_to_integer): New overloaded
|
||
functions to convert a value to an integral type.
|
||
(__fill_n_a, __fill_n_a): Assert that __n is already an integral type.
|
||
(fill_n): Convert _Size parameter to an integral type.
|
||
* testsuite/25_algorithms/fill_n/87982.cc: New test.
|
||
* testsuite/25_algorithms/fill_n/87982_neg.cc: New test.
|
||
* testsuite/25_algorithms/fill_n/dr426.cc: New test.
|
||
* testsuite/25_algorithms/generate_n/87982.cc: New test.
|
||
* testsuite/25_algorithms/generate_n/87982_neg.cc: New test.
|
||
* testsuite/25_algorithms/generate_n/dr426.cc: New test.
|
||
|
||
2019-04-28 Nina Dinka Ranns <dinka.ranns@gmail.com>
|
||
|
||
Adding noexcept-specification on tuple constructors (LWG 2899)
|
||
* libstdc++-v3/include/std/tuple:
|
||
(tuple()): Add noexcept-specification.
|
||
(tuple(const _Elements&...)): Likewise
|
||
(tuple(_UElements&&...)): Likewise
|
||
(tuple(const tuple<_UElements...>&)): Likewise
|
||
(tuple(tuple<_UElements...>&&)): Likewise
|
||
(tuple(const _T1&, const _T2&)): Likewise
|
||
(tuple(_U1&&, _U2&&)): Likewise
|
||
(tuple(const tuple<_U1, _U2>&): Likewise
|
||
(tuple(tuple<_U1, _U2>&&): Likewise
|
||
(tuple(const pair<_U1, _U2>&): Likewise
|
||
(tuple(pair<_U1, _U2>&&): Likewise
|
||
* libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc: New
|
||
|
||
2019-04-27 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/87106
|
||
* include/bits/stl_uninitialized.h (__relocate_object_a): Mark the
|
||
arguments with __restrict.
|
||
|
||
2019-04-26 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
|
||
|
||
2019-04-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/bits/fs_path.h
|
||
(path::_S_convert_loc<_InputIterator>): Create const std::string to
|
||
avoid redundant call to _S_convert_loc with non-const pointers.
|
||
|
||
* testsuite/20_util/variant/run.cc: Use a new Hashable type to test
|
||
hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1.
|
||
* testsuite/21_strings/basic_string/hash/hash.cc
|
||
[!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings.
|
||
* testsuite/21_strings/basic_string/hash/hash_char8_t.cc
|
||
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
|
||
wstring::_M_replace_dispatch with more specific patterns.
|
||
* include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
|
||
Create const std::string to avoid redundant call to _S_convert_loc
|
||
with non-const pointers.
|
||
* include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
|
||
avoid unnecessary basic_string::assign instantiations.
|
||
|
||
* include/std/memory (__uses_alloc_args): Add string-literal to
|
||
static_assert, to match the one in __uses_alloc.
|
||
[__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
|
||
* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
|
||
for recursive uses-allocator construction of nested pairs.
|
||
* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
|
||
comment.
|
||
|
||
2019-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
|
||
* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
|
||
|
||
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
|
||
* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
|
||
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2019-04-25 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/90239
|
||
* doc/xml/manual/status_cxx2020.xml: Amend P0591R4 status.
|
||
* include/std/scoped_allocator [__cplusplus > 201703L]
|
||
(scoped_allocator_adaptor::construct): Define in terms of
|
||
uses_allocator_construction_args, as per P0591R4.
|
||
* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: New test.
|
||
* testsuite/util/testsuite_allocator.h: Remove name of unused
|
||
parameter.
|
||
|
||
2019-04-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Document P0024R2 status.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* include/bits/fs_path.h (operator<, operator<=, operator>)
|
||
(operator>=, operator==, operator!=): Make hidden friends, as per
|
||
LWG 3065.
|
||
* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Fix
|
||
string type in test.
|
||
* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
|
||
|
||
* include/std/any (any::any(ValueType&&)): Use __and_v.
|
||
* include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)):
|
||
Likewise.
|
||
|
||
* include/std/tuple (apply): Use remove_reference_t instead of decay_t
|
||
as per P0777R1.
|
||
* include/std/type_traits (__result_of_memfun): Use remove_reference
|
||
instead of __remove_cvref_t and remove redundant is_same check.
|
||
(__inv_unwrap): Use __remove_cvref_t instead of decay_t.
|
||
|
||
* include/experimental/string_view (basic_string_view::pointer)
|
||
(basic_string_view::reference): Fix to refer to non-const value_type.
|
||
* include/bits/basic_string.h (basic_string): Use __sv_check and
|
||
__sv_limit instead of basic_string_view::_M_check and
|
||
basic_string_view::_M_limit.
|
||
* include/std/string_view (__sv_check, __sv_limit): New
|
||
helper functions to replace basic_string_view::_M_check and
|
||
basic_string_view::_M_limit.
|
||
(basic_string_view): Add static assertions to enforce ill-formed
|
||
requirement for traits_type::char_type from P1148R0, and to enforce
|
||
required properties of char-like types.
|
||
(basic_string_view::pointer, basic_string_view::reference): Fix to
|
||
refer to non-const value_type.
|
||
(basic_string_view::operator[], basic_string_view::at)
|
||
(basic_string_view::front, basic_string_view::back)
|
||
(basic_string_view::data): Use const_reference and const_pointer
|
||
typedefs for return types.
|
||
(basic_string_view::_M_check, basic_string_view::_M_limit): Remove.
|
||
(hash<wstring_view>): Fix argument_type typedef.
|
||
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
|
||
char/1.cc: Fix expected return type of basic_string_view::data().
|
||
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
|
||
wchar_t/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
|
||
char/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
|
||
wchar_t/1.cc: Likewise.
|
||
* testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
|
||
New test.
|
||
* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
|
||
Check reference and pointer typedefs.
|
||
* testsuite/experimental/string_view/requirements/typedefs.cc:
|
||
Likewise.
|
||
* testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
|
||
Fix expected return type of basic_string_view::data().
|
||
* testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
|
||
1.cc: Likewise.
|
||
* testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
|
||
Likewise.
|
||
* testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
|
||
1.cc: Likewise.
|
||
|
||
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.
|
||
|
||
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.
|
||
|
||
* testsuite/20_util/variant/run.cc: Catch exception by reference to
|
||
prevent -Wcatch-value warning.
|
||
|
||
* include/std/variant (__variant_construct): Use template parameter
|
||
type instead of equivalent decltype-specifier.
|
||
(_Move_ctor_base<false, Types...>::_Move_ctor_base(_Move_ctor_base&&)):
|
||
Replace forward with move.
|
||
(_Move_ctor_base<false, Types...>::_M_destructive_move)
|
||
(_Move_ctor_base<false, Types...>::_M_destructive_copy)
|
||
(_Move_ctor_base<true, Types...>::_M_destructive_move)
|
||
(_Move_ctor_base<true, Types...>::_M_destructive_copy): Only set the
|
||
index after construction succeeds.
|
||
(_Copy_assign_base<false, Types...>::operator=): Remove redundant
|
||
if-constexpr checks that are always true. Use __remove_cvref_t instead
|
||
of remove_reference so that is_nothrow_move_constructible check
|
||
doesn't use a const rvalue parameter. In the potentially-throwing case
|
||
construct a temporary and move assign it, as per LWG 2904.
|
||
(_Move_assign_base<false, Types...>::operator=): Remove redundant
|
||
if-constexpr checks that are always true. Use emplace as per LWG 2904.
|
||
(variant::operator=(T&&)): Only use emplace conditionally, otherwise
|
||
construct a temporary and move assign from it, as per LWG 2904.
|
||
* testsuite/20_util/variant/exception_safety.cc: Check that
|
||
assignment operators have strong exception safety guarantee.
|
||
|
||
2019-04-23 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
Document PSTL linker flags
|
||
|
||
* doc/xml/manual/using.xml: Add PSTL linker flags to table 3.1.
|
||
|
||
2019-04-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant (__detail::__variant::_Traits): Make
|
||
_S_trivial_copy_assign depend on _S_trivial_copy_ctor and make
|
||
_S_trivial_move_assign depend on _S_trivial_move_ctor, as per
|
||
P0602R4.
|
||
(__detail::__variant::_Copy_assign_alias): Only depend on
|
||
_S_trivial_copy_assign, which subsumes _S_trivial_copy_ctor now.
|
||
* testsuite/20_util/variant/compile.cc: Correct checks for trivial
|
||
move assignment operators.
|
||
|
||
PR libstdc++/90165
|
||
* include/std/variant (variant::__not_self): New helper for the
|
||
is_same_v<remove_cvref_t<T>, variant>==false constraints.
|
||
(variant::__to_type_impl): Remove.
|
||
(variant::__to_type): Add default argument to check pack size, instead
|
||
of using __to_type_impl.
|
||
(variant::__accepted_type): Add default argument using __not_self.
|
||
(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.
|
||
Extract __accepted_type into a named template parameter for reuse in
|
||
other constraints and in the exception specification.
|
||
(variant::variant(in_place_type_t<T>, Args&&...))
|
||
(variant::variant(in_place_type_t<T>, initializer_list<U>, Args&&...))
|
||
(variant::variant(in_place_index_t<T>, Args&&...))
|
||
(variant::variant(in_place_index_t<T>, initializer_list<U>, Args&&...))
|
||
(variant::operator=T&&)): Remove redundant && from trait arguments.
|
||
* testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor
|
||
isn't used for in_place_type or in_place_index arguments.
|
||
|
||
* include/std/type_traits (unwrap_reference_t): Define for C++2a.
|
||
(unwrap_ref_decay): Remove inheritance from unwrap_reference.
|
||
* testsuite/20_util/unwrap_reference/1.cc: Adjust test to use alias.
|
||
|
||
2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/89093
|
||
* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
|
||
general-regs-only target attribute for ARM.
|
||
|
||
2019-04-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87431
|
||
* include/bits/basic_string.h (_Never_valueless_alt): Make partial
|
||
specialization also depend on is_nothrow_move_constructible.
|
||
* include/std/variant (__detail::__variant::__never_valueless()):
|
||
Only true if the variant would have a move assignment operator.
|
||
(__detail::__variant::_Variant_storage<false, T...>::_M_valid()):
|
||
Check __never_valueless<T...>().
|
||
(variant::emplace): Only perform non-throwing move assignments
|
||
for never-valueless alternatives if the variant has a move assignment
|
||
operator.
|
||
* testsuite/20_util/variant/compile.cc: Check that never-valueless
|
||
types can be emplaced into non-assignable variants.
|
||
* testsuite/20_util/variant/run.cc: Check that never-valueless types
|
||
don't get copied when emplaced into non-assignable variants.
|
||
|
||
* include/std/variant (__detail::__variant::__ref_cast): Remove
|
||
unused function.
|
||
(__detail::__variant::_Uninitialized::_M_get)
|
||
(__detail::__variant::__get)
|
||
(__gen_vtable_impl::__element_by_index_or_cookie): Add noexcept.
|
||
|
||
2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* testsuite/17_intro/headers/c++1998/charset.cc: Skip for Darwin8
|
||
to Darwin10.
|
||
* testsuite/17_intro/headers/c++2011/charset.cc: Likewise.
|
||
* testsuite/17_intro/headers/c++2014/charset.cc: Likewise.
|
||
* testsuite/17_intro/headers/c++2017/charset.cc: Likewise.
|
||
* testsuite/17_intro/headers/c++2020/charset.cc: Likewise.
|
||
|
||
2019-04-20 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
Delegate PSTL configuration to pstl/pstl_config.h
|
||
|
||
* include/bits/c++config: Remove explicit PSTL configuration
|
||
macros and use definitions from <pstl/pstl_config.h>.
|
||
|
||
2019-04-20 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
Cleanup algorithm implementations
|
||
* include/pstl/glue_algorithm_impl.h (stable_sort): Forward
|
||
execution policy.
|
||
(mismatch): Forward execution policy.
|
||
(equal): Qualify call to std::equal().
|
||
(partial_sort): Forward execution policy.
|
||
(inplace_merge): Forward execution policy.
|
||
|
||
2019-04-19 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
Improve implementation of parallel equal()
|
||
* include/pstl/algorithm_impl.h
|
||
(__internal::__brick_equal): use "4 iterator" version of
|
||
std::equal().
|
||
(__internal::__brick_equal): use simd for random access
|
||
iterators on unsequenced execution policies.
|
||
(__internal::__pattern_equal): add "4 iterator" version
|
||
(__internal::__pattern_equal): dispatch to simd __brick_equal
|
||
for vector-only execution policies.
|
||
(__internal::__pattern_equal): dispatch to __parallel_or for
|
||
parallel execution policies.
|
||
* include/pstl/glue_algorithm_impl.h
|
||
(std::equal): dispatch to "4 iterator" version of
|
||
__internal::__pattern_equal().
|
||
|
||
2019-04-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/90105
|
||
* include/bits/forward_list.h (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.
|
||
|
||
* include/std/variant (__detail::__variant::_Traits::_S_copy_assign):
|
||
Do not depend on whether all alternative types are move constructible.
|
||
(__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals
|
||
from the operand when deciding whether to perform the assignment.
|
||
* testsuite/20_util/variant/compile.cc (DeletedMoves): Define type
|
||
with deleted move constructor and deleted move assignment operator.
|
||
(default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check
|
||
behaviour of variants with DeletedMoves as an alternative.
|
||
* testsuite/20_util/variant/run.cc (DeletedMoves): Define same type.
|
||
(move_ctor, move_assign): Check that moving a variant with a
|
||
DeletedMoves alternative falls back to copying instead of moving.
|
||
|
||
* testsuite/20_util/variant/compile.cc: Remove empty string literals
|
||
from static_assert declarations.
|
||
|
||
* testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to
|
||
actually match its name.
|
||
(MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly.
|
||
(test_swap()): Fix result for MoveCtorOnly and check
|
||
MoveCtorAndSwapOnly.
|
||
|
||
* 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.
|
||
|
||
2019-04-12 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/pstl/algorithm_impl.h: Uglify identfiers.
|
||
* include/pstl/numeric_impl.h: Uglify identfiers.
|
||
* include/pstl/parallel_backend_tbb.h: Uglify identfiers.
|
||
|
||
2019-04-11 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/bits/c++config:
|
||
Add definition for __PSTL_ASSERT.
|
||
Add definition for __PSTL_ASSERT_MSG.
|
||
* include/pstl/algorithm_impl.h: Replace use of assert().
|
||
* include/pstl/numeric_impl.h: Replace use of assert().
|
||
* include/pstl/parallel_backend_tbb.h:
|
||
Replace use of assert().
|
||
Replace use of __TBB_ASSERT().
|
||
* include/pstl/parallel_backend_utils.h: Replace use of assert().
|
||
|
||
2019-04-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/90046
|
||
* src/c++17/memory_resource.cc
|
||
(monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
|
||
needed to allow placing a _Chunk at the end of the buffer.
|
||
(monotonic_buffer_resource::_M_new_buffer): Remove static_assert.
|
||
|
||
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.
|
||
|
||
* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
|
||
typo.
|
||
|
||
PR libstdc++/89851
|
||
* testsuite/20_util/variant/89851.cc: New test.
|
||
|
||
2019-04-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/variant: Adjust whitespace. Add comments.
|
||
(_Multi_array): Leave primary template undefined.
|
||
(_Multi_array<_Tp>): Define partial specialization for base case of
|
||
recursion.
|
||
(__gen_vtable_impl, __gen_vtable): Remove redundant && from type
|
||
which is always a reference.
|
||
(__gen_vtable::_S_apply()): Remove function, inline body into
|
||
default member initializer.
|
||
* testsuite/20_util/variant/visit.cc: Test with noncopyable types.
|
||
|
||
* include/std/variant (__variant_idx_cookie): Add member type.
|
||
(__visitor_result_type): Remove.
|
||
(__do_visit): Use invoke_result instead of __visitor_result_type.
|
||
* testsuite/20_util/variant/visit.cc: New test.
|
||
|
||
PR libstdc++/90008
|
||
* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
|
||
unused capture.
|
||
* testsuite/20_util/variant/90008.cc: New test.
|
||
|
||
2019-04-09 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/pstl/algorithm_impl.h: Add namespace qualification.
|
||
* include/pstl/execution_defs.h: Add namespace qualification.
|
||
* include/pstl/execution_impl.h: Add namespace qualification.
|
||
* include/pstl/numeric_impl.h: Add namespace qualification.
|
||
* include/pstl/parallel_backend_tbb.h: Add namespace qualification.
|
||
* include/pstl/unseq_backend_simd.h: Add namespace qualification.
|
||
* include/pstl/parallel_backend_utils.h: Include <cassert>.
|
||
|
||
2019-04-08 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Fix visit<R> for variant.
|
||
* include/std/variant (__do_visit): Add a template parameter
|
||
for enforcing same return types for visit.
|
||
(__gen_vtable_impl): Likewise.
|
||
(_S_apply_single_alt): Adjust.
|
||
(__visit_invoke_impl): New. Handle casting to void.
|
||
(__do_visit_invoke): New. Enforces same return types.
|
||
(__do_visit_invoke_r): New. Converts return types.
|
||
(__visit_invoke): Adjust.
|
||
(__gen_vtable): Add a template parameter for enforcing
|
||
same return types for visit.
|
||
* testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
|
||
different return types.
|
||
* testsuite/20_util/variant/visit_neg.cc: New. Ensures that
|
||
visitors with different return types don't accidentally
|
||
compile with regular visitation.
|
||
|
||
2019-04-08 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* testsuite/27_io/filesystem/iterators/caching.cc: Add
|
||
dg-require-filesystem-ts.
|
||
|
||
2019-04-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2020.xml: Update status.
|
||
* include/std/variant (visit<R>): Define for C++2a (P0655R1).
|
||
* testsuite/20_util/variant/visit_r.cc: New test.
|
||
|
||
* include/bits/fs_dir.h (directory_iterator::operator*)
|
||
(directory_iterator::operator->): Add noexcept.
|
||
(operator==, operator!=): Replace namespace-scope equality operators
|
||
for directory iterators with hidden friends.
|
||
|
||
PR libstdc++/89986
|
||
* config/abi/pre/gnu.ver: Add missing exports.
|
||
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
|
||
increment member.
|
||
|
||
* config/abi/pre/gnu.ver: Export new symbols.
|
||
* include/bits/fs_dir.h (recursive_directory_iterator::options())
|
||
(recursive_directory_iterator::recursion_pending())
|
||
(recursive_directory_iterator::disable_recursion_pending()): Remove
|
||
inline definitions. Make noexcept.
|
||
(recursive_directory_iterator::depth())
|
||
(recursive_directory_iterator::operator*())
|
||
(recursive_directory_iterator::operator->()): Make noexcept.
|
||
(recursive_directory_iterator::_M_options)
|
||
(recursive_directory_iterator::_M_pending): Remove data members.
|
||
* src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
|
||
(recursive_directory_iterator::recursive_directory_iterator): Remove
|
||
ctor-initializer. Use new constructor for _Dir_stack.
|
||
(recursive_directory_iterator::options())
|
||
(recursive_directory_iterator::recursion_pending())
|
||
(recursive_directory_iterator::disable_recursion_pending()): Add
|
||
non-inline definitions.
|
||
(recursive_directory_iterator::depth()): Make noexcept.
|
||
(recursive_directory_iterator::increment(error_code&))
|
||
(recursive_directory_iterator::pop(error_code&)): Adjust to new
|
||
location of options and recursion_pending members.
|
||
* testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
|
||
* testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
|
||
user-declared move constructor and assignment operator, to make the
|
||
type move-only.
|
||
|
||
* src/c++17/fs_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.
|
||
|
||
* include/bits/fs_path.h (path::operator=(path&&)): Check for self
|
||
assignment.
|
||
* src/c++17/fs_path.cc (path::operator=(const path&)): Likewise.
|
||
* testsuite/27_io/filesystem/path/assign/copy.cc: Test self
|
||
assignment.
|
||
|
||
PR libstdc++/87431 (again)
|
||
* include/bits/basic_string.h (__variant::_Never_valueless_alt):
|
||
Define partial specialization for basic_string.
|
||
* include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for
|
||
shared_ptr and weak_ptr.
|
||
* include/bits/std_function.h (_Never_valueless_alt): Likewise for
|
||
function.
|
||
* include/bits/stl_vector.h (_Never_valueless_alt): Likewise for
|
||
vector.
|
||
* include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for
|
||
unique_ptr.
|
||
* include/debug/vector (_Never_valueless_alt): Likewise for debug
|
||
vector.
|
||
* include/std/any (_Never_valueless_alt): Define explicit
|
||
specialization for any.
|
||
* include/std/variant (_Never_valueless_alt): Define primary template.
|
||
(__never_valueless): Use _Never_valueless_alt instead of
|
||
is_trivially_copyable.
|
||
(variant::emplace<N>(Args&&...)): Add special case for non-throwing
|
||
initializations to avoid try-catch overhead. Add special case for
|
||
scalars produced by potentially-throwing conversions. Use
|
||
_Never_valueless_alt instead of is_trivially_copyable for the
|
||
remaining strong exception-safety cases.
|
||
(variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise.
|
||
* testsuite/20_util/variant/87431.cc: Run both test functions.
|
||
* testsuite/20_util/variant/exception_safety.cc: New test.
|
||
* testsuite/20_util/variant/run.cc: Use pmr::string instead of string,
|
||
so the variant becomes valueless.
|
||
|
||
2019-04-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/85184
|
||
* include/std/variant (_Copy_assign_base, _Move_assign_base, variant):
|
||
Remove assertions.
|
||
(variant::emplace<_Tp>): Return result of emplace<N> directly.
|
||
|
||
* include/std/string (__hash_string_base): New class template defining
|
||
operator() for hashing strings.
|
||
(hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
|
||
(hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
|
||
* testsuite/21_strings/basic_string/hash/hash.cc: New test.
|
||
* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.
|
||
|
||
2019-04-01 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Use single-visitation in variant assignment and swap and relops.
|
||
Also use indices instead of types when checking whether
|
||
variants hold the same thing.
|
||
* include/std/variant (__do_visit): Add a template parameter
|
||
for index visitation, invoke with indices if index visitation
|
||
is used.
|
||
(__variant_idx_cookie): New.
|
||
(__visit_with_index): Likewise.
|
||
(_Copy_assign_base::operator=): Do single-visitation with
|
||
an index visitor.
|
||
(_Move_assign_base::operator=): Likewise.
|
||
(_Extra_visit_slot_needed): Adjust.
|
||
(__visit_invoke): Call with indices if it's an index visitor.
|
||
(relops): Do single-visitation with an index visitor.
|
||
(swap): Likewise.
|
||
(__visitor_result_type): New.
|
||
|
||
2019-03-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
|
||
|
||
2019-03-28 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Don't revisit a variant we are already visiting.
|
||
* include/std/variant (__variant_construct_single): New.
|
||
(__variant_construct): Use it.
|
||
(_M_destructive_move): Likewise.
|
||
(_M_destructive_copy): Likewise.
|
||
(_Copy_assign_base::operator=): Adjust.
|
||
(_Move_assign_base::operator=): Likewise.
|
||
(swap): Likewise.
|
||
|
||
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.
|
||
|
||
2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR libstdc++/89825
|
||
Fix based on a suggestion by Antony Polukhin.
|
||
* include/std/variant (__never_valueless): New.
|
||
(_M_valid): Use it.
|
||
(_Extra_visit_slot_needed): New.
|
||
(_Multi_array): Use it.
|
||
(_S_apply_all_alts): Likewise.
|
||
|
||
2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR libstdc++/89824
|
||
Fix based on a suggestion by Antony Polukhin.
|
||
* include/std/variant (__gen_vtable): Don't reserve an
|
||
additional table slot, _Multi_array already does that.
|
||
|
||
2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
PR libstdc++/89816
|
||
Fix based on a suggestion by Antony Polukhin.
|
||
* include/std/variant (__variant_construct): Capture a pointer
|
||
to the storage and visit just one variant.
|
||
|
||
2019-03-22 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/backwards_compatibility.xml: Remove link to
|
||
Doxygen-generated pages with unstable URL.
|
||
* doc/xml/manual/concurrency_extensions.xml: Likewise.
|
||
* doc/xml/manual/extensions.xml: Likewise.
|
||
* doc/xml/manual/parallel_mode.xml: Likewise.
|
||
* doc/xml/manual/support.xml: Likewise.
|
||
|
||
* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
|
||
avoid -Wconversion warnings.
|
||
|
||
2019-03-21 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/Makefile.am (std_header): Add ${std_srcdir}/execution.
|
||
(pstl_srcdir, pstl_builddir, pstl_headers): New variables.
|
||
(allstamped): Add stamp-pstl.
|
||
(install-headers): Add ptsl_builddir.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/c++config: Add pstl configuration.
|
||
* include/pstl/LICENSE.txt: New file.
|
||
* include/pstl/algorithm_fwd.h: New file.
|
||
* include/pstl/algorithm_impl.h: New file.
|
||
* include/pstl/execution_defs.h: New file.
|
||
* include/pstl/execution_impl.h: New file.
|
||
* include/pstl/glue_algorithm_defs.h: New file.
|
||
* include/pstl/glue_algorithm_impl.h: New file.
|
||
* include/pstl/glue_execution_defs.h: New file.
|
||
* include/pstl/glue_memory_defs.h: New file.
|
||
* include/pstl/glue_memory_impl.h: New file.
|
||
* include/pstl/glue_numeric_defs.h: New file.
|
||
* include/pstl/glue_numeric_impl.h: New file.
|
||
* include/pstl/memory_impl.h: New file.
|
||
* include/pstl/numeric_fwd.h: New file.
|
||
* include/pstl/numeric_impl.h: New file.
|
||
* include/pstl/parallel_backend.h: New file.
|
||
* include/pstl/parallel_backend_tbb.h: New file.
|
||
* include/pstl/parallel_backend_utils.h: New file.
|
||
* include/pstl/parallel_impl.h: New file.
|
||
* include/pstl/pstl_config.h: New file.
|
||
* include/pstl/unseq_backend_simd.h: New file.
|
||
* include/pstl/utils.h: New file.
|
||
* include/std/algorithm: Include parallel algorithm implementations.
|
||
* include/std/execution: New file.
|
||
* include/std/memory: Include parallel algorithm implementations.
|
||
* include/std/numeric: Include parallel algorithm implementations.
|
||
* include/std/version: Add parallel algorithms feature test macro.
|
||
* testsuite/util/pstl/pstl_test_config.h: New file.
|
||
* testsuite/util/pstl/test_utils.h: New file.
|
||
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
|
||
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
|
||
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
|
||
* testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
|
||
* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
|
||
* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
|
||
* testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
|
||
* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
|
||
* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
|
||
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
|
||
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
|
||
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
|
||
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
|
||
* testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
|
||
* testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
|
||
* testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
|
||
* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
|
||
* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
|
||
|
||
2019-03-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]
|
||
(assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre)
|
||
(assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1)
|
||
(comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f)
|
||
(comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l)
|
||
(cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j)
|
||
(cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf)
|
||
(cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1)
|
||
(ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3)
|
||
(ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef)
|
||
(hermitel, laguerre, laguerref, laguerrel, legendre, legendref)
|
||
(legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel)
|
||
(sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel)
|
||
(sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations
|
||
when the special functions IS is enabled, not for C++17.
|
||
* testsuite/26_numerics/headers/cmath/functions_global_c++17.cc:
|
||
Replace with ...
|
||
* testsuite/26_numerics/headers/cmath/functions_global.cc: New test,
|
||
without checks for special functions in C++17.
|
||
* testsuite/26_numerics/headers/cmath/special_functions_global.cc:
|
||
New test.
|
||
|
||
PR libstdc++/88066
|
||
* include/backward/hash_map: Use <> for includes not "".
|
||
* include/backward/hash_set: Likewise.
|
||
* include/backward/strstream: Likewise.
|
||
* include/tr1/bessel_function.tcc: Likewise.
|
||
* include/tr1/exp_integral.tcc: Likewise.
|
||
* include/tr1/legendre_function.tcc: Likewise.
|
||
* include/tr1/modified_bessel_func.tcc: Likewise.
|
||
* include/tr1/riemann_zeta.tcc: Likewise.
|
||
|
||
2019-03-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/allocator.xml: Link to table documenting evolution
|
||
of extension allocators.
|
||
* doc/xml/manual/evolution.xml: Use angle brackets for header names.
|
||
Document new headers in 7.2, 8.1 and 9.1 releases.
|
||
* doc/xml/manual/using.xml: Adjust link target for new_allocator.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2019-03-12 John David Anglin <dave.anglin@bell.net>
|
||
|
||
PR libstdc++/89461
|
||
* testsuite/lib/libstdc++.exp: Locate libatomic.
|
||
* testsuite/lib/dg-options.exp (add_options_for_libatomic): New.
|
||
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add
|
||
libatomic options.
|
||
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
|
||
* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
|
||
* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
|
||
* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
|
||
|
||
2019-03-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89460
|
||
* configure.ac: Check for sockatmark.
|
||
* crossconfig.m4: Check for sockatmark.
|
||
* config.h.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* include/experimental/internet (address_v4::_S_hton): Rename
|
||
overloaded functions to _S_hton_16 and _S_ntoh_16.
|
||
(address_v4::_S_ntoh): Rename to _S_ntoh_16 and _S_ntoh_32.
|
||
(basic_endpoint): Adjust calls to _S_hton and _S_ntoh.
|
||
* include/experimental/socket (basic_socket::at_mark): Check
|
||
_GLIBCXX_HAVE_SOCKATMARK.
|
||
|
||
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Use
|
||
const variables instead of macros.
|
||
|
||
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.
|
||
|
||
2019-03-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/89641
|
||
* include/std/atomic (atomic<T>::store, atomic<T>::load,
|
||
atomic<T>::exchange, atomic<T>::compare_exchange_weak,
|
||
atomic<T>::compare_exchange_strong): Cast __m or __s and __f to int.
|
||
* include/bits/atomic_base.h (__atomic_base<T>::operator++,
|
||
__atomic_base<T>::operator--, __atomic_base<T>::operator+=,
|
||
__atomic_base<T>::operator-=, __atomic_base<T>::operator&=,
|
||
__atomic_base<T>::operator|=, __atomic_base<T>::operator^=,
|
||
__atomic_base<T*>::operator++, __atomic_base<T*>::operator--,
|
||
__atomic_base<T*>::operator+=, __atomic_base<T*>::operator-=): Cast
|
||
memory_order_seq_cst to int.
|
||
|
||
2019-03-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/using.xml: Use link element instead of xref.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* include/bits/fs_path.h (path::format): Add fixed underlying type.
|
||
|
||
2019-03-08 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/89477
|
||
* include/debug/map.h (map): Use _RequireNotAllocator to constrain
|
||
parameters in deduction guides.
|
||
* include/debug/multimap.h (multimap): Likewise.
|
||
* include/debug/set.h (multimap): Likewise.
|
||
* include/debug/multiset.h (multimap): Likewise.
|
||
* include/debug/unordered_map (unordered_map): Likewise.
|
||
(unordered_multimap): Likewise.
|
||
* include/debug/unordered_set (unordered_set): Likewise.
|
||
(unordered_multiset): Likewise.
|
||
|
||
PR libstdc++/89608
|
||
* include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
|
||
Invalidate all iterators in case of rehash.
|
||
(unordered_multimap<>::_M_check_rehashed): Likewise.
|
||
* include/debug/unordered_set
|
||
(unordered_set<>::_M_check_rehashed): Likewise.
|
||
(unordered_multiset<>::_M_check_rehashed): Likewise.
|
||
* testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.
|
||
|
||
2019-03-07 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/abi/post/riscv64-linux-gnu: New directory.
|
||
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.
|
||
|
||
2019-03-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/20_util/function_objects/bind_front/1.cc: Change from
|
||
compile test to run. Fix typo.
|
||
|
||
* doc/xml/manual/status_cxx2020.xml: Update C++20 status.
|
||
* doc/html/*: Regenerate.
|
||
|
||
P0356R5 Simplified partial function application
|
||
* include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
|
||
helpers for bind_front.
|
||
(bind_front, __cpp_lib_bind_front): Define.
|
||
* testsuite/20_util/function_objects/bind_front/1.cc: New test.
|
||
|
||
2019-03-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
|
||
* include/std/version (__cpp_lib_bounded_array_traits): Likewise.
|
||
* testsuite/20_util/is_bounded_array/value.cc: Check for macro.
|
||
* testsuite/20_util/is_unbounded_array/value.cc: Likewise.
|
||
|
||
2019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net>
|
||
|
||
PR libstdc++/86655 - std::assoc_legendre should not constrain
|
||
the value of m (or x).
|
||
* include/tr1/legendre_function.tcc (__assoc_legendre_p,
|
||
__sph_legendre): If degree > order Don't throw, return 0.
|
||
(__legendre_p, __assoc_legendre_p): Don't constrain x either.
|
||
* testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
|
||
* testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
|
||
* testsuite/tr1/5_numerical_facilities/special_functions/
|
||
02_assoc_legendre/pr86655.cc: New test.
|
||
* testsuite/tr1/5_numerical_facilities/special_functions/
|
||
22_sph_legendre/pr86655.cc: New test.
|
||
|
||
2019-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
|
||
Rewrite variant.
|
||
Also PR libstdc++/85517
|
||
* include/std/variant (__do_visit): New.
|
||
(__variant_cast): Likewise.
|
||
(__variant_cookie): Likewise.
|
||
(__erased_*): Remove.
|
||
(_Variant_storage::_S_vtable): Likewise.
|
||
(_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
|
||
(_Variant_storage::__M_reset): Adjust.
|
||
(__variant_construct): New.
|
||
(_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
|
||
__variant_construct.
|
||
(_Move_ctor_base(_Move_ctor_base&&)): Likewise.
|
||
(_Move_ctor_base::__M_destructive_copy): New.
|
||
(_Move_ctor_base::__M_destructive_move): Adjust to use
|
||
__variant_construct.
|
||
(_Copy_assign_base::operator=): Adjust to use __do_visit.
|
||
(_Copy_assign_alias): Adjust to check both copy assignment
|
||
and copy construction for triviality.
|
||
(_Move_assign_base::operator=): Adjust to use __do_visit.
|
||
(_Multi_array): Add support for visitors that accept and return
|
||
a __variant_cookie.
|
||
(__gen_vtable_impl::_S_apply_all_alts): Likewise.
|
||
(__gen_vtable_impl::_S_apply_single_alt): Likewise.
|
||
(__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
|
||
a __variant_cookie temporary for a variant that is valueless and..
|
||
(__gen_vtable_impl::__visit_invoke): ..adjust here.
|
||
(__gen_vtable::_Array_type): Conditionally make space for
|
||
the __variant_cookie visitor case.
|
||
(__variant_construct_by_index): New.
|
||
(get_if): Adjust to use std::addressof.
|
||
(relops): Adjust to use __do_visit.
|
||
(variant): Add __variant_cast and __variant_construct_by_index
|
||
as friends.
|
||
(variant::emplace): Use _M_reset() and __variant_construct_by_index
|
||
instead of self-destruction.
|
||
(variant::swap): Adjust to use __do_visit.
|
||
(visit): Reimplement in terms of __do_visit.
|
||
(__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
|
||
* testsuite/20_util/variant/compile.cc: Adjust.
|
||
* testsuite/20_util/variant/run.cc: Likewise.
|
||
|
||
2019-03-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
|
||
constant.
|
||
* testsuite/experimental/feat-char8_t.cc: Likewise.
|
||
|
||
* include/std/type_traits [C++20] (is_bounded_array)
|
||
(is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
|
||
Define.
|
||
* testsuite/20_util/is_bounded_array/requirements/
|
||
explicit_instantiation.cc: New test.
|
||
* testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
|
||
test.
|
||
* testsuite/20_util/is_bounded_array/value.cc: New test.
|
||
* testsuite/20_util/is_unbounded_array/requirements/
|
||
explicit_instantiation.cc: New test.
|
||
* testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
|
||
* test.
|
||
* testsuite/20_util/is_unbounded_array/value.cc: New test.
|
||
|
||
* include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
|
||
Add constexpr.
|
||
* testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.
|
||
|
||
2019-03-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/c_compatibility/math.h [C++20] (lerp): Add using
|
||
declaration.
|
||
* include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
|
||
(__lerp): Define function template to implement lerp.
|
||
(lerp(float, float, float), lerp(double, double, double))
|
||
(lerp(long double, long double, long double)): Define for C++20.
|
||
* include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
|
||
(midpoint(T, T), midpoint(T*, T*)): Define.
|
||
* include/std::version [C++20] (__cpp_lib_interpolate): Define.
|
||
* testsuite/26_numerics/lerp.cc: New test.
|
||
* testsuite/26_numerics/midpoint/floating.cc: New test.
|
||
* testsuite/26_numerics/midpoint/integral.cc: New test.
|
||
* testsuite/26_numerics/midpoint/pointer.cc: New test.
|
||
|
||
2019-03-04 Edward Smith-Rowland <3dw4rd@verizon.net>
|
||
|
||
PR libstdc++/88996 Implement P0439R0
|
||
Make std::memory_order a scoped enumeration.
|
||
* include/bits/atomic_base.h: For C++20 make memory_order a scoped enum,
|
||
add variables for the old enumerators. Adjust calls.
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test.
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test.
|
||
|
||
2019-03-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do
|
||
directive.
|
||
|
||
* include/std/memory_resource (polymorphic_allocator): Add default
|
||
template argument for C++20.
|
||
(polymorphic_allocator::allocate_bytes)
|
||
(polymorphic_allocator::deallocate_bytes)
|
||
(polymorphic_allocator::allocate_object)
|
||
(polymorphic_allocator::deallocate_object)
|
||
(polymorphic_allocator::new_object)
|
||
(polymorphic_allocator::delete_object): New member functions for
|
||
C++20.
|
||
* testsuite/20_util/polymorphic_allocator/allocate_object.cc: New
|
||
test.
|
||
|
||
2019-03-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89562
|
||
* src/filesystem/ops-common.h (do_copy_file): Open files in binary
|
||
mode for mingw.
|
||
|
||
2019-03-01 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
|
||
[!__cpp_sized_deallocation]: Do not pass size to operator delete.
|
||
|
||
* include/std/memory (uses_allocator_construction_args): New set of
|
||
overloaded functions.
|
||
(make_obj_using_allocator, uninitialized_construct_using_allocator):
|
||
New functions.
|
||
* include/std/memory_resource (polymorphic_allocator::construct)
|
||
[__cplusplus > 201703l]: Replace all overloads with a single function
|
||
using uses_allocator_construction_args.
|
||
* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
|
||
test.
|
||
* testsuite/20_util/uses_allocator/make_obj.cc: New test.
|
||
|
||
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-02-26 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89477
|
||
* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
|
||
container deduction guides.
|
||
* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
|
||
* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
|
||
parameters in deduction guides.
|
||
* include/bits/stl_multimap.h (multimap): Likewise.
|
||
* include/bits/stl_multiset.h (multiset): Likewise.
|
||
* include/bits/stl_queue.h (queue, priority_queue): Likewise.
|
||
* include/bits/stl_set.h (set): Likewise.
|
||
* include/bits/stl_stack.h (stack): Likewise.
|
||
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
|
||
use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
|
||
constrain parameters in deduction guides.
|
||
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
|
||
Likewise.
|
||
* testsuite/23_containers/map/cons/deduction.cc: Test additional
|
||
deduction cases.
|
||
* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
|
||
* testsuite/23_containers/set/cons/deduction.cc: Likewise.
|
||
* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
|
||
* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
|
||
|
||
PR libstdc++/89416
|
||
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
|
||
to class template and partial specialization using void_t.
|
||
(__is_copy_insertable, __is_move_insertable): Adjust base class.
|
||
|
||
2019-02-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89416
|
||
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
|
||
copy and move members public.
|
||
|
||
2019-02-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (__underlying_type_impl): New helper to
|
||
make underlying_type SFINAE-friendly.
|
||
(underlying_type): Derive from __underlying_type_impl.
|
||
* testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
|
||
test.
|
||
|
||
PR libstdc++/89446
|
||
* include/bits/char_traits.h (__constant_char_array): Check index is
|
||
in range before dereferencing.
|
||
(char_traits<char>::compare, char_traits<char>::find)
|
||
(char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
|
||
immediately if n is zero.
|
||
(char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
|
||
Remove workarounds for PR 67026.
|
||
* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
|
||
New test.
|
||
* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
|
||
New test.
|
||
|
||
2019-02-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
|
||
* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
|
||
|
||
2019-02-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/89402
|
||
* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
|
||
type to std::size_t and argument to type to long double.
|
||
|
||
2019-02-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
|
||
* config/abi/post/sparc64-linux-gnu: New directory.
|
||
* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
|
||
* config/abi/post/sparc64-linux-gnu/32: New directory.
|
||
* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
|
||
|
||
2019-02-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New
|
||
test.
|
||
|
||
2019-02-22 Tom Honermann <tom@honermann.net>
|
||
|
||
* python/libstdcxx/v6/printers.py (register_type_printers): Add type
|
||
printers for u8string and u8string_view.
|
||
|
||
2019-02-22 Tom Honermann <tom@honermann.net>
|
||
|
||
* testsuite/18_support/byte/ops.cc: Validate
|
||
std::to_integer<char8_t>, std::to_integer<char16_t>, and
|
||
std::to_integer<char32_t>.
|
||
* testsuite/18_support/numeric_limits/dr559.cc: Validate
|
||
std::numeric_limits<char8_t>.
|
||
* testsuite/18_support/numeric_limits/lowest.cc: Validate
|
||
std::numeric_limits<char8_t>::lowest().
|
||
* testsuite/18_support/numeric_limits/max_digits10.cc: Validate
|
||
std::numeric_limits<char8_t>::max_digits10.
|
||
* testsuite/18_support/type_info/fundamental.cc: Validate
|
||
typeinfo for char8_t.
|
||
* testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating
|
||
std::from_chars with char8_t.
|
||
* testsuite/20_util/hash/requirements/explicit_instantiation.cc:
|
||
Validate explicit instantiation of std::hash<char8_t>.
|
||
* testsuite/20_util/is_integral/value.cc: Validate
|
||
std::is_integral<char8_t>.
|
||
* testsuite/20_util/make_signed/requirements/typedefs-4.cc:
|
||
Validate std::make_signed<char8_t>.
|
||
* testsuite/21_strings/basic_string/cons/char/deduction.cc:
|
||
Validate u8string construction from char8_t sources.
|
||
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate
|
||
std::pmr::u8string.
|
||
* testsuite/21_strings/basic_string_view/operations/compare/
|
||
char/70483.cc: Validate substr operations on u8string_view.
|
||
* testsuite/21_strings/basic_string_view/typedefs.cc: Validate that
|
||
the u8string_view typedef is defined.
|
||
* testsuite/21_strings/char_traits/requirements/
|
||
constexpr_functions.cc: Validate char_traits<char8_t> constexpr
|
||
member functions.
|
||
* testsuite/21_strings/char_traits/requirements/
|
||
constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17
|
||
constexpr member functions.
|
||
* testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate
|
||
that the u8string typedef is defined.
|
||
* testsuite/22_locale/locale/cons/unicode.cc: Validate the presence
|
||
of the std::codecvt<char16_t, char8_t, std::mbstate_t> and
|
||
std::codecvt<char32_t, char8_t, std::mbstate_t> facets.
|
||
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line
|
||
numbers.
|
||
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
|
||
Likewise.
|
||
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
|
||
Validate std::atomic<char8_t>::is_always_lock_free
|
||
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
|
||
Update line numbers.
|
||
* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
|
||
Likewise.
|
||
* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
|
||
Likewise.
|
||
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
|
||
Validate std::experimental::pmr::u8string.
|
||
* testsuite/experimental/string_view/typedefs.cc: Validate that the
|
||
u8string_view typedef is defined.
|
||
* testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and
|
||
char32_t to the typelists.
|
||
|
||
2019-02-22 Tom Honermann <tom@honermann.net>
|
||
|
||
* include/ext/typelist.h: Constrain a partial specialization of
|
||
typelist::detail::append_ to only match chain<T1,T2>.
|
||
|
||
2019-02-21 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89416
|
||
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
|
||
class template with class. Replace move and copy member types with
|
||
member alias templates, so they are only instantiated when needed.
|
||
(__is_copy_insertable, __is_move_insertable): Adjust base class.
|
||
* testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
|
||
test for C++11/14/17 as well.
|
||
* testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
|
||
test.
|
||
|
||
2019-02-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/89402
|
||
* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
|
||
_GLIBCXX_PURE to the alias declaration.
|
||
|
||
2019-02-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/21_strings/basic_string/literals/types.cc
|
||
[_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal.
|
||
* testsuite/21_strings/basic_string/literals/values.cc
|
||
[_GLIBCXX_USE_CHAR8_T]: Likewise.
|
||
* testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals
|
||
potentially having different type.
|
||
* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal
|
||
to char.
|
||
* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise.
|
||
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
|
||
* testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from
|
||
string literals only using basic character set.
|
||
* testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other
|
||
u8 literals to char.
|
||
* testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]:
|
||
Test ATOMIC_CHAR8_T_LOCK_FREE.
|
||
Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test.
|
||
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
|
||
[_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t.
|
||
* testsuite/experimental/string_view/literals/types.cc
|
||
[_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8
|
||
literal.
|
||
* testsuite/experimental/string_view/literals/values.cc
|
||
[_GLIBCXX_USE_CHAR8_T]: Likewise.
|
||
|
||
2019-02-19 Tom Honermann <tom@honermann.net>
|
||
|
||
* testsuite/18_support/numeric_limits/char8_t.cc: New test cloned
|
||
from char16_32_t.cc; validates numeric_limits<char8_t>.
|
||
* testsuite/21_strings/basic_string/literals/types-char8_t.cc: New
|
||
test cloned from types.cc; validates operator""s for char8_t
|
||
returns u8string.
|
||
* testsuite/21_strings/basic_string/literals/values-char8_t.cc: New
|
||
test cloned from values.cc; validates construction and comparison
|
||
of u8string values.
|
||
* testsuite/21_strings/basic_string/requirements/
|
||
/explicit_instantiation/char8_t/1.cc: New test cloned from
|
||
char16_t/1.cc; validates explicit instantiation of
|
||
basic_string<char8_t>.
|
||
* testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
|
||
New test cloned from types.cc; validates operator""sv for char8_t
|
||
returns u8string_view.
|
||
* testsuite/21_strings/basic_string_view/literals/
|
||
values-char8_t.cc: New test cloned from values.cc; validates
|
||
construction and comparison of u8string_view values.
|
||
* testsuite/21_strings/basic_string_view/requirements/
|
||
explicit_instantiation/char8_t/1.cc: New test cloned from
|
||
char16_t/1.cc; validates explicit instantiation of
|
||
basic_string_view<char8_t>.
|
||
* testsuite/21_strings/char_traits/requirements/char8_t/65049.cc:
|
||
New test cloned from char16_t/65049.cc; validates that
|
||
char_traits<char8_t> is not vulnerable to the concerns in PR65049.
|
||
* testsuite/21_strings/char_traits/requirements/char8_t/
|
||
typedefs.cc: New test cloned from char16_t/typedefs.cc; validates
|
||
that char_traits<char8_t> member typedefs are present and correct.
|
||
* testsuite/21_strings/char_traits/requirements/
|
||
explicit_instantiation/char8_t/1.cc: New test cloned from
|
||
char16_t/1.cc; validates explicit instantiation of
|
||
char_traits<char8_t>.
|
||
* testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned
|
||
from char16_t.cc: validates
|
||
codecvt<char16_t, char8_t, mbstate_t>.
|
||
* testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned
|
||
from char32_t.cc: validates
|
||
codecvt<char32_t, char8_t, mbstate_t>.
|
||
* testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from
|
||
utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and
|
||
codecvt<char32_t, char8_t, std::mbstate_t>.
|
||
* testsuite/27_io/filesystem/path/native/string-char8_t.cc: New
|
||
test cloned from string.cc; validates filesystem::path construction
|
||
from char8_t input.
|
||
* testsuite/experimental/feat-char8_t.cc: New test; validates that
|
||
the __cpp_lib_char8_t feature test macro is defined with the
|
||
correct value.
|
||
* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
|
||
New test cloned from string.cc; validates filesystem::path
|
||
construction from char8_t input.
|
||
* testsuite/experimental/string_view/literals/types-char8_t.cc: New
|
||
test cloned from types.cc; validates operator""sv for char8_t
|
||
returns u8string_view.
|
||
* testsuite/experimental/string_view/literals/values-char8_t.cc:
|
||
New test cloned from values.cc; validates construction and
|
||
comparison of u8string_view values.
|
||
* testsuite/experimental/string_view/requirements/
|
||
explicit_instantiation/char8_t/1.cc: New test cloned from
|
||
char16_t/1.cc; validates explicit instantiation of
|
||
basic_string_view<char8_t>.
|
||
* testsuite/ext/char8_t/atomic-1.cc: New test; validates that
|
||
ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not
|
||
enabled.
|
||
|
||
2019-02-19 Tom Honermann <tom@honermann.net>
|
||
|
||
P0482R5 char8_t: Standard library support
|
||
* config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
|
||
typeinfo symbols for char8_t.
|
||
* config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
|
||
(GLIBCXX_3.4.26): Add symbols for specializations of
|
||
numeric_limits and codecvt that involve char8_t.
|
||
(CXXABI_1.3.12): Add typeinfo symbols for char8_t.
|
||
* include/bits/atomic_base.h: Add atomic_char8_t.
|
||
* include/bits/basic_string.h: Add std::hash<u8string> and
|
||
operator""s(const char8_t*, size_t).
|
||
* include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
|
||
__cpp_lib_char8_t.
|
||
* include/bits/char_traits.h: Add char_traits<char8_t>.
|
||
* include/bits/codecvt.h: Add
|
||
codecvt<char16_t, char8_t, mbstate_t>,
|
||
codecvt<char32_t, char8_t, mbstate_t>,
|
||
codecvt_byname<char16_t, char8_t, mbstate_t>, and
|
||
codecvt_byname<char32_t, char8_t, mbstate_t>.
|
||
* include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
|
||
recognize char8_t as an integral type.
|
||
* include/bits/fs_path.h: (path::__is_encoded_char): Recognize
|
||
char8_t.
|
||
(path::u8string): Return std::u8string when char8_t support is
|
||
enabled.
|
||
(path::generic_u8string): Likewise.
|
||
(path::_S_convert): Handle conversion from char8_t input.
|
||
(path::_S_str_convert): Likewise.
|
||
* include/bits/functional_hash.h: Add hash<char8_t>.
|
||
* include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
|
||
char8_t.
|
||
* include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
|
||
for new char8_t specializations.
|
||
* include/bits/localefwd.h: Add missing declarations of
|
||
codecvt<char16_t, char, mbstate_t> and
|
||
codecvt<char32_t, char, mbstate_t>. Add char8_t declarations
|
||
codecvt<char16_t, char8_t, mbstate_t> and
|
||
codecvt<char32_t, char8_t, mbstate_t>.
|
||
* include/bits/postypes.h: Add u8streampos
|
||
* include/bits/stringfwd.h: Add declarations of
|
||
char_traits<char8_t> and u8string.
|
||
* include/c_global/cstddef: Add __byte_operand<char8_t>.
|
||
* include/experimental/bits/fs_path.h (path::__is_encoded_char):
|
||
Recognize char8_t.
|
||
(path::u8string): Return std::u8string when char8_t support is
|
||
enabled.
|
||
(path::generic_u8string): Likewise.
|
||
(path::_S_convert): Handle conversion from char8_t input.
|
||
(path::_S_str_convert): Likewise.
|
||
* include/experimental/string: Add u8string.
|
||
* include/experimental/string_view: Add u8string_view,
|
||
hash<experimental::u8string_view>, and
|
||
operator""sv(const char8_t*, size_t).
|
||
* include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
|
||
* include/std/charconv (__is_int_to_chars_type): Recognize char8_t
|
||
as a character type.
|
||
* include/std/limits: Add numeric_limits<char8_t>.
|
||
* include/std/string_view: Add u8string_view,
|
||
hash<experimental::u8string_view>, and
|
||
operator""sv(const char8_t*, size_t).
|
||
* include/std/type_traits: Add __is_integral_helper<char8_t>,
|
||
__make_unsigned<char8_t>, and __make_signed<char8_t>.
|
||
* libsupc++/atomic_lockfree_defines.h: Define
|
||
ATOMIC_CHAR8_T_LOCK_FREE.
|
||
* src/c++11/Makefile.am: Compile with -fchar8_t when compiling
|
||
codecvt.cc and limits.cc so that char8_t specializations of
|
||
numeric_limits and codecvt and emitted.
|
||
* src/c++11/Makefile.in: Likewise.
|
||
* src/c++11/codecvt.cc: Define members of
|
||
codecvt<char16_t, char8_t, mbstate_t>,
|
||
codecvt<char32_t, char8_t, mbstate_t>,
|
||
codecvt_byname<char16_t, char8_t, mbstate_t>, and
|
||
codecvt_byname<char32_t, char8_t, mbstate_t>.
|
||
* src/c++11/limits.cc: Define members of
|
||
numeric_limits<char8_t>.
|
||
* src/c++98/Makefile.am: Compile with -fchar8_t when compiling
|
||
locale_init.cc and localename.cc.
|
||
* src/c++98/Makefile.in: Likewise.
|
||
* src/c++98/locale_init.cc: Add initialization for the
|
||
codecvt<char16_t, char8_t, mbstate_t> and
|
||
codecvt<char32_t, char8_t, mbstate_t> facets.
|
||
* src/c++98/localename.cc: Likewise.
|
||
* testsuite/util/testsuite_abi.cc: Validate ABI bump.
|
||
|
||
2019-02-18 Wilco Dijkstra <wdijkstr@arm.com>
|
||
|
||
* 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
|
||
* 27_io/filesystem/operations/resize_file.cc: Likewise.
|
||
* 27_io/filesystem/path/generation/normal2.cc: Likewise.
|
||
|
||
2019-02-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* 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.
|
||
|
||
* configure.ac: Check for C11 timespec_get function.
|
||
* crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
|
||
(openbsd): Likewise
|
||
* config.h.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* include/c_global/ctime (timespec, timespec_get): Add to namespace
|
||
std for C++17 and up.
|
||
|
||
* 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.
|
||
|
||
* doc/xml/manual/intro.xml: Document LWG 2566 status.
|
||
* include/bits/stl_queue.h (queue, priority_queue): Add static
|
||
assertions to enforce LWG 2566 requirement on value_type.
|
||
* include/bits/stl_stack.h (stack): Likewise.
|
||
|
||
PR middle-end/89303
|
||
* testsuite/20_util/enable_shared_from_this/89303.cc: New test.
|
||
|
||
* doc/xml/manual/intro.xml: Document LWG 2735 status.
|
||
* include/bits/std_abs.h: Add comment about LWG 2735.
|
||
* testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test.
|
||
|
||
2019-02-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89345
|
||
* include/std/version [__cpp_impl_destroying_delete]
|
||
(__cpp_lib_destroying_delete): Only define for C++2a and later.
|
||
* libsupc++/new [__cpp_impl_destroying_delete]
|
||
(__cpp_lib_destroying_delete): Likewise.
|
||
(destroying_delete_t, destroying_delete): Likewise, but define even
|
||
when __cpp_impl_destroying_delete is not defined.
|
||
* testsuite/18_support/destroying_delete.cc: New test.
|
||
|
||
2019-02-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/89023
|
||
* testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test.
|
||
* testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test.
|
||
* testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test.
|
||
* testsuite/28_regex/headers/regex/parallel_mode.cc: Remove.
|
||
|
||
2019-02-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/71044
|
||
* include/bits/fs_path.h (path::has_root_name)
|
||
(path::has_root_directory, path::has_root_path)
|
||
(path::has_relative_path, path::has_parent_path)
|
||
(path::has_filename, path::has_stem, path::has_extension)
|
||
(path::is_absolute, path::is_relative, path::_M_find_extension): Add
|
||
noexcept.
|
||
* src/c++17/fs_path.cc (path::has_root_name)
|
||
(path::has_root_directory, path::has_root_path)
|
||
(path::has_relative_path, path::has_parent_path)
|
||
(path::has_filename, path::_M_find_extension): Add noexcept.
|
||
|
||
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.
|
||
|
||
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.
|
||
|
||
PR libstdc++/89194
|
||
* include/std/type_traits (__is_convertible_helper)
|
||
(__is_convertible_helper<_From, _To, false>): Revert changes to
|
||
support is_nothrow_convertible.
|
||
(__is_nt_convertible_helper): New helper.
|
||
(is_nothrow_convertible): Use __is_nt_convertible_helper.
|
||
|
||
* testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
|
||
use of CopyConsOnlyType, but also test DelAnyAssign for completeness.
|
||
|
||
PR libstdc++/89130
|
||
* include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
|
||
__is_alloc_insertable_impl. Replace single type member with two
|
||
members, one for each of copy and move insertable.
|
||
(__is_move_insertable): New trait for internal use.
|
||
* include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
|
||
(vector::_S_nothrow_relocate(true_type)): New functions to
|
||
conditionally check if __relocate_a can throw.
|
||
(vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
|
||
on __is_move_insertable.
|
||
(vector::_S_do_relocate): New overloaded functions to conditionally
|
||
call __relocate_a.
|
||
(vector::_S_relocate): New function that dispatches to _S_do_relocate
|
||
based on _S_use_relocate.
|
||
* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
|
||
(vector::_M_default_append): Call _S_relocate instead of __relocate_a.
|
||
* testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
|
||
|
||
PR libstdc++/89090
|
||
* include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
|
||
parameter unnamed. Add message to static assertion.
|
||
* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
|
||
(vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
|
||
in C++11 code.
|
||
|
||
2019-02-05 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR libstdc++/87106
|
||
* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
|
||
Rename...
|
||
(__is_bitwise_relocatable): ... to this.
|
||
(__relocate_a_1): Adapt.
|
||
* include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
|
||
(__is_bitwise_relocatable): ... to this.
|
||
|
||
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. Append the dot using
|
||
operator+= instead of only to _M_pathname.
|
||
(path::_M_find_extension): Reformat slightly.
|
||
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
|
||
Add more test cases.
|
||
|
||
2019-01-30 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
|
||
|
||
2019-01-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect
|
||
constexpr specifiers from arg and proj.
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for
|
||
__shared_ptr instantiations used by gcc4-compatible ABI.
|
||
|
||
* include/experimental/forward_list (experimental::erase): Qualify
|
||
call to erase_if.
|
||
* include/experimental/list (experimental::erase): Likewise.
|
||
* include/std/forward_list (std::erase): Likewise.
|
||
* include/std/list (std::erase): Likewise.
|
||
|
||
* testsuite/20_util/reference_wrapper/result_type.cc: Disable for
|
||
C++2a.
|
||
* testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
|
||
* testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
|
||
* testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
|
||
* testsuite/30_threads/async/54297.cc: Suppress nodiscard warning.
|
||
* testsuite/ext/array_allocator/26875.cc: Likewise.
|
||
* testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise.
|
||
* testsuite/util/replacement_memory_operators.h: Likewise.
|
||
* testsuite/util/testsuite_allocator.h: Likewise.
|
||
|
||
* include/std/memory_resource (__pool_resource::_M_unpooled): Use
|
||
normal mode vector, even for debug mode.
|
||
* include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
|
||
Define alias template for normal mode vector.
|
||
|
||
2019-01-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/68737
|
||
* config/locale/generic/c_locale.h (__convert_from_v)
|
||
[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
|
||
* config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
|
||
* include/bits/locale_facets.tcc (num_put::_M_insert_float)
|
||
[_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
|
||
|
||
2019-01-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88840
|
||
* include/bits/stl_vector.h (vector::__use_relocate): Replace static
|
||
data member with static member function _S_use_relocate().
|
||
* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
|
||
(vector::_M_default_append): Use _S_use_relocate() instead of
|
||
__use_relocate.
|
||
|
||
* testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
|
||
sign of results.
|
||
|
||
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.
|
||
|
||
2019-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/86590
|
||
* include/bits/char_traits.h (__constant_string_p,
|
||
__constant_char_array_p): Use __builtin_is_constant_evaluated if
|
||
available.
|
||
|
||
2019-01-20 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
Implement C++20 P0600r1.
|
||
* include/backward/hash_map: Add nodiscard attribute to empty.
|
||
* include/backward/hash_set: Likewise.
|
||
* backward/hashtable.h: Likewise.
|
||
* include/bits/basic_string.h: Likewise.
|
||
* include/bits/forward_list.h: Likewise.
|
||
* include/bits/hashtable.h: Likewise.
|
||
* include/bits/regex.h: Likewise.
|
||
* include/bits/stl_deque.h: Likewise.
|
||
* include/bits/stl_list.h: Likewise.
|
||
* include/bits/stl_map.h: Likewise.
|
||
* include/bits/stl_multimap.h: Likewise.
|
||
* include/bits/stl_multiset.h: Likewise.
|
||
* include/bits/stl_queue.h: Likewise.
|
||
* include/bits/stl_set.h: Likewise.
|
||
* include/bits/stl_stack.h: Likewise.
|
||
* include/bits/stl_tree.h: Likewise.
|
||
* include/bits/stl_vector.h: Likewise.
|
||
* include/bits/unordered_map.h: Likewise.
|
||
* include/bits/unordered_set.h: Likewise.
|
||
* include/debug/array: Likewise.
|
||
* include/experimental/any: Likewise.
|
||
* include/experimental/bits/fs_path.h: Likewise.
|
||
* include/experimental/internet: Likewise.
|
||
* include/experimental/string_view: Likewise.
|
||
* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
|
||
info_fn_imps.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
|
||
left_child_next_sibling_heap_.hpp: Likewise.
|
||
* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
|
||
Likewise.
|
||
* include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
|
||
* include/ext/pb_ds/trie_policy.hpp: Likewise.
|
||
* include/ext/rope: Likewise.
|
||
* include/ext/slist: Likewise.
|
||
* include/ext/vstring.h: Likewise.
|
||
* include/profile/array: Likewise.
|
||
* include/std/array: Likewise.
|
||
* include/tr1/array: Likewise.
|
||
* include/tr1/hashtable.h: Likewise.
|
||
* include/tr1/regex: Likewise.
|
||
* include/tr2/dynamic_bitset: Likewise.
|
||
* include/bits/alloc_traits.h: Add nodiscard attribute to
|
||
allocate.
|
||
* include/experimental/memory_resource: Likewise.
|
||
* include/ext/alloc_traits.h: Likewise.
|
||
* include/ext/array_allocator.h: Likewise.
|
||
* include/ext/bitmap_allocator.h: Likewise.
|
||
* include/ext/debug_allocator.h: Likewise.
|
||
* include/ext/extptr_allocator.h: Likewise.
|
||
* include/ext/mt_allocator.h: Likewise.
|
||
* include/ext/new_allocator.h: Likewise.
|
||
* include/ext/pool_allocator.h: Likewise.
|
||
* include/ext/throw_allocator.h: Likewise.
|
||
* include/std/scoped_allocator: Likewise.
|
||
* libsupc++/eh_alloc.cc: Likewise.
|
||
* include/std/future: Add nodiscard attribute to async.
|
||
* libsupc++/new: Add nodiscard attribute to new.
|
||
|
||
2019-01-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/87514
|
||
PR libstdc++/87520
|
||
PR libstdc++/88782
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
|
||
* include/bits/shared_ptr.h
|
||
(shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
|
||
(allocate_shared): Change to use new tag type.
|
||
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
|
||
Declare new member function.
|
||
(_Sp_alloc_shared_tag): Define new type.
|
||
(_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
|
||
(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
|
||
_Sp_make_shared_tag::_S_eq to check type_info.
|
||
(__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.
|
||
* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.
|
||
|
||
2019-01-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++17/fs_ops.cc
|
||
(equivalent(const path&, const path&, error_code&))
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to
|
||
compare files instead of relying on incomplete info returned by stat.
|
||
|
||
PR libstdc++/88884
|
||
* src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
|
||
if the path is already absolute.
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory.
|
||
[!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.
|
||
|
||
PR libstdc++/88881
|
||
* src/c++17/fs_ops.cc (canonical(const path&, error_code&))
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
|
||
of filesystem::exists.
|
||
(create_directories(const path&, error_code&)): Add assertions.
|
||
(status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
|
||
Add workaround for bug in _wstat for paths with trailing slash.
|
||
* testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
|
||
for expected behaviour on mingw.
|
||
* testsuite/experimental/filesystem/operations/create_directories.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
|
||
"TMP" instead of "TMPDIR" and clean environment before each test. Do
|
||
not test permissions on mingw targets.
|
||
|
||
2019-01-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream
|
||
constructors and open members taking wide strings. Fix patterns for
|
||
filesystem::path members to match wstring_view parameters. Add
|
||
exports for shared_ptr members used by directory iterators.
|
||
* src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the
|
||
error code parameter if the file doesn't exist.
|
||
* src/filesystem/ops.cc (remove(const path&, error_code&)):
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/canonical.cc: Fix expected
|
||
values for mingw targets, where "/" is not an absolute path. Do not
|
||
test symlinks on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks
|
||
on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/create_directories.cc: Check
|
||
that each component of the path is created.
|
||
* testsuite/experimental/filesystem/operations/create_directories.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/exists.cc: Do not test
|
||
permissions on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
|
||
* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for
|
||
mingw targets.
|
||
* testsuite/experimental/filesystem/operations/permissions.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove.cc: Do not test
|
||
symlinks or permissions on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Do not test
|
||
symlinks on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/status.cc: Do not test
|
||
permissions on mingw targets.
|
||
* testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not
|
||
test symlinks on mingw targets.
|
||
* testsuite/experimental/filesystem/operations/space.cc: Fix test
|
||
for mingw targets.
|
||
|
||
2019-02-14 Ulrich Drepper <drepper@redhat.com>
|
||
|
||
PR libstdc++/88738
|
||
Warn about unused comparisons of shared_ptr/unique_ptr
|
||
* include/bits/c++config [_GLIBCXX_NODISCARD]: Define.
|
||
* include/bits/shared_ptr.h: Use it for operator ==, !=,
|
||
<, <=, >, >= for shared_ptr.
|
||
* include/bits/unique_ptr.h: Likewise for unique_ptr.
|
||
|
||
2019-01-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define
|
||
as 201611L, because P0497R0 changes are supported.
|
||
* include/std/version (__cpp_lib_shared_ptr_arrays): Likewise.
|
||
|
||
* include/bits/erase_if.h [__cplusplus > 201703L]
|
||
(__cpp_lib_erase_if): Only define for C++2a.
|
||
* include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
|
||
(__cpp_lib_null_iterators): Define.
|
||
* include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
|
||
(__cpp_lib_null_iterators): Define.
|
||
[__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define.
|
||
|
||
* 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.
|
||
* include/std/version [!__STRICT_ANSI__]
|
||
(__cpp_lib_uncaught_exceptions): Define as long integer.
|
||
[__cplusplus >= 201703L] (__cpp_lib_any)
|
||
(__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
|
||
(__cpp_lib_variant): Define for C++17.
|
||
[__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
|
||
as long integer.
|
||
* libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
|
||
integer.
|
||
|
||
* doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
|
||
|
||
2019-01-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88811
|
||
PR libstdc++/83306
|
||
* src/filesystem/path.cc: Fix typo. If first path is empty, show []
|
||
before second path.
|
||
* testsuite/experimental/filesystem/filesystem_error/cons.cc: New
|
||
test.
|
||
|
||
2019-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/intro.xml: Include new section.
|
||
* doc/xml/manual/status_cxx2017.xml: Document more
|
||
implementation-defined properties of the library.
|
||
* doc/xml/manual/status_cxx2020.xml: Document C++2a status.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* include/bits/refwrap.h [__cplusplus > 201703L]
|
||
(_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base)
|
||
(_Reference_wrapper_base_memfun): Do not define for C++2a.
|
||
(reference_wrapper): Do not derive from _Reference_wrapper_base_memfun
|
||
for C++2a.
|
||
(reference_wrapper::operator()): Add static assertion.
|
||
* testsuite/20_util/reference_wrapper/incomplete.cc: New test.
|
||
|
||
* 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.
|
||
|
||
* include/std/version (__cpp_lib_erase_if): Move to C++20 group.
|
||
|
||
2019-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* include/std/type_traits (__cpp_lib_is_constant_evaluated): Define.
|
||
* include/std/version (__cpp_lib_is_constant_evaluated): Define.
|
||
|
||
2019-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88802
|
||
* include/bits/functional_hash.h (hash<nullptr_t>): Define
|
||
specialization for C++17 (P0513R0, LWG 2817).
|
||
* testsuite/20_util/hash/nullptr.cc: New test.
|
||
|
||
PR libstdc++/88125
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate
|
||
pattern for std::basic_stringbuf::str().
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to
|
||
basic_ostream::operator<< patterns.
|
||
|
||
2019-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
|
||
test failures on targets with 32-bit time_t.
|
||
|
||
* include/bits/erase_if.h: Define __cpp_lib_erase_if.
|
||
* include/std/deque: Likewise.
|
||
* include/std/forward_list: Likewise.
|
||
* include/std/list: Likewise.
|
||
* include/std/string: Likewise.
|
||
* include/std/vector: Likewise.
|
||
* include/std/version: Likewise.
|
||
* testsuite/21_strings/basic_string/erasure.cc: Test macro.
|
||
* testsuite/23_containers/deque/erasure.cc: Likewise.
|
||
* testsuite/23_containers/forward_list/erasure.cc: Likewise.
|
||
* testsuite/23_containers/list/erasure.cc: Likewise.
|
||
* testsuite/23_containers/map/erasure.cc: Likewise.
|
||
* testsuite/23_containers/set/erasure.cc: Likewise.
|
||
* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
|
||
* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
|
||
* testsuite/23_containers/vector/erasure.cc: Likewise.
|
||
|
||
* include/experimental/internet [AI_NUMERICSERV]
|
||
(resolver_base::numeric_service): Define conditionally.
|
||
* testsuite/experimental/net/internet/resolver/base.cc: Test it
|
||
conditionally.
|
||
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
|
||
Likewise.
|
||
|
||
2019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
Implement LWG 2221
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
|
||
(GLIBCXX_3.4.26): Add new exports.
|
||
* include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
|
||
correct list of sources.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/std/ostream (operator<<(nullptr_t)): New member function.
|
||
* src/c++17/ostream-inst.cc: New file.
|
||
* testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
|
||
test.
|
||
|
||
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 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/88775
|
||
* include/bits/stl_function.h (greater<_Tp*>::operator(),
|
||
less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
|
||
less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
|
||
instead of __builtin_constant_p if available. Don't bother with
|
||
the pointer comparison in C++11 and earlier.
|
||
|
||
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
PR other/16615
|
||
|
||
* include/ext/bitmap_allocator.h: Mechanically replace "can not"
|
||
with "cannot".
|
||
|
||
2019-01-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output
|
||
for filesystem::path. Give variables more distinctive names.
|
||
|
||
* include/std/optional (_Optional_payload_base::_M_copy_assign): New
|
||
member function to perform non-trivial assignment.
|
||
(_Optional_payload_base::_M_move_assign): Likewise.
|
||
(_Optional_payload<T, true, false, true>::operator=)
|
||
(_Optional_payload<T, true, true, false>::operator=)
|
||
(_Optional_payload<T, true, false, false>::operator=): Call
|
||
_M_copy_assign and/or _M_move_assign to do non-trivial assignments.
|
||
|
||
PR libstdc++/88204
|
||
* testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
|
||
test std::complex<long double> if long double format is IBM128.
|
||
* testsuite/26_numerics/complex/requirements/more_constexpr.cc:
|
||
Likewise.
|
||
|
||
2019-01-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
|
||
for old std::unique_ptr layout.
|
||
* testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test
|
||
to become valueless. Add filesystem::path tests.
|
||
|
||
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.
|
||
|
||
PR libstdc++/88066
|
||
* include/bits/locale_conv.h: Use <> for includes not "".
|
||
* include/ext/random: Likewise.
|
||
* include/ext/vstring.h: Likewise.
|
||
|
||
2019-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns.
|
||
(GLIBCXX_3.4.21): Likewise.
|
||
|
||
2019-01-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88749
|
||
* src/filesystem/ops.cc (last_write_time): Fix preprocessor condition
|
||
to match the one that controls whether utimbuf and utime are declared.
|
||
|
||
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.
|
||
|
||
* doc/xml/manual/spine.xml: Update copyright years.
|
||
* doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
|
||
* doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
|
||
for C++17 filesystem library.
|
||
* doc/html/*: Regenerate.
|
||
|
||
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate.
|
||
* config.h.in: Regenerate.
|
||
* config/abi/pre/gnu.ver: Order patterns for filesystem operations
|
||
alphabetically and add missing entries for copy_symlink,
|
||
hard_link_count, rename, and resize_file.
|
||
* configure: Regenerate.
|
||
* src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is
|
||
used unconditionally.
|
||
* src/filesystem/ops-common.h (__gnu_posix::truncate)
|
||
[!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only
|
||
supports truncating to zero length.
|
||
* testsuite/27_io/filesystem/operations/all.cc: New test.
|
||
* testsuite/27_io/filesystem/operations/resize_file.cc: New test.
|
||
|
||
2019-01-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/86756
|
||
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
|
||
lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
|
||
* config.h.in: Regenerate.
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
|
||
remaining std::filesystem types and functions.
|
||
* configure: Regenerate.
|
||
* src/c++17/Makefile.am: Add C++17 filesystem sources.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
|
||
here, and change name of included file.
|
||
* src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
|
||
here, and change name of included file.
|
||
* src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
|
||
path to dir-common.h.
|
||
* src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
|
||
path to ops-common.h. Disable -Wunused-parameter warnings.
|
||
(internal_file_clock): Define unconditionally.
|
||
[!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
|
||
define.
|
||
(do_copy_file, do_space): Move definitions to ops.common.h.
|
||
(copy, file_size, hard_link_count, last_write_time, space): Only
|
||
perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
|
||
report an error.
|
||
(last_write_time, read_symlink): Remove unused attributes from
|
||
parameters.
|
||
* src/filesystem/Makefile.am: Remove C++17 filesystem sources.
|
||
* src/filesystem/Makefile.in: Regenerate.
|
||
* src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
|
||
* src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
|
||
* src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
|
||
* src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
|
||
* src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
|
||
dummy types and functions instead of using #error.
|
||
* src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
|
||
* src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
|
||
in terms of stat.
|
||
[!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
|
||
(do_copy_file, do_space): Move definitions here from std-ops.cc.
|
||
* src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
|
||
to account for new namespace.
|
||
* testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
|
||
-lstdc++fs from dg-options.
|
||
* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
|
||
* testsuite/27_io/filesystem/file_status/1.cc: Likewise.
|
||
* testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
|
||
* testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
|
||
* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
|
||
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/copy.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/create_directories.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/relative.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/space.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/status.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
|
||
* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
|
||
|
||
|
||
PR libstdc++/86756
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
|
||
typeinfo and vtables less greedy.
|
||
(GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
|
||
* src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
|
||
here, and change name of included file.
|
||
* src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
|
||
* src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
|
||
from sources.
|
||
* src/filesystem/Makefile.in: Regenerate.
|
||
* src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
|
||
* src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
|
||
* testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
|
||
from dg-options and remove dg-require-filesystem-ts.
|
||
* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
|
||
Likewise.
|
||
* testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
|
||
* 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_absolute.cc: Likewise.
|
||
* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
|
||
|
||
PR libstdc++/87431
|
||
* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
|
||
Check is_trivially_copyable instead of is_scalar.
|
||
(variant::emplace<N, Args>(Args&&...)): If construction of the new
|
||
contained value can throw and its type is trivially copyable then
|
||
construct into a temporary variant and move from it, to provide the
|
||
strong exception safety guarantee.
|
||
(variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
|
||
Likewise.
|
||
* testsuite/20_util/variant/87431.cc: New test.
|
||
* testsuite/20_util/variant/run.cc: Adjust test so that throwing
|
||
conversion causes valueless state.
|
||
|
||
PR libstdc++/88607
|
||
* testsuite/17_intro/headers/c++1998/charset.cc: New test.
|
||
* testsuite/17_intro/headers/c++2011/charset.cc: New test.
|
||
* testsuite/17_intro/headers/c++2014/charset.cc: New test.
|
||
* testsuite/17_intro/headers/c++2017/charset.cc: New test.
|
||
* testsuite/17_intro/headers/c++2020/charset.cc: New test.
|
||
|
||
2019-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/fs_fwd.h (__file_clock): Define new clock.
|
||
(file_time_type): Redefine in terms of __file_clock.
|
||
* src/filesystem/ops-common.h (file_time): Add FIXME comment about
|
||
overflow.
|
||
* src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
|
||
internal linkage.
|
||
(internal_file_lock): New helper type for accessing __file_clock.
|
||
(do_copy_file): Use internal_file_lock to convert system time to
|
||
file_time_type.
|
||
(last_write_time(const path&, error_code&)): Likewise.
|
||
(last_write_time(const path&, file_time_type, error_code&)): Likewise.
|
||
|
||
2019-01-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
|
||
for const member functions of std::basic_string.
|
||
(GLIBCXX_3.4.26): Export member functions of std::basic_string added
|
||
in C++17.
|
||
* include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
|
||
Make non-standard constructor private.
|
||
[!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
|
||
Likewise.
|
||
* include/bits/basic_string.tcc (std::string, std::wstring): Declare
|
||
explicit instantiations for C++17 as well as earlier dialects.
|
||
* src/c++17/Makefile.am: Add new source files.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++17/cow-string-inst.cc: New file defining explicit
|
||
instantiations for basic_string member functions added in C++17.
|
||
* src/c++17/string-inst.cc: Likewise.
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
|
||
copy/move constructors for old std::basic_string.
|
||
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
||
(basic_string::reference, basic_string::const_reference): Define
|
||
as plain references for C++11 and later.
|
||
(basic_string::basic_string()): Put constructor body outside
|
||
preprocessor conditional groups.
|
||
(basic_string::basic_string(basic_string&&)): Move _Alloc_hider
|
||
instead of copying it.
|
||
(basic_string::basic_string(const basic_string&, const _Alloc&)):
|
||
Define.
|
||
(basic_string::basic_string(basic_string&&, const _Alloc&)):
|
||
Define.
|
||
* include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
|
||
cases for old basic_string.
|
||
* testsuite/21_strings/basic_string/cons/char/8.cc: Test
|
||
allocator-extended constructors unconditionally. Add extra members to
|
||
allocator type when using old string ABI.
|
||
* testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
|
||
for old string ABI.
|
||
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
|
||
|
||
* testsuite/23_containers/list/61347.cc: Avoid spurious failure when
|
||
-fno-inline added to test flags.
|
||
|
||
* testsuite/21_strings/basic_string/requirements/
|
||
explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
|
||
|
||
* testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
|
||
assertion failures with old std::string ABI.
|
||
|
||
* include/bits/fs_path.h (path::_List::erase): Replace both overloads
|
||
with ...
|
||
(path::pop_back(), path::_M_erase_from(const_iterator)): New member
|
||
functions that will only erase elements at the end.
|
||
* src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
|
||
(path::_List::_Impl::_M_erase_from(const_iterator)): Define.
|
||
(path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
|
||
of erase(p, end()).
|
||
(path::_List::pop_back()): Define.
|
||
(path::_List::_M_erase_from(const_iterator)): Define.
|
||
(path::operator/=(const path&)): Use pop_back to remove last component
|
||
and _M_erase_from to remove multiple components.
|
||
(path::_M_append(basic_string_view<value_type>)): Likewise.
|
||
(path::operator+=(const path&)): Likewise.
|
||
(path::_M_concat(basic_string_view<value_type>)): Likewise.
|
||
(path::remove_filename()): Likewise.
|
||
(path::lexically_normal()): Use _List::_Impl 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.
|
||
|
||
* src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
|
||
incorrect treatment of empty filename after trailing slash.
|
||
* testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
|
||
|
||
* testsuite/21_strings/basic_string/modifiers/assign/char/
|
||
move_assign_optim.cc: Avoid spurious failure when -fno-inline added
|
||
to test flags.
|
||
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
|
||
move_assign_optim.cc: Likewise.
|
||
|
||
2019-01-03 Jonathan Wakely <jwakely@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/88607
|
||
* include/experimental/memory: Replace UTF-8 quote characters.
|
||
* include/std/future: Replace UTF-8 "em dash" characters.
|
||
|
||
2019-01-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/88607
|
||
* include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
|
||
* include/debug/forward_list: Likewise.
|
||
* include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
|
||
character.
|
||
* include/experimental/chrono: Likewise.
|
||
* include/experimental/functional: Likewise.
|
||
* include/experimental/ratio: Likewise.
|
||
* include/experimental/system_error: Likewise.
|
||
* include/experimental/tuple: Likewise.
|
||
* include/experimental/type_traits: Likewise.
|
||
* include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
|
||
* include/parallel/multiseq_selection.h: Likewise.
|
||
|
||
PR libstdc++/88681
|
||
* config/abi/pre/gnu.ver: Add missing exports.
|
||
* testsuite/22_locale/collate_byname/88681.cc: New test.
|
||
* testsuite/22_locale/time_get/get/char/88681.cc: New test.
|
||
* testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
|
||
|
||
2019-01-02 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/23_containers/map/cons/deduction.cc: Test deduction from
|
||
initializer_list<value_type> and from input iterator ranges.
|
||
* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
|
||
|
||
* testsuite/experimental/string_view/element_access/char/empty.cc:
|
||
Fix year range in copyright header.
|
||
|
||
2019-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
|
||
Fix year range in copyright header.
|
||
|
||
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
Copyright (C) 2019 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.
|