1 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
3 * include/std/string_view (basic_string_view(Range&&)): Define new
4 constructor and deduction guide.
5 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
8 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
10 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
11 Add missing 'noexcept' as per LWG 2280.
12 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
13 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
14 * testsuite/24_iterators/range_access/range_access.cc: Check for
15 expected noexcept specifiers. Check result types of generic
16 std::begin and std::end overloads.
17 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
18 Check for expected noexcept specifiers.
19 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
22 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
24 * include/std/type_traits (is_scoped_enum): Define.
25 * include/std/version (__cpp_lib_is_scoped_enum): Define.
26 * testsuite/20_util/is_scoped_enum/value.cc: New test.
27 * testsuite/20_util/is_scoped_enum/version.cc: New test.
29 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
32 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
33 std::once_flag symbols.
34 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
35 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
36 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
38 * config/abi/pre/gnu.ver: Likewise.
39 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
40 (struct __once_flag_compat): Remove.
41 (_ZNSt9once_flag11_M_activateEv): Remove.
42 (_ZNSt9once_flag9_M_finishEb): Remove.
44 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
47 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
48 Revert to pthread_once_t implementation.
49 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
50 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
51 (struct __once_flag_compat): New type matching the reverted
52 implementation of once_flag using futexes.
53 (once_flag::_M_activate): Remove, replace with ...
54 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
55 (once_flag::_M_finish): Remove, replace with ...
56 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
57 * testsuite/30_threads/call_once/66146.cc: Removed.
59 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
61 * testsuite/17_intro/names.cc: Exclude j from the list
62 of test symbols for Darwin.
64 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
66 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
67 to_chars and from_chars for long double.
69 2021-03-15 Patrick Palka <ppalka@redhat.com>
71 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
73 (__max_size_type::operator++): Define.
74 (__max_size_type::operator--): Likewise.
75 (__max_size_type::operator<=>): Conditionally define (in place
76 of the other comparison operators).
77 (__max_diff_type::operator _Tp): Fix formatting.
78 (__max_diff_type::operator++): Define.
79 (__max_diff_type::operator--): Likewise.
80 (__max_diff_type::operator<=>): Conditionally define (in place
81 of the other comparison operators).
82 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
83 these operator overloads.
85 2021-03-15 Caroline Tice <cmtice@google.com>
88 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
89 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
90 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
92 * src/Makefile.in: Regenerate.
94 2021-03-11 Patrick Palka <ppalka@redhat.com>
96 * src/c++17/floating_to_chars.cc: Simplify the file as if
97 __SIZEOF_INT128__ is always defined.
98 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
99 a base-10 to_chars overload for the uint128_t class type.
100 * src/c++17/uint128_t.h: New file.
101 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
102 execution FAIL on targets that have a large long double type
105 2021-03-11 Patrick Palka <ppalka@redhat.com>
107 * src/c++17/ryu/LOCAL_PATCHES: Update.
108 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
109 * src/c++17/ryu/generic_128.h: Likewise.
110 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
111 Use uint128_t instead of __uint128_t.
112 (generic_binary_to_decimal): Likewise.
114 2021-03-11 Patrick Palka <ppalka@redhat.com>
116 * src/c++17/ryu/LOCAL_PATCHES: New file.
118 2021-03-11 Patrick Palka <ppalka@redhat.com>
120 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
121 defined alias of unsigned __int128.
122 (floating_type_traits_binary128::mantissa_t): Use uint128_t
123 instead of unsigned __int128.
124 (floating_type_traits<long double>::mantissa_t)
125 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
126 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
127 and uint32_t explicit. Simplify the extraction of mantissa,
128 exponent and sign bit.
130 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
132 * include/std/barrier (barrier::arrival_token): New move-only
133 class that encapsulates the underlying token value.
135 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
137 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
138 instead of unqualified() method.
140 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
143 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
144 Use acq_rel memory ordering.
146 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
149 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
150 helper function to check for permission denied errors.
151 * src/filesystem/dir.cc (recursive_directory_iterator):
153 * src/filesystem/dir-common.h (is_permission_denied_error): New
156 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
159 * include/bits/random.h (normal_distribution): Use
160 default-initializer for _M_saved and _M_saved_available.
162 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
164 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
166 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
167 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
168 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
169 * testsuite/30_threads/barrier/arrive.cc: Likewise.
170 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
171 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
172 * testsuite/30_threads/barrier/completion.cc: Likewise.
173 * testsuite/30_threads/latch/3.cc: Likewise.
174 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
175 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
176 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
178 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
181 * include/bits/align.h: Include debug/assertions.h.
182 * include/bits/codecvt.h: Include bits/c++config.h.
183 * include/bits/enable_special_members.h: Likewise.
184 * include/bits/erase_if.h: Likewise.
185 * include/bits/functional_hash.h: Include <type_traits>.
186 * include/bits/invoke.h: Include bits/move.h.
187 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
188 * include/bits/parse_numbers.h: Include <type_traits>.
189 * include/bits/predefined_ops.h: Include bits/c++config.h.
190 * include/bits/range_access.h: Include bits/stl_iterator.h.
191 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
192 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
193 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
194 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
195 * include/bits/unique_lock.h: Include bits/std_mutex.h.
196 * include/debug/assertions.h: Include bits/c++config.h.
198 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
200 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
201 (ranges::equal_to, ranges::not_equal_to): Do not constrain
202 with __eq_builtin_ptr_cmp.
203 (ranges::less, ranges::greater, ranges::less_equal)
204 (ranges::greater_equal): Do not constrain with
205 __less_builtin_ptr_cmp.
206 * libsupc++/compare (compare_three_way): Do not constrain with
207 __3way_builtin_ptr_cmp.
208 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
209 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
210 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
212 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
214 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
215 C++20 calendar types.
217 2021-03-06 Jakub Jelinek <jakub@redhat.com>
220 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
221 two _Nd which the compiler can pattern match the rotates.
223 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
226 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
227 Make storage larger than required. Verify no write to the last
229 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
232 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
234 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
235 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
237 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
238 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
241 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
243 * include/experimental/bits/simd.h: Replace reserved _X, _B by
245 * include/experimental/bits/simd_builtin.h: Likewise.
246 * include/experimental/bits/simd_x86.h: Likewise.
248 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
251 * include/std/chrono (year_month_day::_M_days_since_epoch()):
252 Convert chrono::month and chrono::day to unsigned before
253 converting to uint32_t.
255 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
257 * include/std/chrono (year_month_day::_S_from_days): Perform
258 all calculations with type uint32_t.
260 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
262 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
263 * doc/html/manual/abi.html: Regenerate.
265 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
268 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
269 FILE instead of FILE.
271 2021-02-25 Andreas Schwab <schwab@suse.de>
273 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
274 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
275 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
276 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
278 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
281 * include/std/chrono (year_month_day::_S_from_days): Cast long
284 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
286 * include/std/utility (to_underlying): Define.
287 * include/std/version (__cpp_lib_to_underlying): Define.
288 * testsuite/20_util/to_underlying/1.cc: New test.
289 * testsuite/20_util/to_underlying/version.cc: New test.
291 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
294 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
295 before value to be printed.
297 2021-02-24 Patrick Palka <ppalka@redhat.com>
299 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
300 Relax the condition that guards the printf code path to accept
301 F128_type as well as long double.
303 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
305 * include/std/chrono (year_month_day_last:day): New
308 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
310 * include/std/chrono (year::is_leap): New implementation.
311 * testsuite/std/time/year/2.cc: New test.
313 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
315 * include/std/chrono (year_month_day::_M_days_since_epoch):
317 * testsuite/std/time/year_month_day/4.cc: New test.
319 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
321 * include/std/chrono (year_month_day::_S_from_days): New
323 * testsuite/std/time/year_month_day/3.cc: New test.
325 2021-02-24 Patrick Palka <ppalka@redhat.com>
328 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
329 (test01): Simplify verifying the nearby values by using a
330 2-iteration loop and a dedicated output buffer to check that the
331 nearby values are different. Factor out the printf-based
332 verification into a local function, and check that the leading
333 hex digits agree before comparing to the output of printf. Also
334 verify the output by round-tripping it through from_chars.
336 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
339 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
340 symbols for long double arguments mangled as 'g'.
341 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
342 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
343 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
344 Use -mabi=ibmlongdouble for floating_to_chars.cc.
345 * src/c++17/Makefile.in: Regenerate.
346 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
347 New type defining type traits of IEEE binary128 format.
348 (floating_type_traits<__float128>): Define specialization.
349 (floating_type_traits<long double>): Define in terms of
350 floating_type_traits_binary128 when appropriate.
351 (floating_to_shortest_scientific): Handle __float128.
352 (sprintf_ld): New function template for printing a long double
353 or __ieee128 value using sprintf.
354 (__floating_to_chars_shortest, __floating_to_chars_precision):
356 (to_chars): Define overloads for __float128.
358 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
360 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
362 2021-02-23 Martin Sebor <msebor@redhat.com>
365 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
366 first argument is null.
368 2021-02-23 Jakub Jelinek <jakub@redhat.com>
371 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
374 2021-02-23 Jakub Jelinek <jakub@redhat.com>
377 * include/bits/char_traits.h (char_traits<char>::compare): For
378 constexpr evaluation don't call
379 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
382 2021-02-23 Jakub Jelinek <jakub@redhat.com>
385 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
387 2021-02-23 Patrick Palka <ppalka@redhat.com>
390 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
391 the high- and low-order parts from an IBM long double value
392 in an endian-agnostic way.
394 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
396 * include/bits/atomic_wait.h (__thread_relax()): Call
397 __thread_yield() not __gthread_yield().
399 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
401 * include/bits/atomic_wait.h (__thread_yield()): Check
402 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
403 (__thread_relax()): Use __thread_yield() instead of repeating
404 the preprocessor checks for __gthread_yield.
406 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
408 * include/std/mutex (once_flag::_M_activate()): Add explicit
409 return statement for passive case.
410 (once_flag::_M_finish(bool)): Use reserved name for parameter.
412 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
415 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
417 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
420 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
422 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
424 * doc/xml/manual/status_cxx2014.xml: Document implementation
425 specific properties of std::experimental::filesystem::rename.
426 * doc/xml/manual/status_cxx2017.xml: Document implementation
427 specific properties of std::filesystem::rename.
428 * doc/html/*: Regenerate.
429 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
430 for directories on Windows.
431 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
432 MoveFileExW on Windows.
433 * testsuite/27_io/filesystem/operations/rename.cc: New test.
434 * testsuite/experimental/filesystem/operations/rename.cc: New test.
436 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
438 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
439 random number to the path.
441 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
443 * include/experimental/internet (address_v6::to_string): Include
445 * testsuite/experimental/net/internet/address/v6/members.cc:
446 Test to_string() results.
448 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
450 * include/experimental/internet (address_v6::any): Avoid using
451 memcpy in constexpr function.
452 (address_v6::loopback): Likewise.
453 (make_address_v6): Fix missing return statements on error paths.
454 * include/experimental/io_context: Avoid -Wdangling-else
456 * testsuite/experimental/net/internet/address/v4/members.cc:
457 Remove unused variables.
458 * testsuite/experimental/net/internet/address/v6/members.cc:
461 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
463 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
464 Add unused attribute to parameter.
465 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
468 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
470 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
471 if -fno-rtti is used.
472 * testsuite/30_threads/async/forced_unwind.cc: Expect test
473 to abort if -fno-rtti is used.
475 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
477 * testsuite/util/testsuite_allocator.h (memory_resource):
478 Remove requirement for RTTI and exceptions to be enabled.
480 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
482 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
483 static_cast when RTTI is disabled.
484 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
486 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
488 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
490 * testsuite/27_io/basic_stringstream/str/char/2.cc:
492 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
495 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
497 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
498 as unused and only use dynamic_cast when RTTI is enabled.
500 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
503 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
504 Change int parameter to error_code, to match std::ios_failure.
505 (__throw_ios_failure(const char*, int)): Construct error_code
508 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
510 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
512 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
513 macro instead of _GLIBCXX_EH_PTR_COMPAT.
514 (operator==): Likewise.
516 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
519 * doc/xml/manual/status_cxx2011.xml: Document when support
521 * doc/xml/manual/status_cxx2014.xml: Likewise.
522 * doc/xml/manual/status_cxx2017.xml: Likewise.
523 * doc/html/manual/status.html: Regenerate.
525 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
528 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
530 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
532 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
533 (fs::remove): Use std::system_category() for error codes from
535 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
538 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
540 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
541 in __MINGW32__ macro name.
542 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
543 * testsuite/27_io/filesystem/path/generation/proximate.cc:
545 * testsuite/27_io/filesystem/path/generation/relative.cc:
547 * testsuite/util/testsuite_fs.h: Likewise.
549 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
551 * include/bits/stl_tree.h
552 (__has_is_transparent, __has_is_transparent_t): Move...
553 * include/bits/stl_function.h: ...here.
554 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
555 (_Hashtable_base<>::_M_equals_tr): New.
556 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
557 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
558 heterogeneous lookup.
559 (_Hashtable<>::_M_find_before_node_tr): New.
560 (_Hashtable<>::_M_find_node_tr): New.
561 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
562 unordered_map::contains<>, unordered_map::equal_range<>): New member function
563 templates to perform heterogeneous lookup.
564 (unordered_multimap::find<>, unordered_multimap::count<>,
565 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
566 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
567 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
568 (unordered_multiset::find<>, unordered_multiset::count<>,
569 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
570 * include/debug/unordered_map
571 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
572 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
573 * include/debug/unordered_set
574 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
575 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
576 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
577 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
578 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
579 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
581 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
583 * include/bits/stl_deque.h
584 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
587 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
589 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
590 test directory after making it writable again.
591 * testsuite/experimental/filesystem/operations/remove_all.cc:
594 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
597 * include/std/coroutine (coroutine_handle<P>::from_address): Add
600 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
602 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
603 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
605 2021-02-09 Jakub Jelinek <jakub@redhat.com>
608 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
609 points to the characters moved by earlier _S_move, compute the source
610 address using expression based on the __p pointer rather than __s
613 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
615 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
616 Add comparison with same category and different values.
617 * testsuite/19_diagnostics/error_code/operators/less.cc:
618 Likewise. Fix comparison involving different categories.
619 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
621 * testsuite/19_diagnostics/error_condition/operators/less.cc:
623 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
626 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
628 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
629 calls with a single vaddv for aarch64.
631 2021-02-03 Matthias Kretz <kretz@kde.org>
633 * testsuite/Makefile.am: Warn about the workaround. Add
634 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
635 Improve initial user feedback from make check-simd.
636 * testsuite/Makefile.in: Regenerated.
638 2021-02-03 Matthias Kretz <kretz@kde.org>
640 * include/experimental/bits/simd.h: Add __detail::_Minimum and
641 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
642 Add hmin and hmax overloads for simd and const_where_expression.
643 * include/experimental/bits/simd_scalar.h
644 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
645 parameter const-ref to allow calling _S_reduce with an rvalue.
646 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
647 hmin and hmax. Since the compiler statically determined that all
648 tests pass, repeat the test after a call to make_value_unknown.
650 2021-02-03 Matthias Kretz <kretz@kde.org>
652 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
653 instruction pointer data member. Ensure that the `if (m_failed)`
654 branch is always inlined into the calling code. The body of the
655 conditional can still be a function call. Move the get_ip call
656 into the verify ctor to simplify the ctor calls.
657 (COMPARE): Don't mention the use of all_of for reduction of a
658 simd_mask. It only distracts from the real issue.
660 2021-02-03 Matthias Kretz <kretz@kde.org>
662 * testsuite/experimental/simd/driver.sh: Abstract reading test
663 options into read_src_option function. Read skip, only,
664 expensive, and xfail via read_src_option. Add timeout and
665 timeout-factor options and adjust timeout variable accordingly.
666 * testsuite/experimental/simd/tests/loadstore.cc: Set
669 2021-02-03 Matthias Kretz <kretz@kde.org>
671 * testsuite/experimental/simd/driver.sh: When handling the pipe
672 to log (and on verbose to stdout) count the lines. If it exceeds
673 1000 log the issue and exit 125, which is then handled as a
676 2021-02-03 Matthias Kretz <kretz@kde.org>
678 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
679 markup for long double on powerpc64*.
681 2021-02-03 Matthias Kretz <kretz@kde.org>
683 * include/experimental/bits/simd.h: Add __have_power10vec
684 conditional on _ARCH_PWR10.
685 * include/experimental/bits/simd_builtin.h: Forward declare
686 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
688 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
689 _SuperImpl for optimizations and correctness.
690 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
691 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
692 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
693 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
695 2021-02-03 Matthias Kretz <kretz@kde.org>
697 * testsuite/experimental/simd/driver.sh: Remove executable on
698 SIGINT. Process compiler and test executable output: In verbose
699 mode print messages immediately, limited to 1000 lines and
700 breaking long lines to below $COLUMNS (or 1024 if not set).
701 Communicating the exit status of the compiler / test with the
702 necessary pipe is done via a message through stdout/-in.
704 2021-02-03 Matthias Kretz <kretz@kde.org>
706 * testsuite/Makefile.am: Ensure .simd.summary is empty before
707 collecting a new summary.
708 * testsuite/Makefile.in: Regenerate.
710 2021-02-03 Matthias Kretz <kretz@kde.org>
712 * testsuite/experimental/simd/generate_makefile.sh: Use
713 different variables internally than documented for user
714 overrides. This makes internal append/prepend work as intended.
716 2021-02-03 Matthias Kretz <kretz@kde.org>
718 * testsuite/experimental/simd/driver.sh (verify_test): Print
719 test output on run xfail. Do not repeat lines from the log that
720 were already printed on stdout.
721 (test_selector): Make the compiler flags pattern usable as a
723 (toplevel): Trap on SIGINT and remove the log and sum files.
724 Call timout with --foreground to quickly terminate on SIGINT.
725 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
726 targets via target patterns. Default DRIVEROPTS to -v for run
727 targets. Remove log and sum files after completion of the run
728 target (so that it's always recompiled).
729 Place help text into text file for reasonable 'make help'
732 2021-02-03 Matthias Kretz <kretz@kde.org>
734 * include/experimental/bits/simd.h: Remove unnecessary static
735 assertion. Allow sizeof(8) integer __intrinsic_type to enable
736 the necessary mask type.
738 2021-02-03 Matthias Kretz <kretz@kde.org>
740 * include/experimental/bits/simd.h: Let __intrinsic_type<long
741 double, N> be valid if sizeof(long double) == sizeof(double) and
742 use a __vector double as member type.
744 2021-02-03 Matthias Kretz <kretz@kde.org>
746 * include/experimental/bits/simd.h (__is_intrinsic_type): New
747 internal type trait. Alias for __is_vector_type on x86.
748 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
750 (__intrin_bitcast): Allow casting to & from vector & intrinsic
752 (__intrinsic_type): Explicitly specialize for NEON intrinsic
755 2021-02-03 Matthias Kretz <kretz@kde.org>
757 * testsuite/experimental/simd/driver.sh: Implement skip, only,
758 expensive, and xfail markers. They can select on type, ABI tag
759 subset number, target-triplet, and compiler flags.
760 * testsuite/experimental/simd/generate_makefile.sh: The summary
761 now includes lines for unexpected passes and expected failures.
762 If the skip or only markers are only conditional on the type, do
763 not generate rules for those types.
764 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
765 for ABI tag subsets 1-9.
766 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
767 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
768 * testsuite/experimental/simd/tests/casts.cc: Ditto.
769 * testsuite/experimental/simd/tests/generator.cc: Ditto.
770 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
771 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
772 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
773 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
774 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
775 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
776 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
777 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
778 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
779 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
780 * testsuite/experimental/simd/tests/operators.cc: Ditto.
781 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
782 * testsuite/experimental/simd/tests/simd.cc: Ditto.
783 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
784 * testsuite/experimental/simd/tests/splits.cc: Ditto.
785 * testsuite/experimental/simd/tests/where.cc: Ditto.
786 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
787 addition replace "test only floattypes" marker by unconditional
788 "float|double|ldouble" only marker.
789 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
790 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
791 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
793 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
794 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
795 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
796 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
797 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
798 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
799 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
800 addition, xfail on run because the reference data is missing.
802 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
804 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
805 * doc/xml/manual/status_cxx2014.xml: Likewise.
806 * doc/xml/manual/status_cxx2017.xml: Likewise.
807 * doc/html/manual/status.html: Regenerate.
809 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
812 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
813 Return 0 if both iterators are value-initialized.
814 * testsuite/23_containers/deque/70303.cc: New test.
815 * testsuite/23_containers/vector/70303.cc: New test.
817 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
819 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
821 * doc/xml/manual/status_cxx2014.xml: Likewise.
822 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
823 std::from_chars and std::to_chars status. Fix formatting.
824 * doc/html/manual/status.html: Regenerate.
826 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
828 * include/experimental/bits/numeric_traits.h: Update copyright
830 * include/experimental/bits/simd.h: Likewise.
831 * include/experimental/bits/simd_builtin.h: Likewise.
832 * include/experimental/bits/simd_converter.h: Likewise.
833 * include/experimental/bits/simd_detail.h: Likewise.
834 * include/experimental/bits/simd_fixed_size.h: Likewise.
835 * include/experimental/bits/simd_math.h: Likewise.
836 * include/experimental/bits/simd_neon.h: Likewise.
837 * include/experimental/bits/simd_ppc.h: Likewise.
838 * include/experimental/bits/simd_scalar.h: Likewise.
839 * include/experimental/bits/simd_x86.h: Likewise.
840 * include/experimental/bits/simd_x86_conversions.h: Likewise.
841 * include/experimental/simd: Likewise.
842 * testsuite/experimental/simd/*: Likewise.
844 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
846 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
847 * doc/html/*: Regenerate.
849 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
851 * testsuite/experimental/simd/generate_makefile.sh: Use printf
852 instead of echo when printing escape characters.
854 2021-01-27 Matthias Kretz <kretz@kde.org>
856 * scripts/check_simd: New file. This script is called from the
857 the check-simd target. It determines a set of compiler flags and
858 simulator setups for calling generate_makefile.sh and passes the
859 information back to the check-simd target, which recurses to the
861 * scripts/create_testsuite_files: Remove files below simd/tests/
862 from testsuite_files and place them in testsuite_files_simd.
863 * testsuite/Makefile.am: Add testsuite_files_simd. Add
865 * testsuite/Makefile.in: Regenerate.
866 * testsuite/experimental/simd/driver.sh: New file. This script
867 compiles and runs a given simd test, logging its output and
868 status. It uses the timeout command to implement compile and
870 * testsuite/experimental/simd/generate_makefile.sh: New file.
871 This script generates a Makefile which uses driver.sh to compile
872 and run the tests and collect the logs into a single log file.
873 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
875 * testsuite/experimental/simd/tests/algorithms.cc: New file.
876 Tests min/max(simd, simd).
877 * testsuite/experimental/simd/tests/bits/conversions.h: New
878 file. Contains functions to support tests involving conversions.
879 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
880 Support functions make_mask and make_vec.
881 * testsuite/experimental/simd/tests/bits/mathreference.h: New
882 file. Support functions to supply precomputed math function
884 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
885 file. Support code for SFINAE testing.
886 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
887 * testsuite/experimental/simd/tests/bits/test_values.h: New
888 file. Test functions to easily drive a test with simd objects
889 initialized from a given list of values and a range of random
891 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
892 Support code to determine the ULP distance of simd objects.
893 * testsuite/experimental/simd/tests/bits/verify.h: New file.
894 Test framework for COMPARE'ing simd objects and instantiating
895 the test templates with value_type and ABI tag.
896 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
898 * testsuite/experimental/simd/tests/casts.cc: New file. Test
900 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
901 Test floating-point classification functions.
902 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
904 * testsuite/experimental/simd/tests/generator.cc: New file. Test
905 simd generator constructor.
906 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
907 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
908 * testsuite/experimental/simd/tests/integer_operators.cc: New
909 file. Test integer operators.
910 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
911 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
913 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
914 (converting) simd loads and stores.
915 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
917 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
918 Test simd_mask broadcasts.
919 * testsuite/experimental/simd/tests/mask_conversions.cc: New
920 file. Test simd_mask conversions.
921 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
922 file. Test simd_mask implicit conversions.
923 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
924 Test simd_mask loads and stores.
925 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
926 file. Test simd_mask operators convert as specified.
927 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
928 Test simd_mask compares, subscripts, and negation.
929 * testsuite/experimental/simd/tests/mask_reductions.cc: New
930 file. Test simd_mask reductions.
931 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
932 1-arg math functions on simd.
933 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
934 2-arg math functions on simd.
935 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
936 Test implicit conversions on simd binary operators behave as
938 * testsuite/experimental/simd/tests/operators.cc: New file. Test
939 simd compares, subscripts, not, unary minus, plus, minus,
940 multiplies, divides, increment, and decrement.
941 * testsuite/experimental/simd/tests/reductions.cc: New file.
943 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
945 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
946 sanity checks of simd types.
947 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
948 sin(simd) and cos(simd).
949 * testsuite/experimental/simd/tests/split_concat.cc: New file.
950 Test split(simd) and concat(simd, simd).
951 * testsuite/experimental/simd/tests/splits.cc: New file. Test
953 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
954 Test remaining trigonometric functions on simd.
955 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
956 file. Test trunc(simd), ceil(simd), and floor(simd).
957 * testsuite/experimental/simd/tests/where.cc: New file. Test
958 masked operations using where.
960 2021-01-27 Matthias Kretz <kretz@kde.org>
962 * doc/xml/manual/status_cxx2017.xml: Add implementation status
963 of the Parallelism TS 2. Document implementation-defined types
965 * include/Makefile.am: Add new headers.
966 * include/Makefile.in: Regenerate.
967 * include/experimental/simd: New file. New header for
969 * include/experimental/bits/numeric_traits.h: New file.
970 Implementation of P1841R1 using internal naming. Addition of
971 missing IEC559 functionality query.
972 * include/experimental/bits/simd.h: New file. Definition of the
973 public simd interfaces and general implementation helpers.
974 * include/experimental/bits/simd_builtin.h: New file.
975 Implementation of the _VecBuiltin simd_abi.
976 * include/experimental/bits/simd_converter.h: New file. Generic
978 * include/experimental/bits/simd_detail.h: New file. Internal
979 macros for the simd implementation.
980 * include/experimental/bits/simd_fixed_size.h: New file. Simd
981 fixed_size ABI specific implementations.
982 * include/experimental/bits/simd_math.h: New file. Math
984 * include/experimental/bits/simd_neon.h: New file. Simd NEON
985 specific implementations.
986 * include/experimental/bits/simd_ppc.h: New file. Implement bit
987 shifts to avoid invalid results for integral types smaller than
989 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
990 ABI specific implementations.
991 * include/experimental/bits/simd_x86.h: New file. Simd x86
992 specific implementations.
993 * include/experimental/bits/simd_x86_conversions.h: New file.
994 x86 specific conversion optimizations. The conversion patterns
995 work around missing conversion patterns in the compiler and
996 should be removed as soon as PR85048 is resolved.
997 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
998 Test that all (not all fixed_size<N>, though) standard simd and
999 simd_mask types are usable.
1000 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
1001 file. As above but with -ffast-math.
1002 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
1003 from the standard test loop. Instead use
1004 check_vect_support_and_set_flags to build simd tests with the
1005 relevant machine flags.
1007 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1010 * include/bits/string_view.tcc
1011 (basic_string_view::find(const CharT*, size_type, size_type)):
1014 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
1016 * include/bits/basic_string.h (basic_string::contains): New
1018 * include/std/string_view (basic_string_view::contains):
1020 * include/std/version (__cpp_lib_string_contains): Define.
1021 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
1022 Remove trailing whitespace.
1023 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
1025 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
1026 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
1027 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
1028 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
1029 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
1031 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
1033 * src/c++17/Makefile.in: Regenerate.
1035 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
1037 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
1038 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
1040 (const char* ctype<char>:: is): Same.
1042 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1045 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
1046 write to a wide character stream if wide character support is
1047 disabled in the library.
1049 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1051 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
1052 stringbuf not wstringbuf.
1054 2021-01-18 Jakub Jelinek <jakub@redhat.com>
1057 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
1058 Compile with -gno-as-loc-support.
1059 * src/c++11/Makefile.in: Regenerated.
1061 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
1063 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1064 Add -fcf-protection=none to -march=i486.
1066 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1068 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
1071 2021-01-14 Alexandre Oliva <oliva@adacore.com>
1073 * testsuite/30_threads/future/members/poll.cc: Calibrate
1076 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1079 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
1080 (_Node_iterator()): Make default.
1081 (_Node_const_iterator()): Make default.
1082 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
1084 * include/debug/safe_iterator.h
1085 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
1086 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1088 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
1089 _M_singular checks on input iterators.
1090 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
1092 * testsuite/23_containers/deque/debug/98466.cc: New test.
1093 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
1095 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1098 * include/bits/fs_path.h (__throw_conversion_error): New
1099 function to throw or abort on character conversion errors.
1100 (__wstr_from_utf8): Move definition after filesystem_error has
1101 been defined. Use __throw_conversion_error.
1102 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
1103 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
1104 (path::u8string): Likewise.
1106 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1108 * include/std/barrier: Update copyright years. Fix whitespace.
1109 * include/std/version: Fix whitespace.
1110 * testsuite/30_threads/barrier/1.cc: Update copyright years.
1111 * testsuite/30_threads/barrier/2.cc: Likewise.
1112 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1113 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1114 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1115 * testsuite/30_threads/barrier/completion.cc: Likewise.
1117 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
1119 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
1121 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
1124 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
1126 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
1128 2021-01-08 Olivier Hainque <hainque@adacore.com>
1130 * testsuite/20_util/bind/ref_neg.cc: Tweak the
1131 dg-prune-output regex for out-of-build-tree contexts.
1133 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
1135 * doc/doxygen/user.cfg.in: Add new header.
1136 * include/Makefile.am (std_headers): likewise.
1137 * include/Makefile.in: Regenerate.
1138 * include/precompiled/stdc++.h: Add new header.
1139 * include/std/barrier: New file.
1140 * include/std/version: Add __cpp_lib_barrier feature test macro.
1141 * testsuite/30_threads/barrier/1.cc: New test.
1142 * testsuite/30_threads/barrier/2.cc: Likewise.
1143 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1144 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1145 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1146 * testsuite/30_threads/barrier/completion.cc: Likewise.
1148 2021-01-07 Patrick Palka <ppalka@redhat.com>
1151 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
1152 instead of the non-standard nextupl and nextdownl.
1154 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1156 * configure: Re-generate.
1158 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
1160 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
1162 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1164 * ChangeLog-2020: Rotate ChangeLog. New file.
1167 Copyright (C) 2021 Free Software Foundation, Inc.
1169 Copying and distribution of this file, with or without modification,
1170 are permitted in any medium without royalty provided the copyright
1171 notice and this notice are preserved.