1 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4 add libatomic options for 32-bit sparc*-*-linux-gnu.
6 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
9 * libsupc++/Makefile.am: Add atomicity.cc here.
10 * src/c++98/Makefile.am: Remove it from here.
11 * libsupc++/Makefile.in: Regenerate.
12 * src/c++98/Makefile.in: Regenerate.
13 * testsuite/18_support/exception_ptr/96657.cc: New test.
15 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
18 * include/std/bit: Only include <ext/numeric_traits.h> for
19 hosted build, use <limits> otherwise.
21 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
23 * doc/xml/manual/backwards_compatibility.xml: Remove porting
24 notes for libg++ and libstdc++-v2, and bibliography.
25 * doc/html/*: Regenerated.
27 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
30 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
31 Remove helper concept.
32 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
33 deduction guides, as per LWG 3404.
34 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
35 template argument deduction fails.
37 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
39 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
40 Adjust expected error for C++20 mode.
41 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
44 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
47 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
48 standard headers and XFAIL for effective-target c++20.
50 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
53 * include/debug/helper_functions.h (__can_advance(_InputIterator,
54 const std::pair<_Diff, _Distance_precision>&, int)): New.
55 (__can_advance(const _Safe_iterator<>&,
56 const std::pair<_Diff, _Distance_precision>&, int)): New.
57 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
59 (__glibcxx_check_can_increment_range): Adapt to use latter.
60 (__glibcxx_check_can_decrement_range): Likewise.
61 * include/debug/safe_iterator.h
62 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
64 (__can_advance(const _Safe_iterator<>&,
65 const std::pair<_Diff, _Distance_precision>&, int)): New.
66 * include/debug/safe_iterator.tcc
67 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
69 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
70 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
72 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
73 (__copy_move_backward_a): Likewise.
74 (__equal_aux): Likewise.
75 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
76 const std::pair<_Diff, _Distance_precision>&, int)): New.
77 (__can_advance(const std::move_iterator<>&,
78 const std::pair<_Diff, _Distance_precision>&, int)): New.
79 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
81 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
84 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
85 to be a valid constexpr function in C++11.
86 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
88 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
90 * include/bits/fs_fwd.h: Fix doxygen group command.
91 * include/bits/streambuf_iterator.h: Likewise.
92 * include/bits/uses_allocator_args.h: Likewise.
93 * include/std/memory: Likewise.
94 * include/tr1/complex: Likewise.
96 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
98 * include/bits/basic_string.h: Tweak doxygen comment.
100 2021-04-08 Patrick Palka <ppalka@redhat.com>
102 * include/std/ranges (__detail::find): Define.
103 (split_view::_OuterIter::operator++): Apply proposed resolution
105 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
107 2021-04-08 Patrick Palka <ppalka@redhat.com>
109 * include/std/ranges (__detail::find_if): Simplify.
110 (__detail::find_if_not): Likewise.
111 (__detail::min): Remove.
112 (__detail::mismatch): Simplify.
113 (take_view::size): Use std::min instead of __detail::min.
115 2021-04-08 Patrick Palka <ppalka@redhat.com>
117 * include/std/ranges (__detail::__returnable_element): New
119 (elements_view): Use this concept in its constraints. Add
120 missing private access specifier.
121 (elements_view::_S_get_element): Define as per LWG 3502.
122 (elements_view::operator*, elements_view::operator[]): Use
124 (elements_view::operator++): Remove unnecessary constraint
126 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
128 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
130 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
131 out-of-memory error in log file.
132 * doc/Makefile.in: Regenerate.
134 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
136 * configure: Regenerate.
138 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
140 * include/bits/random.h: Fix doxygen group commands.
141 * include/bits/regex_constants.h: Likewise.
142 * include/tr1/random.h: Likewise.
144 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
147 New function to determine noexcept-specifier for move
149 (_Hashtable): Use _S_nothrow_move() on move constructors.
150 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
151 Correct static assertion message.
152 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
154 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
156 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
159 2021-04-08 Patrick Palka <ppalka@redhat.com>
162 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
163 on targets without a large long double. XFAIL the execution on
164 targets with a non-conforming printf.
166 2021-04-08 Patrick Palka <ppalka@redhat.com>
169 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
170 (__adaptor::__adaptor_invocable): New concept.
171 (__adaptor::__adaptor_partial_app_viable): New concept.
172 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
173 non-template base class.
174 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
176 (__adaptor::_Partial): New class template that represents
177 partial application of a range adaptor non-closure.
178 (__adaptor::__pipe_invocable): New concept.
179 (__adaptor::_Pipe): New class template.
180 (__detail::__can_ref_view): New concept.
181 (__detail::__can_subrange): New concept.
182 (all): Replace the lambda here with ...
183 (_All): ... this functor. Add appropriate constraints.
184 (__detail::__can_filter_view): New concept.
185 (filter, _Filter): As in all/_All.
186 (__detail::__can_transform): New concept.
187 (transform, _Transform): As in all/_All.
188 (__detail::__can_take_view): New concept.
189 (take, _Take): As in all/_All.
190 (__detail::__can_take_while_view): New concept.
191 (take_while, _TakeWhile): As in all/_All.
192 (__detail::__can_drop_view): New concept.
193 (drop, _Drop): As in all/_All.
194 (__detail::__can_drop_while_view): New concept.
195 (drop_while, _DropWhile): As in all/_All.
196 (__detail::__can_join_view): New concept.
197 (join, _Join): As in all/_All.
198 (__detail::__can_split_view): New concept.
199 (split, _Split): As in all/_All. Rename template parameter
201 (__detail::__already_common): New concept.
202 (__detail::__can_common_view): New concept.
203 (common, _Common): As in all/_All.
204 (__detail::__can_reverse_view): New concept.
205 (reverse, _Reverse): As in all/_All.
206 (__detail::__can_elements_view): New concept.
207 (elements, _Elements): As in all/_All.
208 (keys, values): Adjust.
209 * testsuite/std/ranges/adaptors/99433.cc: New test.
210 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
211 adding empty range adaptor closure objects to a pipeline doesn't
212 increase the size of the pipeline.
214 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
215 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
216 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
217 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
218 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
219 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
220 * testsuite/std/ranges/adaptors/p2281.cc: New test.
221 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
222 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
225 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
226 expected error message.
227 (test02): Likewise. Extend test.
228 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
229 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
230 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
233 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
235 * include/std/string_view: Adjust Doxygen @file comment.
237 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
239 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
240 specialization to not match incomplete enum types. Use a
241 requires-expression instead of instantiating is_convertible.
242 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
243 * testsuite/20_util/is_scoped_enum/value.cc: Check with
244 incomplete types and opaque-enum-declarations.
246 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
249 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
250 non-const member on _M_pathname, to avoid copy-on-write.
251 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
252 Check construction from strings that might be shared.
254 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
256 * include/bits/move.h (forward, move, move_if_noexcept)
257 (addressof): Add _GLIBCXX_NODISCARD.
258 * include/bits/ranges_cmp.h (identity::operator()): Add
260 * include/c_global/cstddef (to_integer): Likewise.
261 * include/std/bit (bit_cast): Likewise.
262 * include/std/utility (as_const, to_underlying): Likewise.
264 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
266 * include/bits/move.h (forward): Change static_assert message
267 to be unambiguous about what must be true.
268 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
269 * testsuite/20_util/forward/f_neg.cc: Likewise.
271 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
273 * include/bits/alloc_traits.h: Use markdown for code font.
274 * include/bits/basic_string.h: Fix @param names.
275 * include/bits/max_size_type.h: Remove period after @file.
276 * include/bits/regex.h: Fix duplicate @retval names, and rename.
277 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
278 group open to match existing group close.
279 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
282 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
284 * include/bits/atomic_base.h: Fix doxygen group close.
285 * include/bits/basic_ios.h: Likewise.
286 * include/bits/forward_list.h: Likewise.
287 * include/bits/fs_dir.h: Likewise.
288 * include/bits/fs_ops.h: Likewise.
289 * include/bits/fs_path.h: Likewise.
290 * include/bits/functional_hash.h: Likewise.
291 * include/bits/gslice.h: Likewise.
292 * include/bits/gslice_array.h: Likewise.
293 * include/bits/hashtable_policy.h: Likewise.
294 * include/bits/indirect_array.h: Likewise.
295 * include/bits/locale_classes.h: Likewise.
296 * include/bits/locale_facets.h: Likewise.
297 * include/bits/locale_facets_nonio.h: Likewise.
298 * include/bits/mask_array.h: Likewise.
299 * include/bits/refwrap.h: Likewise.
300 * include/bits/regex.h: Likewise.
301 * include/bits/regex_automaton.h: Likewise.
302 * include/bits/regex_compiler.h: Likewise.
303 * include/bits/regex_constants.h: Likewise.
304 * include/bits/regex_error.h: Likewise.
305 * include/bits/regex_executor.h: Likewise.
306 * include/bits/regex_scanner.h: Likewise.
307 * include/bits/shared_ptr.h: Likewise.
308 * include/bits/shared_ptr_atomic.h: Likewise.
309 * include/bits/shared_ptr_base.h: Likewise.
310 * include/bits/slice_array.h: Likewise.
311 * include/bits/specfun.h: Likewise.
312 * include/bits/std_function.h: Likewise.
313 * include/bits/std_mutex.h: Likewise.
314 * include/bits/stl_deque.h: Likewise.
315 * include/bits/stl_iterator.h: Likewise.
316 * include/bits/stl_iterator_base_types.h: Likewise.
317 * include/bits/stl_map.h: Likewise.
318 * include/bits/stl_multimap.h: Likewise.
319 * include/bits/stl_multiset.h: Likewise.
320 * include/bits/stl_numeric.h: Likewise.
321 * include/bits/stl_pair.h: Likewise.
322 * include/bits/stl_set.h: Likewise.
323 * include/bits/stl_uninitialized.h: Likewise.
324 * include/bits/stream_iterator.h: Likewise.
325 * include/bits/streambuf_iterator.h: Likewise.
326 * include/bits/unique_ptr.h: Likewise.
327 * include/bits/unordered_map.h: Likewise.
328 * include/bits/unordered_set.h: Likewise.
329 * include/decimal/decimal: Likewise.
330 * include/experimental/any: Likewise.
331 * include/experimental/array: Likewise.
332 * include/experimental/bits/fs_dir.h: Likewise.
333 * include/experimental/bits/fs_fwd.h: Likewise.
334 * include/experimental/bits/fs_ops.h: Likewise.
335 * include/experimental/bits/fs_path.h: Likewise.
336 * include/experimental/buffer: Likewise.
337 * include/experimental/internet: Likewise.
338 * include/experimental/optional: Likewise.
339 * include/experimental/propagate_const: Likewise.
340 * include/experimental/socket: Likewise.
341 * include/ext/pb_ds/assoc_container.hpp: Likewise.
342 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
344 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
345 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
346 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
347 * include/ext/pb_ds/exception.hpp: Likewise.
348 * include/ext/pb_ds/priority_queue.hpp: Likewise.
349 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
350 * include/ext/random: Likewise.
351 * include/std/any: Likewise.
352 * include/std/atomic: Likewise.
353 * include/std/bitset: Likewise.
354 * include/std/chrono: Likewise.
355 * include/std/complex: Likewise.
356 * include/std/condition_variable: Likewise.
357 * include/std/fstream: Likewise.
358 * include/std/future: Likewise.
359 * include/std/iostream: Likewise.
360 * include/std/istream: Likewise.
361 * include/std/mutex: Likewise.
362 * include/std/numeric: Likewise.
363 * include/std/ostream: Likewise.
364 * include/std/ratio: Likewise.
365 * include/std/shared_mutex: Likewise.
366 * include/std/stdexcept: Likewise.
367 * include/std/streambuf: Likewise.
368 * include/std/system_error: Likewise.
369 * include/std/thread: Likewise.
370 * include/std/valarray: Likewise.
371 * include/std/variant: Likewise.
372 * include/tr1/cmath: Likewise.
373 * include/tr1/regex: Likewise.
374 * include/tr2/dynamic_bitset: Likewise.
375 * libsupc++/atomic_lockfree_defines.h: Likewise.
376 * libsupc++/exception: Likewise.
377 * libsupc++/exception.h: Likewise.
378 * libsupc++/exception_ptr.h: Likewise.
379 * libsupc++/nested_exception.h: Likewise.
381 2021-03-31 Alexandre Oliva <oliva@adacore.com>
383 * testsuite/30_threads/future/members/poll.cc: Use faster
384 after-ready call in the calibration loop.
386 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
388 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
389 * doc/html/manual/status.html: Regenerate.
391 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
393 * include/debug/forward_list
394 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
395 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
396 call to safe container allocator aware move constructor.
397 * include/debug/vector (vector(vector&&, const allocator_type&)):
398 Fix noexcept qualification.
399 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
400 Add allocator-extended move constructor noexceot qualification check.
401 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
403 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
405 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
407 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
408 New helper functions and callback.
409 (random_device::_M_init): Add 'prng' and 'all' enumerators.
410 Replace switch with fallthrough with a series of 'if' statements.
411 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
413 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
415 (random_device::_M_getval): Check for callback unconditionally
416 and always pass _M_file pointer.
417 * testsuite/26_numerics/random/random_device/85494.cc: Remove
418 effective-target check. Use new random_device_available helper.
419 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
420 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
421 Remove effective-target check.
422 * testsuite/26_numerics/random/random_device/cons/default.cc:
424 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
425 new random_device_available helper. Test "prng" token.
426 * testsuite/util/testsuite_random.h (random_device_available):
429 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
431 * include/debug/string
432 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
433 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
434 (basic_string<>::erase): Adapt to take __const_iterator.
435 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
436 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
437 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
438 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
439 (__gnu_debug::u16string, __gnu_debug::u32string): New.
440 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
441 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
442 * testsuite/util/exception/safety.h
443 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
444 (insert_base<__gnu_debug::basic_string<>>): Likewise.
445 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
446 New partial specialization.
447 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
448 * testsuite/21_strings/basic_string/requirements/citerators.cc:
449 Add test on __gnu_debug::string.
450 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
451 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
452 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
454 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
456 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
458 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
460 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
462 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
464 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
466 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
468 2021-03-25 Jakub Jelinek <jakub@redhat.com>
471 * testsuite/18_support/source_location/consteval.cc (main): Adjust
472 expected column numbers.
473 * testsuite/18_support/source_location/1.cc (main): Likewise.
475 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
477 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
479 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
481 * testsuite/util/exception/safety.h (setup_base::generate):
482 Support seeding random engine.
483 (erase_point, erase_range): Adjust range of random numbers to
484 ensure dereferenceable iterators are used where required.
485 (generation_prohibited::run): Do not try to erase from empty
487 * testsuite/util/testsuite_containergen.h (test_containers):
488 Support seeding random engine.
490 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
492 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
493 line with a check that uses the const being/end overloads.
495 2021-03-23 Moritz Sichert <sichert@in.tum.de>
497 * include/std/ranges (reverse_view::begin, reverse_view::end):
498 Qualify make_reverse_iterator calls to avoid ADL.
499 * testsuite/std/ranges/adaptors/reverse.cc: Test that
500 views::reverse works when make_reverse_iterator is defined
501 in an associated namespace.
503 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
505 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
506 Do not define when compiling with Clang.
508 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
510 * include/std/string_view (basic_string_view(Range&&)): Define new
511 constructor and deduction guide.
512 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
513 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
515 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
517 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
518 Add missing 'noexcept' as per LWG 2280.
519 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
520 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
521 * testsuite/24_iterators/range_access/range_access.cc: Check for
522 expected noexcept specifiers. Check result types of generic
523 std::begin and std::end overloads.
524 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
525 Check for expected noexcept specifiers.
526 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
529 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
531 * include/std/type_traits (is_scoped_enum): Define.
532 * include/std/version (__cpp_lib_is_scoped_enum): Define.
533 * testsuite/20_util/is_scoped_enum/value.cc: New test.
534 * testsuite/20_util/is_scoped_enum/version.cc: New test.
536 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
539 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
540 std::once_flag symbols.
541 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
542 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
543 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
545 * config/abi/pre/gnu.ver: Likewise.
546 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
547 (struct __once_flag_compat): Remove.
548 (_ZNSt9once_flag11_M_activateEv): Remove.
549 (_ZNSt9once_flag9_M_finishEb): Remove.
551 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
554 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
555 Revert to pthread_once_t implementation.
556 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
557 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
558 (struct __once_flag_compat): New type matching the reverted
559 implementation of once_flag using futexes.
560 (once_flag::_M_activate): Remove, replace with ...
561 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
562 (once_flag::_M_finish): Remove, replace with ...
563 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
564 * testsuite/30_threads/call_once/66146.cc: Removed.
566 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
568 * testsuite/17_intro/names.cc: Exclude j from the list
569 of test symbols for Darwin.
571 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
573 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
574 to_chars and from_chars for long double.
576 2021-03-15 Patrick Palka <ppalka@redhat.com>
578 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
580 (__max_size_type::operator++): Define.
581 (__max_size_type::operator--): Likewise.
582 (__max_size_type::operator<=>): Conditionally define (in place
583 of the other comparison operators).
584 (__max_diff_type::operator _Tp): Fix formatting.
585 (__max_diff_type::operator++): Define.
586 (__max_diff_type::operator--): Likewise.
587 (__max_diff_type::operator<=>): Conditionally define (in place
588 of the other comparison operators).
589 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
590 these operator overloads.
592 2021-03-15 Caroline Tice <cmtice@google.com>
595 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
596 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
597 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
599 * src/Makefile.in: Regenerate.
601 2021-03-11 Patrick Palka <ppalka@redhat.com>
603 * src/c++17/floating_to_chars.cc: Simplify the file as if
604 __SIZEOF_INT128__ is always defined.
605 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
606 a base-10 to_chars overload for the uint128_t class type.
607 * src/c++17/uint128_t.h: New file.
608 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
609 execution FAIL on targets that have a large long double type
612 2021-03-11 Patrick Palka <ppalka@redhat.com>
614 * src/c++17/ryu/LOCAL_PATCHES: Update.
615 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
616 * src/c++17/ryu/generic_128.h: Likewise.
617 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
618 Use uint128_t instead of __uint128_t.
619 (generic_binary_to_decimal): Likewise.
621 2021-03-11 Patrick Palka <ppalka@redhat.com>
623 * src/c++17/ryu/LOCAL_PATCHES: New file.
625 2021-03-11 Patrick Palka <ppalka@redhat.com>
627 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
628 defined alias of unsigned __int128.
629 (floating_type_traits_binary128::mantissa_t): Use uint128_t
630 instead of unsigned __int128.
631 (floating_type_traits<long double>::mantissa_t)
632 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
633 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
634 and uint32_t explicit. Simplify the extraction of mantissa,
635 exponent and sign bit.
637 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
639 * include/std/barrier (barrier::arrival_token): New move-only
640 class that encapsulates the underlying token value.
642 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
644 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
645 instead of unqualified() method.
647 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
650 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
651 Use acq_rel memory ordering.
653 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
656 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
657 helper function to check for permission denied errors.
658 * src/filesystem/dir.cc (recursive_directory_iterator):
660 * src/filesystem/dir-common.h (is_permission_denied_error): New
663 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
666 * include/bits/random.h (normal_distribution): Use
667 default-initializer for _M_saved and _M_saved_available.
669 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
671 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
673 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
674 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
675 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
676 * testsuite/30_threads/barrier/arrive.cc: Likewise.
677 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
678 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
679 * testsuite/30_threads/barrier/completion.cc: Likewise.
680 * testsuite/30_threads/latch/3.cc: Likewise.
681 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
682 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
683 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
685 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
688 * include/bits/align.h: Include debug/assertions.h.
689 * include/bits/codecvt.h: Include bits/c++config.h.
690 * include/bits/enable_special_members.h: Likewise.
691 * include/bits/erase_if.h: Likewise.
692 * include/bits/functional_hash.h: Include <type_traits>.
693 * include/bits/invoke.h: Include bits/move.h.
694 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
695 * include/bits/parse_numbers.h: Include <type_traits>.
696 * include/bits/predefined_ops.h: Include bits/c++config.h.
697 * include/bits/range_access.h: Include bits/stl_iterator.h.
698 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
699 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
700 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
701 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
702 * include/bits/unique_lock.h: Include bits/std_mutex.h.
703 * include/debug/assertions.h: Include bits/c++config.h.
705 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
707 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
708 (ranges::equal_to, ranges::not_equal_to): Do not constrain
709 with __eq_builtin_ptr_cmp.
710 (ranges::less, ranges::greater, ranges::less_equal)
711 (ranges::greater_equal): Do not constrain with
712 __less_builtin_ptr_cmp.
713 * libsupc++/compare (compare_three_way): Do not constrain with
714 __3way_builtin_ptr_cmp.
715 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
716 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
717 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
719 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
721 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
722 C++20 calendar types.
724 2021-03-06 Jakub Jelinek <jakub@redhat.com>
727 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
728 two _Nd which the compiler can pattern match the rotates.
730 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
733 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
734 Make storage larger than required. Verify no write to the last
736 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
739 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
741 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
742 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
744 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
745 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
748 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
750 * include/experimental/bits/simd.h: Replace reserved _X, _B by
752 * include/experimental/bits/simd_builtin.h: Likewise.
753 * include/experimental/bits/simd_x86.h: Likewise.
755 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
758 * include/std/chrono (year_month_day::_M_days_since_epoch()):
759 Convert chrono::month and chrono::day to unsigned before
760 converting to uint32_t.
762 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
764 * include/std/chrono (year_month_day::_S_from_days): Perform
765 all calculations with type uint32_t.
767 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
769 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
770 * doc/html/manual/abi.html: Regenerate.
772 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
775 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
776 FILE instead of FILE.
778 2021-02-25 Andreas Schwab <schwab@suse.de>
780 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
781 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
782 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
783 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
785 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
788 * include/std/chrono (year_month_day::_S_from_days): Cast long
791 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
793 * include/std/utility (to_underlying): Define.
794 * include/std/version (__cpp_lib_to_underlying): Define.
795 * testsuite/20_util/to_underlying/1.cc: New test.
796 * testsuite/20_util/to_underlying/version.cc: New test.
798 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
801 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
802 before value to be printed.
804 2021-02-24 Patrick Palka <ppalka@redhat.com>
806 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
807 Relax the condition that guards the printf code path to accept
808 F128_type as well as long double.
810 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
812 * include/std/chrono (year_month_day_last:day): New
815 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
817 * include/std/chrono (year::is_leap): New implementation.
818 * testsuite/std/time/year/2.cc: New test.
820 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
822 * include/std/chrono (year_month_day::_M_days_since_epoch):
824 * testsuite/std/time/year_month_day/4.cc: New test.
826 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
828 * include/std/chrono (year_month_day::_S_from_days): New
830 * testsuite/std/time/year_month_day/3.cc: New test.
832 2021-02-24 Patrick Palka <ppalka@redhat.com>
835 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
836 (test01): Simplify verifying the nearby values by using a
837 2-iteration loop and a dedicated output buffer to check that the
838 nearby values are different. Factor out the printf-based
839 verification into a local function, and check that the leading
840 hex digits agree before comparing to the output of printf. Also
841 verify the output by round-tripping it through from_chars.
843 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
846 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
847 symbols for long double arguments mangled as 'g'.
848 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
849 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
850 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
851 Use -mabi=ibmlongdouble for floating_to_chars.cc.
852 * src/c++17/Makefile.in: Regenerate.
853 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
854 New type defining type traits of IEEE binary128 format.
855 (floating_type_traits<__float128>): Define specialization.
856 (floating_type_traits<long double>): Define in terms of
857 floating_type_traits_binary128 when appropriate.
858 (floating_to_shortest_scientific): Handle __float128.
859 (sprintf_ld): New function template for printing a long double
860 or __ieee128 value using sprintf.
861 (__floating_to_chars_shortest, __floating_to_chars_precision):
863 (to_chars): Define overloads for __float128.
865 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
867 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
869 2021-02-23 Martin Sebor <msebor@redhat.com>
872 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
873 first argument is null.
875 2021-02-23 Jakub Jelinek <jakub@redhat.com>
878 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
881 2021-02-23 Jakub Jelinek <jakub@redhat.com>
884 * include/bits/char_traits.h (char_traits<char>::compare): For
885 constexpr evaluation don't call
886 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
889 2021-02-23 Jakub Jelinek <jakub@redhat.com>
892 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
894 2021-02-23 Patrick Palka <ppalka@redhat.com>
897 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
898 the high- and low-order parts from an IBM long double value
899 in an endian-agnostic way.
901 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
903 * include/bits/atomic_wait.h (__thread_relax()): Call
904 __thread_yield() not __gthread_yield().
906 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
908 * include/bits/atomic_wait.h (__thread_yield()): Check
909 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
910 (__thread_relax()): Use __thread_yield() instead of repeating
911 the preprocessor checks for __gthread_yield.
913 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
915 * include/std/mutex (once_flag::_M_activate()): Add explicit
916 return statement for passive case.
917 (once_flag::_M_finish(bool)): Use reserved name for parameter.
919 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
922 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
924 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
927 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
929 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
931 * doc/xml/manual/status_cxx2014.xml: Document implementation
932 specific properties of std::experimental::filesystem::rename.
933 * doc/xml/manual/status_cxx2017.xml: Document implementation
934 specific properties of std::filesystem::rename.
935 * doc/html/*: Regenerate.
936 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
937 for directories on Windows.
938 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
939 MoveFileExW on Windows.
940 * testsuite/27_io/filesystem/operations/rename.cc: New test.
941 * testsuite/experimental/filesystem/operations/rename.cc: New test.
943 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
945 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
946 random number to the path.
948 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
950 * include/experimental/internet (address_v6::to_string): Include
952 * testsuite/experimental/net/internet/address/v6/members.cc:
953 Test to_string() results.
955 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
957 * include/experimental/internet (address_v6::any): Avoid using
958 memcpy in constexpr function.
959 (address_v6::loopback): Likewise.
960 (make_address_v6): Fix missing return statements on error paths.
961 * include/experimental/io_context: Avoid -Wdangling-else
963 * testsuite/experimental/net/internet/address/v4/members.cc:
964 Remove unused variables.
965 * testsuite/experimental/net/internet/address/v6/members.cc:
968 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
970 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
971 Add unused attribute to parameter.
972 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
975 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
977 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
978 if -fno-rtti is used.
979 * testsuite/30_threads/async/forced_unwind.cc: Expect test
980 to abort if -fno-rtti is used.
982 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
984 * testsuite/util/testsuite_allocator.h (memory_resource):
985 Remove requirement for RTTI and exceptions to be enabled.
987 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
989 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
990 static_cast when RTTI is disabled.
991 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
993 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
995 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
997 * testsuite/27_io/basic_stringstream/str/char/2.cc:
999 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
1002 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1004 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
1005 as unused and only use dynamic_cast when RTTI is enabled.
1007 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
1010 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
1011 Change int parameter to error_code, to match std::ios_failure.
1012 (__throw_ios_failure(const char*, int)): Construct error_code
1015 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1017 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
1019 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
1020 macro instead of _GLIBCXX_EH_PTR_COMPAT.
1021 (operator==): Likewise.
1023 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
1026 * doc/xml/manual/status_cxx2011.xml: Document when support
1028 * doc/xml/manual/status_cxx2014.xml: Likewise.
1029 * doc/xml/manual/status_cxx2017.xml: Likewise.
1030 * doc/html/manual/status.html: Regenerate.
1032 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1035 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
1037 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1039 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
1040 (fs::remove): Use std::system_category() for error codes from
1042 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
1045 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
1047 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
1048 in __MINGW32__ macro name.
1049 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1050 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1052 * testsuite/27_io/filesystem/path/generation/relative.cc:
1054 * testsuite/util/testsuite_fs.h: Likewise.
1056 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1058 * include/bits/stl_tree.h
1059 (__has_is_transparent, __has_is_transparent_t): Move...
1060 * include/bits/stl_function.h: ...here.
1061 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
1062 (_Hashtable_base<>::_M_equals_tr): New.
1063 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
1064 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
1065 heterogeneous lookup.
1066 (_Hashtable<>::_M_find_before_node_tr): New.
1067 (_Hashtable<>::_M_find_node_tr): New.
1068 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
1069 unordered_map::contains<>, unordered_map::equal_range<>): New member function
1070 templates to perform heterogeneous lookup.
1071 (unordered_multimap::find<>, unordered_multimap::count<>,
1072 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
1073 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
1074 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
1075 (unordered_multiset::find<>, unordered_multiset::count<>,
1076 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
1077 * include/debug/unordered_map
1078 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
1079 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
1080 * include/debug/unordered_set
1081 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
1082 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
1083 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
1084 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
1085 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
1086 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
1088 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
1090 * include/bits/stl_deque.h
1091 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
1092 a null pointer test.
1094 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1096 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
1097 test directory after making it writable again.
1098 * testsuite/experimental/filesystem/operations/remove_all.cc:
1101 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
1104 * include/std/coroutine (coroutine_handle<P>::from_address): Add
1107 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
1109 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
1110 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
1112 2021-02-09 Jakub Jelinek <jakub@redhat.com>
1115 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
1116 points to the characters moved by earlier _S_move, compute the source
1117 address using expression based on the __p pointer rather than __s
1120 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
1122 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
1123 Add comparison with same category and different values.
1124 * testsuite/19_diagnostics/error_code/operators/less.cc:
1125 Likewise. Fix comparison involving different categories.
1126 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1128 * testsuite/19_diagnostics/error_condition/operators/less.cc:
1130 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1133 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
1135 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
1136 calls with a single vaddv for aarch64.
1138 2021-02-03 Matthias Kretz <kretz@kde.org>
1140 * testsuite/Makefile.am: Warn about the workaround. Add
1141 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
1142 Improve initial user feedback from make check-simd.
1143 * testsuite/Makefile.in: Regenerated.
1145 2021-02-03 Matthias Kretz <kretz@kde.org>
1147 * include/experimental/bits/simd.h: Add __detail::_Minimum and
1148 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
1149 Add hmin and hmax overloads for simd and const_where_expression.
1150 * include/experimental/bits/simd_scalar.h
1151 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
1152 parameter const-ref to allow calling _S_reduce with an rvalue.
1153 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
1154 hmin and hmax. Since the compiler statically determined that all
1155 tests pass, repeat the test after a call to make_value_unknown.
1157 2021-02-03 Matthias Kretz <kretz@kde.org>
1159 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
1160 instruction pointer data member. Ensure that the `if (m_failed)`
1161 branch is always inlined into the calling code. The body of the
1162 conditional can still be a function call. Move the get_ip call
1163 into the verify ctor to simplify the ctor calls.
1164 (COMPARE): Don't mention the use of all_of for reduction of a
1165 simd_mask. It only distracts from the real issue.
1167 2021-02-03 Matthias Kretz <kretz@kde.org>
1169 * testsuite/experimental/simd/driver.sh: Abstract reading test
1170 options into read_src_option function. Read skip, only,
1171 expensive, and xfail via read_src_option. Add timeout and
1172 timeout-factor options and adjust timeout variable accordingly.
1173 * testsuite/experimental/simd/tests/loadstore.cc: Set
1176 2021-02-03 Matthias Kretz <kretz@kde.org>
1178 * testsuite/experimental/simd/driver.sh: When handling the pipe
1179 to log (and on verbose to stdout) count the lines. If it exceeds
1180 1000 log the issue and exit 125, which is then handled as a
1183 2021-02-03 Matthias Kretz <kretz@kde.org>
1185 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
1186 markup for long double on powerpc64*.
1188 2021-02-03 Matthias Kretz <kretz@kde.org>
1190 * include/experimental/bits/simd.h: Add __have_power10vec
1191 conditional on _ARCH_PWR10.
1192 * include/experimental/bits/simd_builtin.h: Forward declare
1193 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
1195 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
1196 _SuperImpl for optimizations and correctness.
1197 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
1198 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
1199 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
1200 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
1202 2021-02-03 Matthias Kretz <kretz@kde.org>
1204 * testsuite/experimental/simd/driver.sh: Remove executable on
1205 SIGINT. Process compiler and test executable output: In verbose
1206 mode print messages immediately, limited to 1000 lines and
1207 breaking long lines to below $COLUMNS (or 1024 if not set).
1208 Communicating the exit status of the compiler / test with the
1209 necessary pipe is done via a message through stdout/-in.
1211 2021-02-03 Matthias Kretz <kretz@kde.org>
1213 * testsuite/Makefile.am: Ensure .simd.summary is empty before
1214 collecting a new summary.
1215 * testsuite/Makefile.in: Regenerate.
1217 2021-02-03 Matthias Kretz <kretz@kde.org>
1219 * testsuite/experimental/simd/generate_makefile.sh: Use
1220 different variables internally than documented for user
1221 overrides. This makes internal append/prepend work as intended.
1223 2021-02-03 Matthias Kretz <kretz@kde.org>
1225 * testsuite/experimental/simd/driver.sh (verify_test): Print
1226 test output on run xfail. Do not repeat lines from the log that
1227 were already printed on stdout.
1228 (test_selector): Make the compiler flags pattern usable as a
1230 (toplevel): Trap on SIGINT and remove the log and sum files.
1231 Call timout with --foreground to quickly terminate on SIGINT.
1232 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
1233 targets via target patterns. Default DRIVEROPTS to -v for run
1234 targets. Remove log and sum files after completion of the run
1235 target (so that it's always recompiled).
1236 Place help text into text file for reasonable 'make help'
1239 2021-02-03 Matthias Kretz <kretz@kde.org>
1241 * include/experimental/bits/simd.h: Remove unnecessary static
1242 assertion. Allow sizeof(8) integer __intrinsic_type to enable
1243 the necessary mask type.
1245 2021-02-03 Matthias Kretz <kretz@kde.org>
1247 * include/experimental/bits/simd.h: Let __intrinsic_type<long
1248 double, N> be valid if sizeof(long double) == sizeof(double) and
1249 use a __vector double as member type.
1251 2021-02-03 Matthias Kretz <kretz@kde.org>
1253 * include/experimental/bits/simd.h (__is_intrinsic_type): New
1254 internal type trait. Alias for __is_vector_type on x86.
1255 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
1257 (__intrin_bitcast): Allow casting to & from vector & intrinsic
1259 (__intrinsic_type): Explicitly specialize for NEON intrinsic
1262 2021-02-03 Matthias Kretz <kretz@kde.org>
1264 * testsuite/experimental/simd/driver.sh: Implement skip, only,
1265 expensive, and xfail markers. They can select on type, ABI tag
1266 subset number, target-triplet, and compiler flags.
1267 * testsuite/experimental/simd/generate_makefile.sh: The summary
1268 now includes lines for unexpected passes and expected failures.
1269 If the skip or only markers are only conditional on the type, do
1270 not generate rules for those types.
1271 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
1272 for ABI tag subsets 1-9.
1273 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1274 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1275 * testsuite/experimental/simd/tests/casts.cc: Ditto.
1276 * testsuite/experimental/simd/tests/generator.cc: Ditto.
1277 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
1278 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
1279 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
1280 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
1281 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
1282 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
1283 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
1284 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
1285 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
1286 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
1287 * testsuite/experimental/simd/tests/operators.cc: Ditto.
1288 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
1289 * testsuite/experimental/simd/tests/simd.cc: Ditto.
1290 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
1291 * testsuite/experimental/simd/tests/splits.cc: Ditto.
1292 * testsuite/experimental/simd/tests/where.cc: Ditto.
1293 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
1294 addition replace "test only floattypes" marker by unconditional
1295 "float|double|ldouble" only marker.
1296 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
1297 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
1298 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1300 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
1301 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
1302 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
1303 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
1304 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
1305 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
1306 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
1307 addition, xfail on run because the reference data is missing.
1309 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
1311 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
1312 * doc/xml/manual/status_cxx2014.xml: Likewise.
1313 * doc/xml/manual/status_cxx2017.xml: Likewise.
1314 * doc/html/manual/status.html: Regenerate.
1316 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
1319 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
1320 Return 0 if both iterators are value-initialized.
1321 * testsuite/23_containers/deque/70303.cc: New test.
1322 * testsuite/23_containers/vector/70303.cc: New test.
1324 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
1326 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
1328 * doc/xml/manual/status_cxx2014.xml: Likewise.
1329 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
1330 std::from_chars and std::to_chars status. Fix formatting.
1331 * doc/html/manual/status.html: Regenerate.
1333 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
1335 * include/experimental/bits/numeric_traits.h: Update copyright
1337 * include/experimental/bits/simd.h: Likewise.
1338 * include/experimental/bits/simd_builtin.h: Likewise.
1339 * include/experimental/bits/simd_converter.h: Likewise.
1340 * include/experimental/bits/simd_detail.h: Likewise.
1341 * include/experimental/bits/simd_fixed_size.h: Likewise.
1342 * include/experimental/bits/simd_math.h: Likewise.
1343 * include/experimental/bits/simd_neon.h: Likewise.
1344 * include/experimental/bits/simd_ppc.h: Likewise.
1345 * include/experimental/bits/simd_scalar.h: Likewise.
1346 * include/experimental/bits/simd_x86.h: Likewise.
1347 * include/experimental/bits/simd_x86_conversions.h: Likewise.
1348 * include/experimental/simd: Likewise.
1349 * testsuite/experimental/simd/*: Likewise.
1351 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1353 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
1354 * doc/html/*: Regenerate.
1356 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1358 * testsuite/experimental/simd/generate_makefile.sh: Use printf
1359 instead of echo when printing escape characters.
1361 2021-01-27 Matthias Kretz <kretz@kde.org>
1363 * scripts/check_simd: New file. This script is called from the
1364 the check-simd target. It determines a set of compiler flags and
1365 simulator setups for calling generate_makefile.sh and passes the
1366 information back to the check-simd target, which recurses to the
1367 generated Makefiles.
1368 * scripts/create_testsuite_files: Remove files below simd/tests/
1369 from testsuite_files and place them in testsuite_files_simd.
1370 * testsuite/Makefile.am: Add testsuite_files_simd. Add
1372 * testsuite/Makefile.in: Regenerate.
1373 * testsuite/experimental/simd/driver.sh: New file. This script
1374 compiles and runs a given simd test, logging its output and
1375 status. It uses the timeout command to implement compile and
1377 * testsuite/experimental/simd/generate_makefile.sh: New file.
1378 This script generates a Makefile which uses driver.sh to compile
1379 and run the tests and collect the logs into a single log file.
1380 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
1382 * testsuite/experimental/simd/tests/algorithms.cc: New file.
1383 Tests min/max(simd, simd).
1384 * testsuite/experimental/simd/tests/bits/conversions.h: New
1385 file. Contains functions to support tests involving conversions.
1386 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
1387 Support functions make_mask and make_vec.
1388 * testsuite/experimental/simd/tests/bits/mathreference.h: New
1389 file. Support functions to supply precomputed math function
1391 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
1392 file. Support code for SFINAE testing.
1393 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
1394 * testsuite/experimental/simd/tests/bits/test_values.h: New
1395 file. Test functions to easily drive a test with simd objects
1396 initialized from a given list of values and a range of random
1398 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
1399 Support code to determine the ULP distance of simd objects.
1400 * testsuite/experimental/simd/tests/bits/verify.h: New file.
1401 Test framework for COMPARE'ing simd objects and instantiating
1402 the test templates with value_type and ABI tag.
1403 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
1405 * testsuite/experimental/simd/tests/casts.cc: New file. Test
1407 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
1408 Test floating-point classification functions.
1409 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
1411 * testsuite/experimental/simd/tests/generator.cc: New file. Test
1412 simd generator constructor.
1413 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
1414 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
1415 * testsuite/experimental/simd/tests/integer_operators.cc: New
1416 file. Test integer operators.
1417 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1418 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
1420 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
1421 (converting) simd loads and stores.
1422 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
1424 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
1425 Test simd_mask broadcasts.
1426 * testsuite/experimental/simd/tests/mask_conversions.cc: New
1427 file. Test simd_mask conversions.
1428 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
1429 file. Test simd_mask implicit conversions.
1430 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
1431 Test simd_mask loads and stores.
1432 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
1433 file. Test simd_mask operators convert as specified.
1434 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
1435 Test simd_mask compares, subscripts, and negation.
1436 * testsuite/experimental/simd/tests/mask_reductions.cc: New
1437 file. Test simd_mask reductions.
1438 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
1439 1-arg math functions on simd.
1440 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
1441 2-arg math functions on simd.
1442 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
1443 Test implicit conversions on simd binary operators behave as
1445 * testsuite/experimental/simd/tests/operators.cc: New file. Test
1446 simd compares, subscripts, not, unary minus, plus, minus,
1447 multiplies, divides, increment, and decrement.
1448 * testsuite/experimental/simd/tests/reductions.cc: New file.
1450 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
1452 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
1453 sanity checks of simd types.
1454 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
1455 sin(simd) and cos(simd).
1456 * testsuite/experimental/simd/tests/split_concat.cc: New file.
1457 Test split(simd) and concat(simd, simd).
1458 * testsuite/experimental/simd/tests/splits.cc: New file. Test
1460 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
1461 Test remaining trigonometric functions on simd.
1462 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
1463 file. Test trunc(simd), ceil(simd), and floor(simd).
1464 * testsuite/experimental/simd/tests/where.cc: New file. Test
1465 masked operations using where.
1467 2021-01-27 Matthias Kretz <kretz@kde.org>
1469 * doc/xml/manual/status_cxx2017.xml: Add implementation status
1470 of the Parallelism TS 2. Document implementation-defined types
1472 * include/Makefile.am: Add new headers.
1473 * include/Makefile.in: Regenerate.
1474 * include/experimental/simd: New file. New header for
1476 * include/experimental/bits/numeric_traits.h: New file.
1477 Implementation of P1841R1 using internal naming. Addition of
1478 missing IEC559 functionality query.
1479 * include/experimental/bits/simd.h: New file. Definition of the
1480 public simd interfaces and general implementation helpers.
1481 * include/experimental/bits/simd_builtin.h: New file.
1482 Implementation of the _VecBuiltin simd_abi.
1483 * include/experimental/bits/simd_converter.h: New file. Generic
1485 * include/experimental/bits/simd_detail.h: New file. Internal
1486 macros for the simd implementation.
1487 * include/experimental/bits/simd_fixed_size.h: New file. Simd
1488 fixed_size ABI specific implementations.
1489 * include/experimental/bits/simd_math.h: New file. Math
1491 * include/experimental/bits/simd_neon.h: New file. Simd NEON
1492 specific implementations.
1493 * include/experimental/bits/simd_ppc.h: New file. Implement bit
1494 shifts to avoid invalid results for integral types smaller than
1496 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
1497 ABI specific implementations.
1498 * include/experimental/bits/simd_x86.h: New file. Simd x86
1499 specific implementations.
1500 * include/experimental/bits/simd_x86_conversions.h: New file.
1501 x86 specific conversion optimizations. The conversion patterns
1502 work around missing conversion patterns in the compiler and
1503 should be removed as soon as PR85048 is resolved.
1504 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
1505 Test that all (not all fixed_size<N>, though) standard simd and
1506 simd_mask types are usable.
1507 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
1508 file. As above but with -ffast-math.
1509 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
1510 from the standard test loop. Instead use
1511 check_vect_support_and_set_flags to build simd tests with the
1512 relevant machine flags.
1514 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1517 * include/bits/string_view.tcc
1518 (basic_string_view::find(const CharT*, size_type, size_type)):
1521 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
1523 * include/bits/basic_string.h (basic_string::contains): New
1525 * include/std/string_view (basic_string_view::contains):
1527 * include/std/version (__cpp_lib_string_contains): Define.
1528 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
1529 Remove trailing whitespace.
1530 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
1532 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
1533 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
1534 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
1535 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
1536 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
1538 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
1540 * src/c++17/Makefile.in: Regenerate.
1542 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
1544 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
1545 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
1547 (const char* ctype<char>:: is): Same.
1549 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1552 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
1553 write to a wide character stream if wide character support is
1554 disabled in the library.
1556 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1558 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
1559 stringbuf not wstringbuf.
1561 2021-01-18 Jakub Jelinek <jakub@redhat.com>
1564 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
1565 Compile with -gno-as-loc-support.
1566 * src/c++11/Makefile.in: Regenerated.
1568 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
1570 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1571 Add -fcf-protection=none to -march=i486.
1573 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1575 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
1578 2021-01-14 Alexandre Oliva <oliva@adacore.com>
1580 * testsuite/30_threads/future/members/poll.cc: Calibrate
1583 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1586 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
1587 (_Node_iterator()): Make default.
1588 (_Node_const_iterator()): Make default.
1589 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
1591 * include/debug/safe_iterator.h
1592 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
1593 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1595 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
1596 _M_singular checks on input iterators.
1597 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
1599 * testsuite/23_containers/deque/debug/98466.cc: New test.
1600 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
1602 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1605 * include/bits/fs_path.h (__throw_conversion_error): New
1606 function to throw or abort on character conversion errors.
1607 (__wstr_from_utf8): Move definition after filesystem_error has
1608 been defined. Use __throw_conversion_error.
1609 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
1610 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
1611 (path::u8string): Likewise.
1613 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1615 * include/std/barrier: Update copyright years. Fix whitespace.
1616 * include/std/version: Fix whitespace.
1617 * testsuite/30_threads/barrier/1.cc: Update copyright years.
1618 * testsuite/30_threads/barrier/2.cc: Likewise.
1619 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1620 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1621 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1622 * testsuite/30_threads/barrier/completion.cc: Likewise.
1624 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
1626 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
1628 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
1631 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
1633 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
1635 2021-01-08 Olivier Hainque <hainque@adacore.com>
1637 * testsuite/20_util/bind/ref_neg.cc: Tweak the
1638 dg-prune-output regex for out-of-build-tree contexts.
1640 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
1642 * doc/doxygen/user.cfg.in: Add new header.
1643 * include/Makefile.am (std_headers): likewise.
1644 * include/Makefile.in: Regenerate.
1645 * include/precompiled/stdc++.h: Add new header.
1646 * include/std/barrier: New file.
1647 * include/std/version: Add __cpp_lib_barrier feature test macro.
1648 * testsuite/30_threads/barrier/1.cc: New test.
1649 * testsuite/30_threads/barrier/2.cc: Likewise.
1650 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1651 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1652 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1653 * testsuite/30_threads/barrier/completion.cc: Likewise.
1655 2021-01-07 Patrick Palka <ppalka@redhat.com>
1658 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
1659 instead of the non-standard nextupl and nextdownl.
1661 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1663 * configure: Re-generate.
1665 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
1667 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
1669 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1671 * ChangeLog-2020: Rotate ChangeLog. New file.
1674 Copyright (C) 2021 Free Software Foundation, Inc.
1676 Copying and distribution of this file, with or without modification,
1677 are permitted in any medium without royalty provided the copyright
1678 notice and this notice are preserved.