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